tmux는 "terminal Multiplexer"의 줄임말로 터미널에서 개발을 진행 할 때 유용한 기능을 제공하는 응용 커맨드 소프트웨어이다. screen 명령어와 기능이 매우 유사하여 한 터미널에서 session을 실행 시키면 그 세션 안에서 작업 창(window)을 여러개 나누어서 병렬적으로 수행할 수 있다. 이 윈도우에서 또 pane이라는 화면 분할도 가능하고, 이렇게 나누어서 작업하는 것이 tmux의 핵심 키워드라고 할 수 있다. 그렇게 되면 terminal 어플리케이션을 여러개 실행시키는 것 보다 프로세스 메모리 측면에서 큰 효율을 얻을 수 있으며 단순히 창을 나누는 기능 뿐만 아니라, 서버에서 시간이 오래 걸리는 작업을 백그라운드로 켜놓고 터미널 종료 후 다른 작업을 할 수 있다는 장점도 있기 때문에 개발자라면 많이 사용하는 툴이다.
~% sudo apt-get install xsel tmux
brew
명령어로 손쉽게 설치할 수 있다. ~$ brew install tmux
tmux 사용법은 정말 많고, config 파일을 조정해서 단축키 등을 자신이 원하는 대로 커스터마이징 할 수 있지만, 주로 많이 쓰이는 간단한 tmux 커맨드들은 다음과 같다.
# 아무 세션 생성. 기존에 실행되고 있는 것이 아무것도 없다면 0이라는 세션 넘버로 시작한다.
~$ tmux
# 원하는 이름의 session과 window 생성
~$ tmux new -s <세션 이름> -n <윈도우 이름>
# session 이름 수정 (이때, ctrl + b를 동시에 누르고 손을 땐 다음 특수문자를 입력해야함)
ctrl + b -> $
# session 종료는 tmux 어플리 케이션 내에서 exit
~$ exit
# session 중단하기
ctrl + b -> d
# session 목록 보기
~$ tmux ls
# 원하는 session 다시 시작
~$ tmux attach -t <ls로 조회한 세션 이름>
# 페이지 이동
alt + up (or) down
# window 생성
ctrl + b -> c
# window 이름 수정
ctrl + b -> ,
# window 종료
ctrl + d
# window 이동
ctrl + b -> 0-9 : window number
n : 다음 창
p : 이전 창
w : window selector
# pane 나누기
ctrl + b -> % : 세로 분할
-> " : 가로 분할
# pane 이동
ctrl + b -> q : number
-> o : 순서대로 이동
# pane 닫기
ctrl + d 또는 ~$ exit 입력
# 사이즈 조절
ctrl + b -> :resize-pane -L,R,D,U 10
또는
ctrl + b -> alt + 방향키
# 레이아웃 변경
ctrl + b -> spacebar
이 정도의 명령어만 잘 숙지해도 tmux 사용하는데에 지장이 없을 만큼 충분하다. 여기서 config 파일 설정을 하고, 또 고급 기능 사용하면 tmux를 진정 마스터 하는 것이라고 할 수 있겠지만, 그러한 기능들에 관한 소개는... 다음에 편집이나 보충 포스트를 작성하는 걸로 하자.