주니어 개발자의 대나무숲
tmux 사용법 본문
회사에서 일을 하다 보니 terminal에 계속 tab을 추가하여 사용하는 것에 한계를 느끼던 중, tmux와 screen을 추천받게 되었습니다. 무엇을 사용하는게 더 나을까 고민하며 구글링해본 결과, tmux가 더 좋다는 의견이 많아 tmux의 사용법에 대해 공부하기로 결정했습니다.
What is tmux
terminal 화면을 여러개로 분할하고, 세션을 생성하여 attach/detach를 자유롭게 할 수 있는 terminal multiplexer입니다.
Terms
-
prefix : 단축키를 입력하기 전에 먼저 입력해야 하는 키조합으로, tmux의 default 키조합은
crtl + b
입니다. 예를 들어, 단축키가 c라면ctrl + b + c
를 입력해서 해당 단축키를 사용할 수 있습니다. -
session : tmux가 관리하는 가장 큰 단위로, 1개 이상의 window로 구성될 수 있습니다. 사용자는 session에 attach/detach를 할 수 있으며, detach를 하더라도 session은 background에서 계속 실행되게 됩니다.
-
window : session내에 존재하는 하나의 tab을 의미하는 단위로서, window를 전환하게 되면 tab을 전환할 때 처럼 전체 화면이 전환됩니다.
-
pane : 한 window내에서 분할된 화면의 단위로서, 하나의 window가 여러 개의 pane을 가질 수 있으며, window와 달리 pane을 전환해도 전체 화면이 전환되지는 않습니다.
-
status bar : 화면 하단에 표시되는 상태 막대입니다.
Cheatsheet
일부 명령어들은 명령어 모드에 진입해야 사용할 수 있습니다. 명령어 모드의 단축키는 :
입니다.
$ <prefix> + :
session
# session 목록 보기
$ tmux ls
# 새 session 생성
$ tmux
# 이름이 sesison-name인 새로운 session을 생성
$ tmux new -s <session-name>
# session 이름 수정
$ <prefix> + $
# 현재 session 종료
$ exit
# session 바깥에서 session 종료
$ tmux kill-session -t <session-name>
# session detach (process는 계속 돌게 하면서 기존 환경으로 빠져나오기)
$ <prefix> + d
# session attach (특정 session으로 진입)
$ tmux attach -t <session-name>
window
# 모든 window 목록 보기 (다른 session의 window 목록도 보여줌)
$ <prefix> + w
# 새 window 생성
$ <prefix> + c
# window 이름 수정
$ <prefix> + ,
# window 종료 (ctrl+d 도 가능)
$ <prefix> + &
# window-number로 이동
$ <prefix> + <window-number>
# 이전(previous) window로 이동
$ <prefix> + p
# 다음(next) window로 이동
$ <prefix> + n
pane
# 새 pane 횡 분할
$ <prefix> + %
# 새 pane 종 분할
$ <prefix> + "
# pane 삭제 (ctrl+d 도 가능)
$ <prefix> + x
# 다른 pane으로 이동 (arrow는 이동할 pane의 방향에 해당하는 방향키)
$ <prefix> + <arrow>
# 현재 pane을 전체화면으로 전환. 다시 입력하면 원상태로 복구.
$ <prefix> + z
참고 자료
1. https://edykim.com/ko/post/tmux-introductory-series-summary/
2. https://blog.b1ue.sh/tmux-tutorial/
3. https://gist.github.com/LeoHeo/70d191eb629b7e3e3084278e19a73e38
4. https://dgkim5360.tistory.com/entry/the-first-steps-for-tmux-terminal-multiplexer