tmux는 입력하는 내용을 현재 열린 모든 pane에 전달하는 기능을 제공한다. 여러 위치에 있는 내용에 대해서 동일한 작업을 수행해야 하는 경우에 유용하게 사용할 수 있다. 이전부터 기능이 있다는 점은 알고 있었는데 딱히 사용할 일이 없다가 최근 장애 대응 중에 유용하게 사용해서 기록 해둔다.
tmux 창에서 pane을 열고 다음과 같이 입력한다. on이나 off를 지정하지 않으면 현재 설정과 반대로 토글한다.
<Ctrl-B>, :
setw synchronize-panes on
설정을 켠 다음에 입력하면 현재 창에 열린 모든 pane에 동시에 입력되는 것을 확인할 수 있다.
자주 사용한다면 단축키로 저장해둘 수 있다. .tmux.conf에 다음처럼 설정을 추가한다.
검은 것은 배경이요 흰 것은 글씨니, 터미널 환경을 더 편하게 사용할 수 있는 tmux 설정기
최근에 구입한 Dell 노트북에 조금이라도 가볍게 사용해보려고 Lubuntu를 설치해서 사용하고 있다. 트랙패드가 예전에 비해 많이 나아지긴 했지만 아무래도 맥북에서 사용하던 것과는 많이 달라서 좀 더 키보드 친화적인 환경을 꾸려야겠다는 생각이 들었다. 그러던 중 tmux와 다시 친해질 기회인 것 같아서 tmux를 설치하게 되었다.
어제 tmux 이야기를 트위터에 올렸더니 ujuc님이 powerline이란 멋진 tmux 플러그인을 소개해주시고, 사용하는 rc 파일을 공유해주셨다.
<p>
— 용균 (@haruair) <a href="https://twitter.com/haruair/status/703907961668653056">February 28, 2016</a>
</p>
</blockquote>
<p>
</div> </div>
<p>
당분간 개인적으로 사용하는 환경이 터미널 위주라서 이참에 tmux와 vim에 부지런히 친해지는 계기로 삼으려고 한다. 손목 시큰함도 좀 줄었으면 좋겠다.
</p>
tmux를 어디선가 보고 엄청 멋지다 싶어서 검색했더니 @nanhapark님이 재미있게 정리한 글이 있어서 편하게 볼 수 있었다. 읽은 글들은 다음 목록에서 확인할 수 있고, 읽으며 요약해 정리했다. (nodeqa.com에 해당 글이 있었는데 사이트가 더이상 운영되지 않아 링크를 제거했다.)
tmux 설치하기
맥에서는 brew로 설치 가능
$ brew install tmux
tmux 구성
session : tmux 실행 단위. 여러개의 window로 구성.
window : 터미널 화면. 세션 내에서 탭처럼 사용할 수 있음.
pane : 하나의 window 내에서 화면 분할.
status bar : 화면 아래 표시되는 상태 막대.
명령어 정리
tmux는 prefix 키인 ctrl+b를 누른 후 다음 명령 키를 눌러야 동작할 수 있다. 다음 내용에서 ctrl + b, 어쩌고 내용이 있다면 tmux 내에서 쓸 수 있는 단축키다.
ctrl + b, <key>
일부 직접 명령어를 입력해야 할 때는 명령어 모드로 진입해야 한다. 명령어 모드의 key는 :다.
ctrl + b, :
세션 관련
# 새 세션 생성
$ tmux new -s <session-name>
# 세션 이름 수정
ctrl + b, $
# 세션 종료
$ (tmux에서) exit
# 세션 중단하기 (detached)
ctrl + b, d
# 세션 목록 보기 (list-session)
$ tmux ls
# 세션 다시 시작
$ tmux attach -t <session-number or session-name>
윈도우 관련
# 새 윈도우 생성
ctrl + b, c
# 세션 생성시 윈도우랑 같이 생성
$ tmux new -s <session-name> -n <window-name>
# 윈도우 이름 수정
ctrl + b, ,
# 윈도우 종료
ctrl + b, &
ctrl + d
# 윈도우 이동
ctrl + b, 0-9 : window number
n : next window
p : prev window
l : last window
w : window selector
f : find by name
틀 pane 관련
# 틀 나누기
ctrl + b, % : 횡 분할
" : 종 분할
# 틀 이동
ctrl + b, q 그리고 화면에 나오는 숫자키
ctrl + b, o : 순서대로 이동
ctrl + b, arrow : 방향키로 숑숑
# 틀 삭제
ctrl + b, x
ctrl + d
# 틀 사이즈 조절
(ctrl + b, :)
resize-pane -L 10
-R 10
-D 10
-U 10
# 틀 레이아웃 변경
ctrl + b, spacebar
단축키 관련
# 단축키 목록
ctrl + b, ?
# 키 연결 및 해제 bind and unbind
(ctrl + b, :)
bind-key [-cnr] [-t key-table] key command [arguments]
unbind-key [-acn] [t key-table] key
# 옵션 설정 `set` and `setw`
set -g <option-name> <option-value> : set-option
setw -g <option-name> <option-value> : set-window-option