tmux
tmux는 Terminal Multiplexer의 줄임말이다. 리눅스를 터미널을 사용하면서 불편한 점이 세션이 끊기면 세션상에서 작업 중인 프로세스가 중단되어 버리거나 작업들이 날아가버리는 경우가 있는데 tmux를 쓰면 이러한 불편함을 해소할 수 있다. 이 외에도 창 분할 기능, 세션 공유 기능 등이 있어서 리눅스를 좀 더 ‘유창하게’ 쓰고 싶다면 유용한 툴이다.
tmux 설치
tmux는 debian 계열은 아래 명령어를 통해 설치 가능하다.
1
| $ sudo apt-get install -y tmux
|
tmux 용어
일단 사용법 및 명령어를 설명하기 전에 tmux에서 등장하는 용어 정리가 필요하다.
- session : tmux를 통해 생성되는 실행단위. tmux를 여러개의 세션을 생성할 수 있고 각각의 세션에 attach/detach할 수 있다. 여기서 중요한 점은 detach한다고 작업이 끊기는 것이 아니라 백그라운드에서 계속 실행하고 있다.
- window : 세션은 여러개의 윈도우로 구성되는데, 세션 내에서 탭처럼 사용가능하다.
- pane : 하나의 윈도우 내에서 화면을 분할 할 수 있는데 각각을 pane이라 한다.
tmux 세션 명령어
세션 생성 명령어
세션을 생성할때는 간단히 위처럼 생성할 수 있다. 참고로 세션 이름은 0부터 생성된다. 만약 세션 이름을 지정해서 생성하고 싶다면 아래와 같이 -s 옵션을 통해서 세션 생성이 가능하다.
1
2
| $ tmux new -s <세션 이름>
$ tmux new-session -s <세션 이름>
|
세션 attach/detach
세션을 생성하면 자동으로 해당 세션으로 진입하게 된다. 그럼 해당 세션에서 나오려면 어떻게 해야할까? 이때 detach 명령어를 쓰면 된다.
1
2
| # 세션 detach
[Ctrl] + b, d
|
컨트롤과 b를 동시에 누른후, 재빨리 d 버튼을 누르면 detach 된다.
다시 해당 세션에 접속하고 싶다면 attach 하면 된다.
1
2
| # 세션 attach
tmux attach -t <세션 번호 또는 이름>
|
세션 리스트 확인
세션 리스트는 ls 명령어로 확인 가능하다.
세션 종료
앞서 설명했듯 세션은 detach한다고 사라지지 않는다. 백그라운드에 남아 그대로 세션이 남아있다. 세션을 종료하고 싶다면 아래와 같이 종료할 수 있다.
1
2
3
| # 세션내에서 종료하기
# -> 마지막 윈도우, 마지막 팬에서 실행
$ exit
|
1
2
| # 세션 외부에서 종료하기
$ tmux kill-session -t <세션이름>
|
tmux 윈도우 명령어
1
2
3
4
5
| # 세션 외부에서 수행
# 세션 생성과 함께 윈도우 생성
$ tmux new -s -n
# 또는 이름 지정
$ tmux new -s 세션이름 -n 윈도우이름
|
1
2
3
4
5
6
7
| # 세션 내에서 수행
[Ctrl] + b -> c : 새로운 윈도우 생성
[Ctrl] + d : 윈도우 닫기
[Ctrl] + b -> p : 이전 윈도우로 이동
[Ctrl] + b -> n : 다음 윈도우로 이동
[Ctrl] + b -> , : 현재 윈도우 이름 바꾸기
[Ctrl] + b -> w : 현재 윈도우 목록 나열
|
tmux 팬 명령어
pane 명령어는 화면 분할, 크기 조정 등과 같이 레이아웃 관련된 작업을 할때 주로 사용한다.
1
2
| # 좌우 화면 분할
[Ctrl] + b, %
|
1
2
| # 위아래 화면 분할
[Ctrl] + b, "
|
1
2
3
4
5
6
7
8
| # pane 이동 - 화면에 나오는 숫자로 이동
[Ctrl] + b, q
# pane 이동 - 순서대로 이동
[Ctrl] + b, o
# pane 이동 - 방향키로 이동
[Ctrl] + b, <방향키>
|
1
2
| # pane 사이즈 조절 - 현재 포커스된 팬 전체화면(한번 더 실행하면 윈상복구)
[Ctrl] + b, z
|
1
2
3
| # pane 사이즈 조절
[Ctrl] + b, :
resize-pane -L or -R or -U -D
|
1
2
| # pane 레이아웃 변경 (다양한 레이아웃으로 자동 전환)
[Ctrl] + b, spacebar
|
1
2
3
| # pane 삭제
[Ctrl] + d
[Ctrl] + b, x
|
reference
https://hbase.tistory.com/200
https://velog.io/@kth811/tmux-%EC%82%AC%EC%9A%A9%EB%B2%95-%EC%A0%95%EB%A6%AC
https://velog.io/@piopiop/Linux-tmux%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%B4%EB%B3%B4%EC%9E%90