(tmux) 터미널을 효율적으로 사용하기 (1/2)
command line 명령을 사용할 때 터미널에서 여러 기능들을 사용해야 할 때가 있다. 예를 들어 여러 윈도우(창)을 띄워놓고 필요에 따라 옮긴다던가 하나의 윈도우을 상하, 혹은 좌우로 구분하여 나눠서 사용하는 경우가 있다.
보통은 명령어를 여러 디렉토리를 옮겨가며 작업하기 때문에 디렉토리 마다 윈도우를 만들어 사용한다. 혹은 포그라운드로 프로세스를 띄워 출력되는 로그를 확인하고, 다른 윈도에서 작업하는 경우도 있다.
위와 같은 기능을 제공하는 툴에는 tmux 라는 sw가 있다. 일반적으로 linux 에는 기본으로 설치되어 있고 mac 에서는 쉽게 설치할 수 있으므로 쉽게 활용할 수 가 있다.
1. 세션 관리
세션 만들기
tmux 는 세션 단위로 구분하여 관리한다. 자신만의 새로운 세션을 만들어 독립으로 사용할 수 있다.
$ tmux new -s ahnsk
ahnsk
이라는 새로운 세션(session)이 생성되면서 1:zsh
라는 윈도우(window) 1개가 기본적으로 생성되었다.
$ exit
exit
는 현재의 윈도우를 삭제한다. 지금은 세션에 1개의 윈도우 밖에 없기 때문에 윈도우가 삭제되면 해당 세션도 삭제된다.
command prefix
tmux 에서는 vi
처럼 명령모드를 사용할 수 있다. Ctrl
+
b
(control 키와 b 키를 동시에 누름)를 입력한 이후에 명령어를 입력하면 되는데 명령 모드를 알려주는 이 키 조합을 command prefix 라고 한다. 줄여서 앞으로는 prefix
라고 한다.
prefix
+ t
를 누르면 화면에 시간에 표시된다.
Detaching 과 Attaching
exit
는 윈도우를 삭제(경우에 따라서는 세션까지도 삭제) 하기 때문에 이전의 세션과 윈도우를 계속 유지 시키면서 tmux 에서 빠져나오고 싶을 때도 있다. 이 때 사용해야할 기능이 detaching 기능이다.
$ top
prefix
+ d
를 입력하여 detaching 한다.
[detached (from session ahnsk)] 가 출력되고 원래의 터미널 창으로 빠져나온 것이 확인 된다.
-d
옵션으로 새로운 세션을 만들고 바로 detaching 할 수 도 있다.
$ tmux new -s dummy -d
세션을 조회하여 기존에 만든 세션의 리스트를 확인할 수 있다.
$ tmux ls
--- output ---
ahnsk: 1 windows (created Sat Jan 14 14:51:09 2023)
dummy: 1 windows (created Sat Jan 14 15:25:39 2023)
기존의 만든 ahnsk 세션으로 들어가고 싶으면 attach
명령을 쓰면 된다.
$ tmux attach -t ahnsk
세션 삭제
kill-session
옵션으로 세션을 삭제할 수 있다.
$ tmux kill-session -t ahnsk
$ tmux kill-session -t dummy
2. 윈도우 관리
윈도우 만들기
session 을 만들면 새로운 윈도우도 기본으로 생성된다고 했다. 이 때 -n
옵션을 사용하여 생성되는 윈도우에 이름을 넣을 수 있다.
$ tmux new -s ahnsk -n shell
prefix
+ c
명령으로 새로운 윈도우를 만들 수 있다. 이렇게 새로 만든 윈도우에 top 명령을 실행해 보자.
윈도우 이름 변경
첫번째 윈도우의 이름은 shell 이고 두번째 top 이 실행되고 있는 윈도우의 이름은 top 이다. (top 이 실행되고 있으므로) 두번째 윈도우 이름을 process 로 변경해 보자.
prefix
+ ,
로 윈도우 이름을 변경할 수 있다.
이름을 넣은 뒤에 enter
를 치면 된다.
윈도우 이동
작업 윈도우를 아래 명령으로 옮겨 다닐 수 있다.
prefix
+ n
: 현재 윈도우 다음(next) 윈도우로 이동하기
prefix
+ p
: 현재 윈도우 이전(previous) 윈도우로 이동하기
prefix
+ 1
: 첫번째(1) 윈도우로 이동하기
prefix
+ 5
: 다섯번째(5) 윈도우로 이동하기
prefix
+ w
: 윈도우 리스트를 보여주고 선택하여 이동하기
윈도우 닫기
prefix
+ &
로 명령으로 확인 입력(y)을 받으면 윈도우를 닫을 수(삭제할 수) 있다. exit
를 입력하여 확인없이 바로 윈도우가 삭제된다.
윈도우 이름으로 생성하기
prefix
+ :
으로 명령어 입력창을 띄울 수 있다. 여기에 new-window -n monitor
라고 입력하고 enter
를 치면 새로운 윈도우에 이름을 지정하여 생성할 수 있다.
3. 패인 관리
패인(pane) 만들기
윈도우 안의 구분되는 영역을 패인이라 한다. 윈도우를 수평으로 2개의 패인으로 나누거나 수직으로 2개의 패인으로 나눌 수 있다.
prefix
+ %
: 윈도우를 수평(좌우)으로 2개의 패인으로 나눈다.
prefix
+ "
(double quote) : 윈도우를 수직(위아래)으로 2개의 패인으로 나눈다.
패인 이동하기
prefix
+ Left 화살표
: 좌측 패인으로 이동하기
prefix
+ Right 화살표
: 우측 패인으로 이동하기
prefix
+ Up 화살표
: 위 패인으로 이동하기
prefix
+ Downe 화살표
: 아래 패인으로 이동하기
prefix
+ o
: 시계 방향으로 패인 이동하기
패인 삭제하기
prefix
+ x
명령으로 현재 선택된 패인을 삭제할 수 있다. exit
로도 삭제가 가능하다. 가끔 화면에 키보드 입력이 안돼서 exit
를 화면에 입력할 수 없는 경우가 있다. 이 경우에는 명령모드인 prefix
+ x
로 삭제해야 하므로 명령모드도 알아 두는 것이 좋다.