개발 공부

tmux 사용법

공대사람 2019. 8. 28. 00:34

회사에서 일을 하다 보니 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