tmux 설치 및 단축키 정리

Claude Code, Gemini CLI, Codex를 동시에 돌리다 보니, 여러 터미널 세션을 동시에 관리해야 할 필요성이 생겼다. 개발동생 유튜브에서도 같은 이슈를 다루고 있어서, 이를 참고해 Ghostty(터미널 에뮬레이터) + tmux(터미널 멀티플렉서) 조합으로 세팅했다.


tmux란

tmux는 터미널 멀티플렉서(terminal multiplexer)로, 하나의 터미널 창 안에서 여러 세션, 윈도우, 패널을 동시에 운영할 수 있게 해준다. 세션을 종료하지 않고 detach 할 수 있어서, 터미널을 닫아도 세션은 백그라운드에서 살아 있고, 나중에 다시 attach해서 이어서 작업할 수 있다. 이런 특징을 이용해 각 패널이나 윈도우 간 비동기 작업 후 결과를 서로 공유하는 것도 가능하다.

tmux는 Session - Window - Pane의 3계층으로 작업 공간을 구성한다.

Session
└── Window 0
│   ├── Pane 0 (좌)
│   └── Pane 1 (우)
└── Window 1
    └── Pane 0
...
단위역할
Session독립된 작업 맥락. 프로젝트 단위로 분리하기 좋다.
Window세션 안의 탭. 브라우저 탭처럼 전환 가능.
Pane윈도우 안을 분할한 터미널 패널.

설치

# macOS
brew install tmux

# Ubuntu/Debian
sudo apt install tmux

단축키

tmux 세션 내에서, 모든 단축키는 prefix 입력 후 명령 키를 눌러야 한다(기본값: Ctrl+b).


세션 관련

  • 세션 밖(터미널 프롬프트)
명령어설명
tmux new새 세션 생성
tmux new -s devdev라는 이름으로 세션 생성
tmux attach마지막 세션에 재접속
tmux attach -t devdev 세션에 재접속 (이름 또는 번호)
tmux ls열려 있는 세션 목록 확인
tmux kill-session -t devdev 세션 강제 종료
  • 세션 안(prefix 후 입력)
단축키설명
d현재 세션 detach (세션은 유지, 터미널만 빠져나옴)
$현재 세션 이름 변경
s열려 있는 세션 목록 표시 → 엔터로 이동 / 로 윈도우·패널 미리보기

윈도우 관련 (prefix 후 입력)

단축키설명
c새 윈도우 생성
p이전 윈도우로 이동
n다음 윈도우로 이동
0~9번호로 특정 윈도우 이동
,현재 윈도우 이름 변경
w전체 윈도우 목록 펼쳐서 확인 → 좌측 번호 입력해서 이동

Pane 관련 (prefix 후 입력)

단축키설명
%현재 pane을 좌우로 분할
"현재 pane을 상하로 분할
방향키인접한 pane으로 이동
z현재 pane 전체화면 토글 (다시 누르면 원복)
x현재 pane 닫기 (확인 메시지 있음)
Ctrl+d현재 pane 즉시 닫기 (확인 없음, 마지막 pane이면 작동 안 함)

xCtrl+d로 닫은 pane/window/session은 attach로 재접근 불가.


tmux send / capture

AI 도구를 여러 pane에 나눠 돌릴 때 유용한 명령어다. 쉘 스크립트나 자동화 코드에서 특정 pane에 명령을 보내거나 출력을 가져올 수 있다.

# 특정 pane에 명령어 전송
# -t 옵션: session:window.pane 형식
tmux send-keys -t dev:0.1 "ls -al" Enter

# 특정 pane의 출력 내용 가져오기
tmux capture-pane -t dev:0.1 -p

참고


© 2024. All rights reserved.

Powered by Hydejack v9.2.1