--- title: tmux 설치 및 설정 구성 date: 2026-06-29 type: guide domain: homelab tags: [tmux, terminal, dotfiles] --- - **작업일**: 2026-02-21 - **환경**: Ubuntu 24.04.4 LTS / tmux 3.4 - **설정 파일**: `~/.tmux.conf` - **플러그인 경로**: `~/.tmux/plugins/` --- ## 1. 설치 ```bash sudo apt install -y tmux ``` tmux 3.4-1ubuntu0.1 설치됨. --- ## 2. 설정 파일 (~/.tmux.conf) ### 2.1 Prefix 키 Ctrl-a (primary)와 Ctrl-b (secondary) **둘 다 사용 가능**하도록 구성. ```tmux set -g prefix C-a set -g prefix2 C-b bind C-a send-prefix bind C-b send-prefix -2 ``` ### 2.2 기본 동작 | 설정 | 값 | 설명 | |---|---|---| | `mouse` | on | pane 클릭, 리사이즈, 스크롤 | | `history-limit` | 50000 | 스크롤백 버퍼 (기본 2000) | | `base-index` | 1 | window 번호 1부터 시작 | | `pane-base-index` | 1 | pane 번호 1부터 시작 | | `escape-time` | 0 | ESC 지연 제거 (vim 필수) | | `renumber-windows` | on | window 닫으면 번호 재정렬 | | `default-terminal` | tmux-256color | 256색 + true color 지원 | ### 2.3 키바인딩 #### pane 분할 (tmux 기본값 유지) | 키 | 동작 | |---|---| | `prefix + %` | 수직 분할 | | `prefix + "` | 수평 분할 | #### pane 이동 (vim 스타일 추가) | 키 | 동작 | |---|---| | `prefix + h` | 왼쪽 pane | | `prefix + j` | 아래 pane | | `prefix + k` | 위 pane | | `prefix + l` | 오른쪽 pane | #### pane 리사이즈 | 키 | 동작 | |---|---| | `prefix + H` | 왼쪽으로 5칸 | | `prefix + J` | 아래로 5칸 | | `prefix + K` | 위로 5칸 | | `prefix + L` | 오른쪽으로 5칸 | `-r` 플래그로 반복 입력 가능 (prefix 한 번 누르고 H/J/K/L 연타). #### 기타 | 키 | 동작 | |---|---| | `prefix + r` | 설정 파일 리로드 | #### 복사 모드 (vi 키바인딩) | 키 | 동작 | |---|---| | `prefix + [` | 복사 모드 진입 | | `v` | 선택 시작 | | `y` | 선택 복사 후 복사 모드 종료 | ### 2.4 상태바 One Dark 테마 기반 색상 구성: - 좌측: 세션명 (초록) - 우측: 호스트명 (파랑) + 시각 (노랑) - 현재 window: 파란 배경 볼드 --- ## 3. 플러그인 ### 3.1 TPM (Tmux Plugin Manager) ```bash git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm ``` `.tmux.conf` 맨 마지막에 `run '~/.tmux/plugins/tpm/tpm'` 필수. #### TPM 조작 키 (tmux 세션 안에서) | 키 | 동작 | |---|---| | `prefix + I` | 새 플러그인 설치 (.tmux.conf에 추가 후) | | `prefix + U` | 설치된 플러그인 업데이트 | | `prefix + Alt + u` | 목록에서 제거된 플러그인 삭제 | #### 플러그인 추가 방법 1. `.tmux.conf`에 `set -g @plugin 'tmux-plugins/플러그인명'` 추가 2. tmux 세션에서 `prefix + I` 입력 3. 설치 완료 메시지 확인 ### 3.2 tmux-resurrect — 세션 저장/복구 리부트나 tmux 서버 종료 후에도 세션 레이아웃을 복원할 수 있다. **저장 대상**: window 배치, pane 레이아웃, 각 pane의 작업 디렉토리, 실행 중인 프로그램. | 키 | 동작 | |---|---| | `prefix + Ctrl-s` | 현재 상태 저장 | | `prefix + Ctrl-r` | 마지막 저장 상태 복구 | 저장 파일 위치: `~/.tmux/resurrect/` **복구 절차** (리부트 후): 1. `tmux` 실행 (빈 세션 열림) 2. `prefix + Ctrl-r` 입력 3. 이전 pane 레이아웃 + 디렉토리 복원됨 ### 3.3 tmux-continuum — 자동 저장 resurrect를 15분 간격으로 자동 실행한다. 수동 저장을 잊어도 최근 상태가 보존됨. ```tmux set -g @continuum-save-interval '15' ``` 별도 키 조작 없음. tmux 세션이 살아있는 동안 백그라운드로 동작. --- ## 4. 설정 파일 전문 ```tmux # ============================================ # Prefix: Ctrl-a (primary) + Ctrl-b (secondary) # ============================================ set -g prefix C-a set -g prefix2 C-b bind C-a send-prefix bind C-b send-prefix -2 # ============================================ # 기본 동작 # ============================================ set -g mouse on set -g history-limit 50000 set -g base-index 1 setw -g pane-base-index 1 set -sg escape-time 0 set -g renumber-windows on set -g default-terminal "tmux-256color" set -ga terminal-overrides ",xterm-256color:Tc" # ============================================ # 키바인딩 # ============================================ # pane 이동 (vim 스타일) bind h select-pane -L bind j select-pane -D bind k select-pane -U bind l select-pane -R # pane 리사이즈 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 # 설정 리로드 bind r source-file ~/.tmux.conf \; display "Config reloaded!" # 복사모드 vi 키바인딩 setw -g mode-keys vi bind -T copy-mode-vi v send -X begin-selection bind -T copy-mode-vi y send -X copy-selection-and-cancel # ============================================ # 상태바 # ============================================ set -g status-style "bg=#282c34,fg=#abb2bf" set -g status-left "#[fg=#98c379,bold] #S " set -g status-right "#[fg=#61afef]#H #[fg=#e5c07b]%H:%M " set -g status-left-length 30 setw -g window-status-current-style "fg=#282c34,bg=#61afef,bold" setw -g window-status-current-format " #I:#W " setw -g window-status-format " #I:#W " # ============================================ # Plugins (TPM) # ============================================ set -g @plugin 'tmux-plugins/tpm' set -g @plugin 'tmux-plugins/tmux-resurrect' set -g @plugin 'tmux-plugins/tmux-continuum' # continuum: 15분마다 자동 저장 set -g @continuum-save-interval '15' # TPM 초기화 (반드시 맨 마지막) run '~/.tmux/plugins/tpm/tpm' ```