우분투에서 작업하다 보면 한 번에 터미널을 여러 개 켜놓아야 할 때가 있다.
예를 들어 실험을 여러 서버에서 돌린다거나,
한쪽에 코드를 열어놓고 다른 한쪽에서 해당 코드를 참조한다거나.
그런데 단순히 터미널을 여러 개 틀어놓는 것은 생각보다 불편하다.
가장 큰 이유는 창간의 이동을 키보드로 하기 썩 편하지 않다는 것인데,
alt + tab 신공을 사용해서 어찌어찌 해결한다 해도
레이아웃이 이쁘지 않다든지, 더 많은 창을 띄우려면 머리가 많이 복잡해진다든지 하는 문제가 있다.
이를 해결하기 위한 많은 방법이 있지만, 내 기준으로는 티먹스 tmux가 가장 편하고 용도에 맞는 것 같다.
다른 블로그에도 관련된 많은 포스트가 있지만,
직접 사용해보며 가장 많이 썼던 핵심 명령어들만 정리해보려고 한다.
일반적인 우분투 프로그램과 같이, 아래 명령어로 설치한다.
$ sudo apt-get install tmux
실행하는 방법은 몹시 간단하다.
$ tmux
순정 bash에는 없던 상태 표시줄이 생겼다.
tmux의 대부분의 기능은 prefix라는 특정 커맨드와 후속 명령어를 연속해서 입력하는 것으로 실행할 수 있다.
예를 들어, 기본 prefix는 <ctrl + b>이고 현재 창을 좌우로 분할하는 명령은 % 이다.
따라서 <[ctrl] + b>와 %를 순서대로 입력하면 아래와 같은 결과를 얻을 수 있다.
가끔 WSL (Windows Subsystem for Linux)을 통해 tmux를 실행하는데,
WSL과 tmux의 호환성은 썩 좋은 편이 아니다.
가운데의 세로 선이 조금 잘려 나온다거나, 나중에 설명하겠지만 특정 상황에서 글자가 조금 깨지기도 한다.
아무튼, tmux에서는 저렇게 구분된 하나의 터미널을 pane이라고 하고,
pane과 관련된 명령어들은 아래와 같다.
여기서 -로 구분된 커맨드들은 순서대로, <a + b>는 a와 b를 동시에 입력한다는 의미이다.
- 현재 pane을 좌우로 분할.
prefix - % - 현재 pane을 상하로 분할.
prefix - " - pane 사이에 커서 (focus) 이동.
prefix - 방향키 - 현재 pane 닫기. pane에 커서가 있을 때 prefix 없이 <[ctrl] + d>로도 가능하다.
pane을 닫는 경우, 해당 pane에서 실행 중인 프로그램은 날아간다.
prefix - x - 해당 방향으로 현재 pane을 밀어냄 (크기 변경).
alt 대신 ctrl로 더욱 섬세한 조정이 가능하다.
prefix - <[alt] + 방향키>
몇 번 해보면 금세 적응이 된다.
tmux에서는 저런 pane들이 하나 이상 놓여있는 창을 window라고 한다.
아래 상태 표시줄에는 선택된 윈도우*가 몇 번인지도 나와있다.
예를 들어 위 스크린샷은 pane이 2개 있는 0번 윈도우가 선택되어 있는 경우라고 볼 수 있다.
window와 관련된 명령어들은 아래와 같다.
- 새로운 window를 추가.
prefix - c - n번 window로 이동 (n은 숫자).
prefix - n - n번 window로 이동 (n이 10 이상). 총 4단계를 거쳐야 한다. 웬만하면 10개 이하의 window를 쓰자.
prefix - ' - n - [enter] - 현재 window 닫기. pane이 하나만 있는 window의 경우, prefix 없이 <[ctrl] + d>로도 가능하다.
prefix - & - 현재 윈도우 이름 수정. window가 3개만 되어도 각각의 역할이 헷갈리기 때문에, 은근히 중요한 기능이다.
prefix - , - [이름 입력] - [enter]
마지막으로, tmux에서는 1개 이상의 window를 모아놓은 객체를 session이라고 부른다.
session의 이름은 default가 0이고, tmux 상태 표시줄의 제일 왼쪽 [ ] 안에 적혀있다.
예를 들어 첨부한 캡처 화면의 경우는 1이 된다.
session을 여러 개 쓰는 경우 여러 개의 창을 띄워놓고 각각의 창에 다른 session을 만들면 되기 때문에
session 관련 명령어는 잘 쓰지 않는 편이다.
개인적으로 느낀 필수적인 session 관련 명령어들은 아래와 같다.
- session detach 시키기. 해당 session에서 돌던 모든 프로그램들은 계속해서 돈다.
prefix - d - detach 시킨 session 다시 접속하기. 해당 명령어는 터미널에서 입력한다.
SESSION_NAME은 위에서 언급했던 session 이름.
$ tmux attach -t SESSION_NAME
- session 종료하기. 생각보다 절차가 귀찮다. 불의의 사고로 session을 날려버리는 걸 막기 위해서?
당연한 말이지만 session을 종료하면 해당 session의 모든 프로그램이 날아간다.
마지막 window의 마지막 화면에서 prefix 없이 <[ctrl] + d>
혹은 detach 후 터미널에서 아래와 같이 입력. SESSION_NAME은 위에서 언급했던 session 이름.
$ tmux kill-session -t SESSION_NAME
이 정도면, tmux 전체 기능의 75% 정도는 문제없이 사용할 수 있는 것 같다.
글이 너무 길어지면 번잡하니까 사용하며 조금 생각이 필요한 기능들 15%는 다음 글에 써야지.
다음 글:
2021.04.28 - [잡기술/Ubuntu] - 티먹스 tmux 사용해서 터미널 여러 개 띄우기 (2) - 스크롤, .tmux.conf
티먹스 tmux 사용해서 터미널 여러 개 띄우기 (2) - 스크롤, .tmux.conf
이전 글: 2021.04.26 - [잡기술/Ubuntu] - 티먹스 tmux 사용해서 터미널 여러 개 띄우기 (1) 티먹스 tmux 사용해서 터미널 여러 개 띄우기 (1) 우분투에서 작업하다 보면 한 번에 터미널을 여러 개 켜놓아야
sanghyun.tistory.com
나머지 10%는 외우기보다 사용하며 필요할 때 직접 찾아보는 게 나은 것 같다.
'잡기술 > Ubuntu' 카테고리의 다른 글
티먹스 tmux 사용해서 터미널 여러 개 띄우기 (3) - session 관리 (0) | 2021.04.29 |
---|---|
티먹스 tmux 사용해서 터미널 여러 개 띄우기 (2) - 스크롤, .tmux.conf (0) | 2021.04.28 |
터미널에서 함수 사용하기 (0) | 2021.04.24 |
우분투 파일에서 특정 단어 찾기 - grep (0) | 2021.04.24 |
우분투 터미널 출력 로그 파일로 저장하기 - tee (0) | 2021.04.24 |