본문 바로가기

Back-End

tmux 완전 정복 — 개발자를 위한 명령어 치트시트

반응형

tmux(Terminal Multiplexer)는 하나의 터미널 창에서 여러 세션·윈도우·패널을 관리할 수 있는 도구다.
SSH 접속이 끊겨도 세션이 살아 있어 서버 작업에 필수적이다.


📌 기본 개념

Session  ─┬─ Window 1 ─┬─ Pane 1
           │             └─ Pane 2
           └─ Window 2 ─── Pane 1
개념 설명
Session tmux의 최상위 단위. 독립적으로 유지됨
Window 세션 안의 탭. 전체 화면을 차지
Pane 윈도우를 분할한 작은 터미널 영역

Prefix 키: 기본값 Ctrl + b (이후 <prefix>로 표기)


🚀 세션 (Session)

터미널에서 (tmux 밖)

tmux                          # 새 세션 시작
tmux new -s my-session        # 이름 지정해서 새 세션 시작
tmux ls                       # 세션 목록 확인
tmux attach                   # 마지막 세션에 재접속
tmux attach -t my-session     # 특정 세션에 재접속
tmux kill-session -t my-session  # 세션 종료
tmux kill-server              # 모든 세션 종료

tmux 안에서

단축키 동작
<prefix> d 세션 detach (세션은 백그라운드에서 유지)
<prefix> s 세션 목록 보기 및 전환
<prefix> $ 현재 세션 이름 변경
<prefix> ( 이전 세션으로 이동
<prefix> ) 다음 세션으로 이동

🪟 윈도우 (Window)

단축키 동작
<prefix> c 새 윈도우 생성
<prefix> , 현재 윈도우 이름 변경
<prefix> w 윈도우 목록 보기 및 전환
<prefix> n 다음 윈도우로 이동
<prefix> p 이전 윈도우로 이동
<prefix> 0~9 번호로 윈도우 이동
<prefix> & 현재 윈도우 닫기 (확인 필요)
<prefix> l 마지막으로 사용한 윈도우로 이동

▪️ 패널 (Pane)

분할

단축키 동작
<prefix> % 좌우(수직) 분할
<prefix> " 상하(수평) 분할

이동

단축키 동작
<prefix> ←↑→↓ 방향키로 패널 이동
<prefix> o 순서대로 다음 패널로 이동
<prefix> ; 이전 패널로 이동
<prefix> q 패널 번호 표시 (번호 입력 시 이동)

크기 조정

단축키 동작
<prefix> Ctrl+←↑→↓ 방향키 방향으로 크기 조정
<prefix> z 패널 최대화 / 원복 (zoom toggle)
<prefix> ! 패널을 새 윈도우로 분리

레이아웃

단축키 동작
<prefix> Space 레이아웃 순환 (even-horizontal → even-vertical → main-horizontal 등)

닫기

단축키 동작
<prefix> x 현재 패널 닫기 (확인 필요)
exit 또는 Ctrl+d 패널 종료

📋 복사 모드 (Copy Mode)

tmux 안에서 스크롤하거나 텍스트를 복사할 때 사용한다.

단축키 동작
<prefix> [ 복사 모드 진입
q 또는 Esc 복사 모드 종료
Space 선택 시작 (vi 모드)
Enter 선택 복사 후 종료
<prefix> ] 복사한 내용 붙여넣기
↑↓ 또는 PgUp/PgDn 스크롤

vi 모드 활성화 (~/.tmux.conf에 추가):

set-window-option -g mode-keys vi


⚙️ 설정 파일 (~/.tmux.conf)

자주 쓰는 설정 예시

# Prefix 키를 Ctrl+a 로 변경 (선택)
unbind C-b
set-option -g prefix C-a
bind-key C-a send-prefix

# 마우스 지원 활성화
set -g mouse on

# 패널 번호 1부터 시작
set -g base-index 1
setw -g pane-base-index 1

# 설정 리로드 단축키
bind r source-file ~/.tmux.conf \; display "Reloaded!"

# vi 모드
setw -g mode-keys vi

# 256 색상 지원
set -g default-terminal "screen-256color"

# 상태바 색상
set -g status-style bg=colour235,fg=colour136

설정 리로드

tmux source-file ~/.tmux.conf
# 또는 tmux 안에서
<prefix> r   # 위 설정 적용 시

🔧 기타 유용한 명령어

# 특정 세션의 모든 윈도우에 같은 명령 실행
tmux send-keys -t my-session "ls -al" Enter

# 세션 이름 변경
tmux rename-session -t old-name new-name

# tmux 버전 확인
tmux -V
단축키 동작
<prefix> ? 단축키 목록 전체 보기
<prefix> : tmux 명령어 직접 입력
<prefix> t 현재 시각 표시

💡 실전 팁

  1. 서버에서 nohup 대신 tmuxnohup보다 tmux 세션 안에서 작업하면 재접속 후 출력 로그를 그대로 볼 수 있다.
  2. 세션 이름은 프로젝트별로tmux new -s backend, tmux new -s frontend 처럼 구분하면 편하다.
  3. <prefix> z 줌 기능 — 특정 패널을 잠깐 전체화면으로 볼 때 매우 유용하다.
  4. 마우스 모드set -g mouse on 하나로 클릭 이동, 드래그 리사이즈 모두 가능해진다.
  5. TPM (Tmux Plugin Manager) — 플러그인 생태계가 있어 테마, 세션 저장/복원 등 확장 가능.

반응형