-
TMUX 사용방법 (창분할하기, 빌드걸고 퇴근하기)카테고리 없음 2015. 2. 17. 19:57
TMX는 terminal multiplexer로 터미널에서 사용하는 프로그램들을 손쉽게 switch하거나 backgroud로 수행할 수 있게 도와주는 툴입니다.
TMUX를 사용하면
1. 터미널창을 분할해서 사용할 수 있습니다. (아래 그림에서는 왼쪽에는 VI, 오른쪽 위는 TIG, 오른쪽 아래는 Shell로 분할했습니다.)
2. Perforce Sync / 모델 빌드를 걸어두고 다음날 출근해서 확인할 수 있습니다. (session유지)
[설치방법]
1. TMUX최신 버전을 설치합니다. (apt-get install tmux로도 설치가능하지만 굉장히 오래전 버전입니다...)
To get and build the latest from version control: $ git clone git://git.code.sf.net/p/tmux/tmux-code tmux $ cd tmux $ sh autogen.sh $ ./configure && make
2. Root권한이 있는 사용자라면 sudo make install로 모든 사용자가 해당 버전을 사용하게끔해 줄 수 있습니다. (서버쪽은 제가 최신버전으로 깔아뒀습니다.)
3. 제가 설정해둔 설정파일을 사용하시면 좀 더 편할 듯싶습니다.
~/.tmux.conf로 저장하시면 됩니다.
4. VI의 color scheme이 정상적으로 동작하게끔하기 위해서 .bashrc 등에 아래 줄을 추가해둡니다.
alias tmux='TERM=xterm-256color tmux -2'
[사용방법]
제 설정파일을 적용했다고 가정하고 사용법을 설명드리도록 하겠습니다.
기본적인 invoke키는 Ctrl+b이지만 저는 Ctrl+j로 변경해두었습니다.
1. 시작하기
tmux 혹은 tmux new -s <원하는 이름>
: 추후에 attache(재사용)을 하기 편하게끔 이름을 지정하시는게 좋습니다. tmux new -s normal
2. 창 분할하기
Ctrl+j를 누른 후에 | 를 누르면 좌우로 분할되고,
Ctrl+j를 누른 후에 - 를 누르면 상하로 분할됩니다.,
3. 창 이동하기
Ctrl+j를 누르고 다시 Ctrl+j를 누르면 이전 창으로 돌아갑니다.
Ctrl+j를 누르고 q를 누르면 창마다 숫자가 나오는데 이 때 해당 숫자를 누르면 그 창으로 이동합니다.
4. Tab 만들기
Ctrl+j를 누른 후에 c를 누르면 새로운 tab이 생성됩니다.
5. Tab간 이동하기
Ctrl+j를 누른 후에 n을 누르면 다음 tab으로 이동합니다.
Alt+<숫자키>를 누르면 해당 tab으로 이동합니다.
6. 창 닫기
shell에서 exit명령을 입력합니다.
Ctrl+j를 누른 후에 x를 누르면 해당 pane을 닫을 것인지 묻습니다. 이 때 y를 선택하면 해당 창이 닫힙니다.
7. Detache / Attache 사용하기 (build걸고 퇴근하기)
tmux를 실행하고 나서 빌드를 실행합니다.
Ctrl+j를 누르고 d를 누르면 [detached (from session xxx)] 라고 뜨면서 tmux를 실행하기 전 Shell로 빠져나옵니다.
퇴근합니다.~
다음날 와서 tmux attach -t xxx를 치면 퇴근 전 화면으로 돌아갑니다.
8. Zoom기능 사용하기
tmux최신버전에는 zoom이라는 기능이 있습니다. 창을 분할해서 사용하다가 잠시 전체 화면으로 바꾸고, 다시 원래대로 돌아갈 수 있는 기능입니다.
Ctrl+j를 누른 후에 z를 누르면 현재 커서가 위차한 창이 전체 화면으로 전환되고,
다시 Ctrl+j를 누른 후에 z를 누르면 분할되었던 상태로 돌아가게 됩니다.
[More]
1. 제 설정에는 bash대신 zsh가 tmux로 접속하면 실행되게 되어 있습니다.
해당 설정을 원래대로 bash로 변경하고 싶으시면 ~/.tmux.conf에서
# set-option -g default-command "bash"
set-option -g default-command "zsh"
두 부분을 바꾸시면 됩니다. (#은 주석처리입니다.)
2. tmux에 간단한 설명은 아래를 참고하세요.
http://nodeqa.com/nodejs_ref/99
3. 매번 tmux를 설정하고 창을 분할하는 작업을 하게 되는데 이걸 미리 설정해서 할 수 있는 Tool도 있습니다.
https://github.com/tmuxinator/tmuxinator
저도 설정해서 쓰고 있는데 mux session-name으로 간단히 new/attache를 할 수 있어서 편합니다.