Tmux
≡ 목차 (Table of Contents)
Tmux 는 터미널 멀티플렉서라고 불리는 도구다. 쉽게 말해서 하나의 터미널을 여러 개로 나누어서 쓸 수 있게 만들어 준다. 현대적인 터미널의 멀티 탭이나 멀티 Pane 기능과 비슷한 기능을 터미널 안에서 구현하기도 한다.
비슷하면서도 원조 격인 screen
이라는 도구에 영향을 많이 받은 것으로 보인다.
사용법
별 다른 인자 없이 그냥 실행시키면 실행된다.
tmux
실행된 상태에서 detach, 즉 tmux를 백그라운드 상태로 두려면 아래 단축키 항목에서 백그라운드로 돌리기 항목을 참조하거나, 혹은 tmux 내부의 셸에서 아래 커맨드를 입력하면 된다.
tmux detach
detach 상태 즉 백그라운드 상태에 있는 tmux 에서 구동 중인 셸은 터미널이 종료되어도 계속 돌아간다. 개발 중인 서버 프로세스를 테스트 할 때 편하다.
백그라운드에 있는 tmux 세션을 포그라운드로 돌리려면 아래 커맨드를 입력하면 된다.
tmux attach
이렇게 하면 해당 세션이 다시 뜬다.
설정 방법
~/.tmux.conf
파일에 원하는 설정을 기록할 수 있다.
리더 키(Prefix) 변경하기
기본 리더 키는 ^b
(Ctrl-B)로 설정되어 있다. 이걸 바꾸려면, 예를 들어 리더 키를 ^\
로 바꾸려면 아래의 설정을 추가하면 된다.
unbind-key C-b set-option -g prefix C-'\'
Emacs 등을 같이 쓰는 경우 기본 리더 키인 ^b
가 중복되기 때문에 이런 식으로 잘 안 쓰이는 키로 바꾸는 것을 추천한다.
리더 키는 대안 리더 키(alternative, prefix2)도 지원된다. 기본 대안 리더 키는 ^a
가 기본 설정이다. 이것 역시 비슷하게 바꿀 수 있다.
unbind-key C-a set-option -g prefix2 C-']'
단축키
아래에 언급하는 모든 단축키는 리더 키(Prefix)를 먼저 누른 후 눌러야 한다. 참고로 리더 키는 앞서 언급한 대로 사용자가 커스터마이징 할 수 있으며 기본 설정은 ^B
(Ctrl-B)다.
c
- 새 창 만들기(New window)
1
- 1번 윈도우로 전환(Switch to window 1). 이런 식으로 1에서 9번까지 쓸 수 있다.
%
- 창을 좌우로 분할(Horizontal split pane)
"
- 창을 위아래로 분할(Vertical split pane)
q 1
- 창의 나눠 진 부분에서 1번 pane으로 이동하기(Switch pane number 1).
q
를 누르면 화면에 숫자가 표시되니 원하는 숫자를 누르면 이동한다. o
- 다른 창으로 포커스 이동
h
혹은j
혹은k
혹은r
혹은 커서 이동키- 해당 방향의 pane으로 이동한다.
hjkl
은 Vim 의 커서 이동키와 동일한 배치다. 이 외에 방향키를 사용해도 동일하게 동작한다. [
- 스크롤 모드. 커서 이동키로 스크롤을 할 수 있다. 빠져나올 때는
RET
(Enter) 키를 누르면 된다. d
- 백그라운드로 돌리기(detach)
M-1
- 모든 Pane의 넓이(width) 통일시키기
M-2
- 모든 Pane의 높이(height) 통일시키기
M-1
처럼 M
키 조합 단축키는 윈도의 경우 Alt키를 같이 누르라는 의미다. macOS의 iTerm2의 경우 Profile - Keys 항목에서 Option 키를 Meta에 바인딩 시킬 수 있으므로 만약 M-
단축키가 통하지 않는다면 설정을 수정해보자.
기타 팁
선택 영역 복사하기
마우스로 드래그 해서 ^C
혹은 Command-C 를 눌렀는데 복사가 안 된다면 ^W
(Ctrl+W)를 눌러보자. 물론 설정에 따라 터미널에서 복사가 안 될 수도 있다.
macOS 유저라면 🌏reattach-to-user-namespace 라는 도구를 설치하고 설정해야 할 수도 있다.
종료하지 않고 설정 다시 읽어 들이기
외부 링크
- 🌏🇫🇷 Oh My Tmux! Pretty & versatile tmux configuration: 잘 만들어진 설정을 공유하고 있으며 그대로 쓰기에도 괜찮고 설정을 참조하기에도 괜찮은 것 같다.