Home [Linux] tmux 설치 및 사용법과 명령어 정리
Post
Cancel

[Linux] tmux 설치 및 사용법과 명령어 정리

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 세션 명령어

세션 생성 명령어

1
$ 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 <세션 번호 또는 이름>

세션 리스트 확인

1
2
# 세션 리스트 확인
tmux ls

세션 리스트는 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

This post is licensed under CC BY 4.0 by the author.

[Linux] xargs 명령어와 사용 사례

[Leet Code풀이] 413. Arithmetic Slices