tmux의 명령은 전부 prefix를 누른 다음 키 하나로 발동해. 기본 prefix는 Ctrl-b고, 많은 사람이 Ctrl-a로 바꿔 써 (트랙 6). 지금은 기본값 그대로 갈게. 아래에서 "prefix + X"라고 쓰면 Ctrl-b를 누르고, 떼고, X를 누르라는 뜻이야.
세션 — 프로젝트 단위 작업 공간
프로젝트마다 세션 하나가 좋은 규칙이야. 세션에는 이름을 붙일 수 있고, 다시 붙을 때 그 이름으로 찾아. 세션 안에서는 window와 pane이 화면 배치를 맡고.
Window — 탭 같은데 안 사라져
window는 탭에 해당하는 층이야. window마다 자기 pane 묶음을 갖고 있어. 대부분 프로젝트당 세 개에서 다섯 개쯤 두게 돼. "editor", "server", "shell", "logs", "git" 이런 식으로.
Pane — window를 나눈 칸
실제 셸이 사는 곳이 pane이야. prefix + "는 가로로 나눠서 위아래로 놓고, prefix + %는 세로로 나눠서 좌우로 놔. 기본 배정이 기억하기 나쁘다 보니 다들 prefix + -랑 prefix + |로 바꿔 쓰는데, 그건 트랙 6에서 할게.
결정적인 pane 동작: zoom
prefix + z가 지금 pane을 전체 화면으로 키웠다 줄였다 해. zoom이 걸리면 그 pane이 window 전체를 차지하고, 다시 누르면 원래 자리로 돌아가. "잠깐 이거 하나만 집중해서 봐야겠다" 싶을 때 쓰고, 다 보면 풀어서 여러 pane 화면으로 돌아오면 돼. Ctrl-b 자체를 빼면 가장 자주 쓰는 tmux 명령이야.
세션은 상태를 붙들고, window와 pane은 배치를 붙들어. 재부팅하면 세션은 죽어 (트랙 6의 tmux-resurrect로 저장해두지 않았다면). detach만 하면 세션은 계속 살아 있고. tmux에서 뭘 안 잃어버리게 하는 작업은 결국 대부분 세션을 제대로 잡는 얘기야.
Code
세션 — 셸에서·bash
tmux # 새 이름 없는 세션 (자동 번호)
tmux new -s myproject # 새 이름 있는 세션
tmux ls # 모든 세션 리스트
tmux attach # 가장 최근에 attach
tmux attach -t myproject # 이름으로 attach
tmux kill-session -t name # 한 세션 kill
tmux kill-server # 모든 세션 kill (핵 옵션)
세션 — tmux 안에서 (prefix = Ctrl-b)·text
prefix + d 세션에서 detach
prefix + s 세션 대화형 리스트 (화살표로 고름)
prefix + $ 현재 세션 이름 변경
prefix + ( 이전 세션
prefix + ) 다음 세션
Window·text
prefix + c 새 window 생성
prefix + n 다음 window
prefix + p 이전 window
prefix + 0..9 번호로 window 전환
prefix + , 현재 window 이름 변경
prefix + w window 대화형 리스트
prefix + & 현재 window kill (confirm 와)
prefix + l last (가장 최근) window — 토글
Pane·text
prefix + " 가로 split (위/아래)
prefix + % 세로 split (왼/오)
prefix + 화살표 pane 사이 이동
prefix + z 현재 pane ZOOM (풀스크린 토글)
prefix + x 현재 pane kill (confirm 와)
prefix + { 이전 pane 과 swap
prefix + } 다음 pane 과 swap
prefix + Space 프리셋 레이아웃 순환
prefix + q pane 번호 표시; 번호 누르면 점프
prefix + ! 현재 pane 을 자체 window 로 분리
prefix + ; last (가장 최근) pane 토글
Pane 리사이즈·text
prefix + Ctrl-화살표 1 셀씩 리사이즈
prefix + Alt-화살표 5 셀씩 리사이즈 (일부 터미널)
# 또는 명령 모드로:
prefix + :
resize-pane -D 10 아래 10
resize-pane -U 5 위 5
resize-pane -L 10 왼 10
resize-pane -R 10 오 10
새 터미널을 열고 tmux new -s warmup을 실행해. tmux 안에서 순서대로 해봐. (1) prefix + %로 pane을 좌우로 나누기, (2) 오른쪽 pane에서 htop 띄우기, (3) prefix + z로 htop을 키웠다가 다시 눌러 줄이기, (4) prefix + c로 두 번째 window를 만들고 top 띄우기, (5) prefix + 0으로 첫 window로 돌아오기, (6) prefix + d로 빠져나오기. 그다음 tmux attach -t warmup으로 다시 붙어 — 전부 그대로여야 해.
Progress
Progress is local-only — sign in to sync across devices.