// blog post
tmux 완벽 가이드 — 세션 관리부터 실전 활용까지
tmux란?
tmux(Terminal Multiplexer)는 하나의 터미널에서 여러 세션을 만들고 관리할 수 있는 도구입니다.
가장 큰 장점은 세션 유지예요. SSH 연결이 끊겨도 tmux 세션은 서버에 그대로 살아 있습니다. 다시 접속해서 tmux attach만 하면 작업하던 화면이 그대로 복원되거든요.
저는 모바일로 개발할 때 tmux를 항상 씁니다. Wi-Fi가 바뀌거나 잠깐 지하철을 타는 사이에 연결이 끊길 수 있는데, tmux가 있으면 작업 손실 없이 바로 이어서 할 수 있어요.
설치
운영체제별 설치 방법입니다.
macOS
brew install tmux
Ubuntu / Debian
sudo apt update
sudo apt install tmux
Amazon Linux / CentOS
sudo yum install tmux
설치 확인
tmux -V
# tmux 3.4
기본 개념
tmux는 3단계 구조로 되어 있어요.
- 세션(Session) — 최상위 단위. 프로젝트별로 세션을 나누면 편합니다.
- 윈도우(Window) — 세션 안의 탭. 브라우저 탭처럼 여러 윈도우를 만들 수 있어요.
- 패인(Pane) — 윈도우 안에서 화면을 분할한 영역. 코드와 로그를 동시에 볼 때 유용합니다.
세션 (dev)
├── 윈도우 0: editor
│ ├── 패인 0: vim
│ └── 패인 1: terminal
└── 윈도우 1: server
└── 패인 0: npm run dev
세션 관리
가장 자주 쓰는 명령어들이에요.
새 세션 만들기
# 이름을 지정해서 만들기 (추천)
tmux new -s dev
# 이름 없이 만들기
tmux
세션 목록 확인
tmux ls
# dev: 1 windows (created Mon Feb 24 15:00:00 2026)
# api: 2 windows (created Mon Feb 24 14:30:00 2026)
세션 접속 (attach)
# 이름으로 접속
tmux attach -t dev
# 줄여서
tmux a -t dev
# 세션이 하나뿐이면 이름 생략 가능
tmux a
세션 분리 (detach)
세션을 종료하지 않고 빠져나오는 거예요. 세션은 서버에 계속 살아 있습니다.
# 단축키 (가장 많이 사용)
Ctrl+B → D
# 명령어
tmux detach
세션 삭제
# 특정 세션 삭제
tmux kill-session -t dev
# 모든 세션 삭제
tmux kill-server
세션이 있으면 접속, 없으면 생성
이 패턴을 외워두면 정말 편해요. 저도 매일 이걸 씁니다.
tmux attach -t dev || tmux new -s dev
윈도우 관리
세션 안에서 여러 작업 공간을 만들 수 있어요. 모든 단축키는 Ctrl+B를 먼저 누른 뒤 입력합니다.
Ctrl+B → C— 새 윈도우 만들기Ctrl+B → N— 다음 윈도우로 이동Ctrl+B → P— 이전 윈도우로 이동Ctrl+B → 0~9— 번호로 윈도우 이동Ctrl+B → W— 윈도우 목록 보기Ctrl+B → ,— 현재 윈도우 이름 변경Ctrl+B → &— 현재 윈도우 닫기
패인 분할
하나의 윈도우를 여러 영역으로 나눌 수 있습니다. 코드 편집기와 터미널을 동시에 보거나, 로그를 모니터링하면서 작업할 때 유용해요.
Ctrl+B → %— 세로 분할 (좌/우)Ctrl+B → "— 가로 분할 (상/하)Ctrl+B → 방향키— 패인 간 이동Ctrl+B → Z— 현재 패인 전체화면 토글 (zoom)Ctrl+B → X— 현재 패인 닫기Ctrl+B → Space— 패인 레이아웃 변경Ctrl+B → {— 현재 패인을 왼쪽으로 이동Ctrl+B → }— 현재 패인을 오른쪽으로 이동
패인 크기 조절
# Ctrl+B를 누른 상태에서 방향키
Ctrl+B → Ctrl+방향키
스크롤 & 복사
tmux 안에서 위로 스크롤하려면 복사 모드에 진입해야 해요.
Ctrl+B → [— 복사 모드 진입 (스크롤 가능)Q또는Esc— 복사 모드 종료방향키/Page Up/Down— 스크롤 이동Space— 선택 시작Enter— 선택 복사Ctrl+B → ]— 붙여넣기
.tmux.conf 설정하기
~/.tmux.conf 파일을 만들어서 tmux를 커스터마이징할 수 있어요. 제가 쓰는 추천 설정을 공유합니다.
# 마우스 모드 활성화 (스크롤, 패인 클릭, 크기 조절)
set -g mouse on
# prefix 키를 Ctrl+A로 변경 (Ctrl+B보다 누르기 편해요)
unbind C-b
set -g prefix C-a
bind C-a send-prefix
# 윈도우/패인 번호를 1부터 시작
set -g base-index 1
setw -g pane-base-index 1
# 패인 분할 단축키를 직관적으로 변경
bind | split-window -h -c "#{pane_current_path}"
bind - split-window -v -c "#{pane_current_path}"
unbind '"'
unbind %
# 새 윈도우를 현재 경로에서 열기
bind c new-window -c "#{pane_current_path}"
# 패인 이동을 vim 스타일로
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R
# 상태바 스타일
set -g status-style 'bg=#1a1b26 fg=#a9b1d6'
set -g status-left '#[fg=#7aa2f7,bold] #S '
set -g status-right '#[fg=#565f89] %H:%M '
# 히스토리 늘리기
set -g history-limit 50000
# ESC 지연 제거 (vim 사용자 필수)
set -sg escape-time 0
# 256 컬러 지원
set -g default-terminal "screen-256color"
set -ga terminal-overrides ",xterm-256color:Tc"
설정 파일을 수정한 후 적용하려면:
# tmux 안에서 적용
Ctrl+B → : → source ~/.tmux.conf
# 또는 터미널에서
tmux source-file ~/.tmux.conf
실전 활용 패턴
프로젝트별 세션 관리
저는 프로젝트마다 tmux 세션을 따로 만들어서 씁니다. 이렇게 하면 컨텍스트 전환이 빠르거든요.
# 프로젝트별로 세션을 만들어두기
tmux new -s frontend
tmux new -s backend
tmux new -s devops
세션 간 전환도 간단해요.
Ctrl+B → S— 세션 목록에서 선택Ctrl+B → (— 이전 세션Ctrl+B → )— 다음 세션
개발 환경 한 번에 세팅
스크립트를 만들어두면 한 번에 개발 환경을 구성할 수 있습니다.
#!/bin/bash
# dev-setup.sh
SESSION="dev"
tmux new-session -d -s $SESSION -n editor
tmux send-keys -t $SESSION:editor "cd ~/project && vim ." Enter
tmux new-window -t $SESSION -n server
tmux send-keys -t $SESSION:server "cd ~/project && npm run dev" Enter
tmux new-window -t $SESSION -n logs
tmux send-keys -t $SESSION:logs "tail -f ~/project/logs/app.log" Enter
tmux select-window -t $SESSION:editor
tmux attach -t $SESSION
AI 코딩 도구와 함께 쓰기
Claude Code, Codex CLI 같은 AI 코딩 도구는 작업 시간이 길 수 있어요. tmux 세션 안에서 실행하면 중간에 연결이 끊겨도 안전합니다.
# tmux 세션에서 Claude Code 실행
tmux new -s claude
claude
# 연결이 끊겨도 다시 접속하면 그대로
tmux a -t claude
VibeShell에서 tmux 활용 팁
시작 스니펫 등록
VibeShell의 스니펫 기능에 아래 명령어를 등록해두세요. 서버에 접속하자마자 바로 tmux 세션으로 진입할 수 있습니다.
tmux attach -t dev || tmux new -s dev
커스텀 키보드 활용
VibeShell의 커스텀 키보드에는 Esc, Ctrl, Tab, 방향키가 있어서 tmux 단축키를 모바일에서도 편하게 쓸 수 있어요.
Ctrl+B → D— 세션 분리Ctrl+B → C— 새 윈도우Ctrl+B → N/P— 윈도우 이동Ctrl+B → [— 스크롤 모드
Vibe Coding 레이아웃
Vibe Coding 키보드 레이아웃에는 1, 2 키가 있는데, Claude Code 같은 AI 코딩 도구가 "1. Yes / 2. No" 옵션을 물어볼 때 빠르게 응답하기 위한 키예요. AI 도구와 대화하듯 코딩할 때 정말 편합니다.
자주 쓰는 명령어 요약
세션
tmux new -s 이름— 새 세션tmux a -t 이름— 세션 접속tmux ls— 세션 목록Ctrl+B → D— 세션 분리Ctrl+B → S— 세션 목록 전환
윈도우
Ctrl+B → C— 새 윈도우Ctrl+B → N / P— 윈도우 이동Ctrl+B → W— 윈도우 목록
패인
Ctrl+B → %— 세로 분할Ctrl+B → "— 가로 분할Ctrl+B → 방향키— 패인 이동Ctrl+B → Z— 패인 전체화면
기타
Ctrl+B → [— 스크롤 모드Ctrl+B → :— 명령어 입력
tmux를 익혀두면 서버 작업 효율이 크게 올라갑니다. 특히 모바일 SSH 환경에서는 필수라고 생각해요. VibeShell과 함께 사용하면 스마트폰 하나로 어디서든 안정적인 개발 환경을 유지할 수 있습니다.