How to 목록

// blog post

tmux 완벽 가이드 — 세션 관리부터 실전 활용까지

|
tmuxterminaltutorialssh

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과 함께 사용하면 스마트폰 하나로 어디서든 안정적인 개발 환경을 유지할 수 있습니다.