tmux
tmux is a terminal multiplexer that allows you to split a terminal window into multiple panes and manage multiple terminal sessions.
1. 시작하기 전에: 접두사(Prefix)
tmux의 모든 명령은 Prefix 키를 먼저 누르는 것으로 시작합니다.
- 기본 Prefix:
Ctrl+b
팁:
Ctrl+b를 누른 뒤 손을 떼고, 그다음에 원하는 단축키를 입력하면 됩니다.
2. 세션(Session) 관리
세션은 작업 전체의 묶음입니다. 서버에서 로그아웃해도 세션은 살아있습니다.
| 기능 | 명령어 / 단축키 |
|---|---|
| 새 세션 시작 | tmux new -s [세션이름] |
| 세션 리스트 확인 | tmux ls |
| 세션 접속 (Attach) | tmux attach -t [세션이름] |
| 세션 나가기 (Detach) | Prefix + d |
| 세션 종료 | (터미널에서) exit 입력 |
세션 목록 확인
- 세션 목록 보기:
Prefix+s
접속 중인 세션의 이름 변경
- 단축키:
Prefix(Ctrl+b) 누른 후 +$(달러 기호) - 방법: 하단 상태 바에 이름 수정 칸이 생기면, 기존 이름을 지우고 새 이름을 입력한 뒤 Enter를 누르세요.
터미널에서 세션 이름 변경
- 세션 내부에서:
tmux rename-session [새이름] - 세션 외부에서 (특정 세션을 지정):
tmux rename-session -t [기존이름] [새이름]
3. 윈도우(Window) 관리
하나의 세션 안에서 여러 개의 탭(Tab)처럼 사용합니다.
- 새 윈도우 생성:
Prefix+c - 다음 윈도우로 이동:
Prefix+n - 이전 윈도우로 이동:
Prefix+p - 번호로 이동:
Prefix+0~9 - 윈도우 이름 변경:
Prefix+,
4. 패인(Pane) 관리: 화면 분할
하나의 화면을 여러 구역으로 나누는 기능입니다. tmux의 꽃이죠!
- 가로 분할:
Prefix+"(따옴표) - 세로 분할:
Prefix+%(퍼센트) - 패인 간 이동:
Prefix+방향키 - 패인 닫기:
Prefix+x(또는exit입력) - 패인 전체화면 전환:
Prefix+z(다시 누르면 복귀)
5. 유용한 꿀팁
- 스크롤 모드:
Prefix+[를 누르면 마우스 휠이나 방향키로 이전 기록을 볼 수 있습니다. (나갈 때는q) - 단축키 도움말:
Prefix+?를 누르면 모든 단축키 목록이 뜹니다.
💡 설정 커스텀 (옵션)
매번 Ctrl + b를 누르는 게 불편하다면, 홈 디렉토리에 .tmux.conf 파일을 만들어 설정을 바꿀 수 있습니다.
# 예시: 마우스 사용 가능하게 설정
set -g mouse on
# 예시: 가로/세로 분할 단축키를 더 직관적인 - 와 | 로 변경
bind | split-window -h
bind - split-window -v6. tmux.conf
1. 추천 설정 파일 (~/.tmux.conf)
# ==========================================
# 1. 일반 설정
# ==========================================
# 마우스 사용 활성화 (클릭으로 패인 이동, 스크롤 가능)
set -g mouse on
# 히스토리 용량 늘리기 (기본은 너무 적음)
set -g history-limit 10000
# 인덱스 번호를 1부터 시작 (키보드 0번은 멀기 때문)
set -g base-index 1
setw -g pane-base-index 1
# 터미널 색상 보정 (256color 지원)
set -g default-terminal "screen-256color"
# ==========================================
# 2. 단축키 변경 (더 직관적으로)
# ==========================================
# 화면 분할 단축키 변경 (현재 경로 유지하며 분할)
bind | split-window -h -c "#{pane_current_path}"
bind - split-window -v -c "#{pane_current_path}"
# 패인 이동을 Vim 스타일로 (Alt + hjkl)
# Prefix 없이 바로 이동 가능해서 매우 편리함
bind -n M-h select-pane -L
bind -n M-l select-pane -R
bind -n M-k select-pane -U
bind -n M-j select-pane -D
# 설정 파일 리로드 단축키 (Prefix + r)
bind r source-file ~/.tmux.conf \; display "Reloaded!"
# ==========================================
# 3. 디자인 (상태 바)
# ==========================================
# 상태 바 배경색 및 글자색
set -g status-bg black
set -g status-fg white
# 왼쪽: 세션 이름 표시
set -g status-left '#[fg=green][#S] '
# 오른쪽: 날짜 및 시간 표시
set -g status-right '#[fg=cyan]%Y-%m-%d %H:%M'2. 설정 적용하는 법
파일을 저장한 후, 터미널에서 다음 명령어를 입력해야 바로 적용됩니다.
tmux source-file ~/.tmux.conf(위 설정을 넣었다면 이후부터는 Prefix + r만 눌러도 적용됩니다.)
3. 이 설정의 핵심 포인트
- Vim 스타일 이동 (
Alt+h/j/k/l): 원래는Prefix를 누르고 방향키를 눌러야 하지만, 이 설정을 쓰면Alt키와h,j,k,l만으로 화면 사이를 슉슉 날아다닐 수 있습니다. - 현재 경로 유지: 새 패인을 나눌 때 이전에 작업하던 폴더 경로에서 바로 시작하게 해줍니다. (이게 안 되면 매번
cd로 이동해야 해서 번거롭거든요.) - 마우스 활성화: "터미널은 키보드지!" 하다가도 가끔 마우스 휠로 스크롤하고 싶을 때 정말 유용합니다.
7. 추가 설정정
가장 강력한 TPM(Tmux Plugin Manager) 기반의 설정과 Vim과의 완벽한 통합 설정을 소개해 드릴게요.
1. TPM (Tmux Plugin Manager) 설치
먼저 플러그인을 관리해주는 매니저를 설치해야 합니다.
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm2. 고난도 .tmux.conf 추천 구성
이 설정은 세션 자동 저장/복구, Vim 스타일의 부드러운 이동, 그리고 강력한 테마를 포함합니다.
# ==========================================
# 1. 플러그인 리스트 (TPM)
# ==========================================
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'tmux-plugins/tmux-resurrect' # 세션 저장/복구
set -g @plugin 'tmux-plugins/tmux-continuum' # 자동 저장
set -g @plugin 'christoomey/vim-tmux-navigator' # Vim-Tmux 완벽 통합
set -g @plugin 'dracula/tmux' # 세련된 테마 (Dracula)
# ==========================================
# 2. 고급 기능 설정
# ==========================================
# 24-bit color 지원 (True Color)
set -as terminal-features ",xterm-256color:RGB"
# 세션 자동 복구 활성화
set -g @continuum-restore 'on'
# Dracula 테마 커스텀 (필요한 정보만 표시)
set -g @dracula-show-powerline true
set -g @dracula-plugins "cpu-usage ram-usage network-bandwidth"
set -g @dracula-show-left-icon session
# ==========================================
# 3. Vim 모드 및 복사 설정
# ==========================================
# 스크롤/복사 모드에서 Vim 단축키 사용
setw -g mode-keys vi
bind-key -T copy-mode-vi 'v' send -X begin-selection # v로 선택 시작
bind-key -T copy-mode-vi 'y' send -X copy-selection-and-cancel # y로 복사
# ==========================================
# TPM 초기화 (파일의 가장 마지막에 넣으세요)
# ==========================================
run '~/.tmux.conf/plugins/tpm/tpm'3. 설정 적용 및 플러그인 설치
- 파일을 저장한 후
tmux source-file ~/.tmux.conf를 입력합니다. - tmux 안에서
Prefix+I(대문자 i)를 누르면 플러그인들이 자동으로 설치됩니다.
4. 고난도 설정의 핵심 기능
① 세션의 불사신화 (tmux-resurrect & continuum)
- 컴퓨터를 재부팅해도 열어두었던 패인 구조, 실행 중인 프로그램, 작업 경로가 그대로 복구됩니다.
- 저장:
Prefix+Ctrl-s - 복구:
Prefix+Ctrl-r(보통 자동 복구 설정 덕분에 알아서 켜집니다.)
② Vim-Tmux Navigator
- Vim(또는 Neovim) 사용자라면 필수입니다.
- Vim 창과 tmux 패인 사이를 구별 없이
Ctrl + h, j, k, l만으로 자유롭게 이동할 수 있게 해줍니다. (Vim 쪽에도 관련 플러그인을 깔아야 완벽해집니다.)
③ 복사 모드 (Vi-mode)
Prefix+[를 눌러 진입했을 때, 방향키가 아닌h, j, k, l로 이동하고v로 블록 지정,y로 복사할 수 있습니다. 마우스에 손을 댈 필요가 없어집니다.
8. Prefix 변경
손가락의 피로도를 줄여주는 Prefix 변경과 함께, 손맛을 극대화할 수 있는 추가 고난도 설정들을 정리해 드릴게요. 이 설정까지 마치면 터미널 작업 속도가 비약적으로 상승합니다.
1. Prefix를 Ctrl + a로 변경
대부분의 리눅스/개발 고수들이 사용하는 설정입니다. b는 오른손까지 써야 하지만, a는 왼손 소지(Pinky) 하나로 모든 명령을 시작할 수 있게 해줍니다.
# 기본 Prefix 해제
unbind C-b
# 새로운 Prefix 설정
set -g prefix C-a
bind C-a send-prefix2. 패인(Pane) 크기 조절 단축키 (Vim 스타일)
화면 비율을 맞출 때 마우스를 쓰지 않고, 방향키나 단축키로 정교하게 조절하는 설정입니다.
# Prefix + H, J, K, L로 패인 크기 조절 (5칸씩)
bind -r H resize-pane -L 5
bind -r J resize-pane -D 5
bind -r K resize-pane -U 5
bind -r L resize-pane -R 5
-r옵션: Prefix를 한 번만 누르고, 연속해서H나L을 눌러 크기를 계속 조절할 수 있게 해줍니다.
3. 시스템 클립보드와 연동 (Linux/Mac 공용)
tmux 내부에서 복사(y)한 내용을 터미널 밖 메모장이나 브라우저에 붙여넣고 싶을 때 필수입니다.
# xclip 또는 xsel이 설치되어 있어야 함 (Linux 기준)
# 복사 모드에서 'y'를 누르면 시스템 클립보드로 전송
bind-key -T copy-mode-vi 'y' send -X copy-pipe-and-cancel "xclip -selection clipboard -i"4. 최종 진화형 .tmux.conf 예시
위의 모든 내용을 통합한 완성형 설정입니다.
# --- [1] Prefix 변경 ---
unbind C-b
set -g prefix C-a
bind C-a send-prefix
# --- [2] 인터페이스 및 디자인 ---
set -g mouse on
set -g base-index 1
setw -g pane-base-index 1
set -g renumber-windows on # 윈도우 삭제 시 번호 자동 정렬
# --- [3] 단축키 커스텀 ---
# 현재 경로로 분할
bind | split-window -h -c "#{pane_current_path}"
bind - split-window -v -c "#{pane_current_path}"
# 설정 리로드
bind r source-file ~/.tmux.conf \; display "Config Reloaded!"
# 패인 이동 (Vim 스타일)
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R
# --- [4] 복사 모드 (Vi-mode) ---
setw -g mode-keys vi
bind-key -T copy-mode-vi v send-step -X begin-selection
bind-key -T copy-mode-vi y send-step -X copy-selection-and-cancel
# --- [5] TPM 플러그인 관리 ---
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @plugin 'tmux-plugins/tmux-continuum'
set -g @plugin 'christoomey/vim-tmux-navigator'
run '~/.tmux/plugins/tpm/tpm'🚀 적용 가이드
~/.tmux.conf파일에 위 내용을 넣고 저장합니다.- 터미널에서
tmux source-file ~/.tmux.conf실행. - tmux 안에서
Ctrl + a누른 후I(대문자)를 눌러 플러그인 설치.
이제 **Ctrl + a**가 여러분의 마법 지팡이가 되었습니다! 혹시 특정 OS(Kali, Ubuntu 등)나 특정 환경(Wayland 등)에서 겪고 있는 불편함이 있다면 말씀해 주세요. 그에 딱 맞는 트윅을 더 알려드릴게요.