하나의 터미널 화면에서 여러 작업을 동시에 처리하고 싶다면, tmux는 가장 먼저 떠올려야 할 도구이다. tmux는 terminal multiplexer의 약자로, 하나의 터미널 안에서 여러 세션을 생성하고 자유롭게 전환할 수 있게 해 주는 CLI 도구이다. SSH로 원격 서버에 접속해 작업하다가 연결이 끊겨도 세션이 유지되고, 화면을 수직/수평으로 분할해 로그 모니터링과 코드 편집을 한 화면에서 처리할 수 있다. 이번 포스팅에서는 tmux 사용법에 대해서 설치부터 실무 워크플로우까지 단계별로 정리하고자 한다.
왜 굳이 tmux를 써야 하는가

터미널 탭을 여러 개 열어두면 되지 않나, 라는 의문이 들 수 있다. tmux가 단순한 탭과 다른 가장 큰 차이는 세션 영속성이다. tmux 세션은 터미널 창을 닫아도, SSH 연결이 끊겨도 서버에서 계속 실행된다. tmux attach 한 번이면 작업하던 상태 그대로 돌아올 수 있다. 서버에서 빌드를 걸어두고 퇴근한 뒤, 다음 날 아침 결과를 확인하는 식이다.
화면 분할도 빼놓을 수 없다. 하나의 윈도우 안에서 화면을 수직, 수평으로 나누어 여러 페인을 동시에 볼 수 있다. 왼쪽에서 vim으로 코드를 편집하면서 오른쪽에서 tail -f로 로그를 실시간으로 확인하는 레이아웃이 단축키 하나로 만들어진다.
그리고 같은 tmux 세션에 여러 사람이 동시에 접속할 수도 있다. 장애 대응 때 동료와 같은 화면을 보면서 작업하는 상황을 생각하면 된다.
GitHub에서 44,500개 이상의 스타를 받은 tmux는 2026년 현재 3.6a 버전(2025년 12월 릴리스)까지 꾸준히 업데이트되고 있다.
설치는 한 줄이면 끝난다
대부분의 운영체제에서 패키지 매니저 한 줄이면 설치가 끝난다.
macOS
brew install tmuxShellScriptHomebrew가 설치되어 있다면 이 한 줄이면 충분하다. Homebrew가 없다면 Homebrew 공식 사이트에서 먼저 설치한다.
Ubuntu / Debian
sudo apt install tmuxShellScript대부분의 Ubuntu/Debian 배포판에서 기본 패키지 저장소에 tmux가 포함되어 있으므로 apt 명령어로 바로 설치된다.
Fedora / RHEL / CentOS
# Fedora
sudo dnf install tmux
# RHEL / CentOS
sudo yum install tmuxShellScriptFedora는 dnf, RHEL/CentOS는 yum 패키지 매니저를 사용한다. 두 경우 모두 기본 저장소에서 설치 가능하다.
소스에서 직접 빌드
git clone https://github.com/tmux/tmux.git
cd tmux
sh autogen.sh
./configure
make && sudo make installShellScript최신 버전을 직접 빌드하려면 libevent 2.x, ncurses 라이브러리, C 컴파일러(gcc 또는 clang), make, yacc(또는 bison)가 필요하다. 패키지 매니저로 설치할 수 없는 환경이거나 최신 기능이 필요할 때 이 방법을 사용한다.
설치가 끝나면 tmux -V 명령으로 버전을 확인한다.
tmux -V
# tmux 3.6aShellScript현재 시점 기준 최신 안정 버전은 3.6a이다. 이 명령으로 설치가 정상적으로 완료되었는지 확인할 수 있다.
세션, 윈도우, 페인 – 이 구조만 알면 절반은 끝

tmux 사용법을 이해하려면 먼저 계층 구조를 파악해야 한다.
세션 (Session)
└── 윈도우 (Window)
└── 페인 (Pane)Plaintext세션은 하나의 작업 컨텍스트(예: “프로젝트A”)이고, 윈도우는 그 안의 탭(예: “편집기”, “서버”, “로그”)이며, 페인은 윈도우 안에서 분할된 개별 터미널 영역이다.
세션은 최상위 단위이다. 프로젝트나 작업 목적별로 하나씩 만들고, 분리(detach)해도 백그라운드에서 계속 실행된다. 윈도우는 세션 안의 탭이다. 하나의 세션에 여러 윈도우를 만들어 작업 유형별로 전환한다. 페인은 윈도우 안에서 분할된 영역이다. 하나의 윈도우를 수직/수평으로 나누어 여러 터미널을 동시에 표시한다.
첫 번째 세션 시작하기
tmux를 처음 실행하면 기본 세션이 생성된다. 하지만 실무에서는 이름을 붙여 세션을 관리하는 것이 좋다.
# 이름을 붙여 새 세션 생성
tmux new -s my-project
# 세션 목록 확인
tmux ls
# 실행 중인 세션에 다시 접속
tmux attach -t my-project
# 세션 이름 변경
tmux rename-session -t my-project new-nameShellScripttmux new -s my-project 명령은 “my-project”라는 이름의 세션을 새로 생성하고 즉시 접속한다. 이름을 붙이면 여러 세션을 운영할 때 tmux ls로 한눈에 구분할 수 있다. tmux attach -t 명령은 이미 실행 중인 세션에 다시 접속할 때 사용한다.
tmux 안에서는 모든 단축키가 prefix 키 조합으로 동작한다. 기본 prefix는 Ctrl + b이다. 즉, tmux 명령을 실행하려면 먼저 Ctrl + b를 누른 뒤 해당 키를 입력한다.
# 세션에서 분리 (세션은 백그라운드에서 계속 실행)
Ctrl+b d
# 세션 목록 보기 (tmux 안에서)
Ctrl+b s
# 세션 종료 (prefix + : 로 명령 모드 진입 후 입력)
Ctrl+b : → kill-session → EnterShellScriptCtrl+b d가 tmux 사용법에서 가장 자주 쓰이는 단축키 중 하나이다. 세션에서 분리(detach)하면 세션 안의 모든 프로세스가 백그라운드에서 계속 실행되므로, SSH 연결이 끊겨도 작업이 중단되지 않는다.
윈도우 관리 – 탭처럼 쓰는 작업 공간
세션 안에서 윈도우를 생성하고 전환하는 tmux 사용법을 정리한다.
# 새 윈도우 생성
Ctrl+b c
# 윈도우 이름 변경
Ctrl+b ,
# 다음 윈도우 / 이전 윈도우
Ctrl+b n # 다음(next)
Ctrl+b p # 이전(previous)
# 번호로 윈도우 이동
Ctrl+b 0 # 0번 윈도우로 이동
Ctrl+b 1 # 1번 윈도우로 이동
# 직전 윈도우로 전환
Ctrl+b lShellScriptCtrl+b c로 새 윈도우를 만들면 하단 상태 바에 윈도우 목록이 표시된다. 현재 활성 윈도우에는 * 표시가 붙는다. Ctrl+b ,로 윈도우 이름을 “editor”, “server”, “logs” 등으로 지정해 두면 여러 윈도우를 직관적으로 관리할 수 있다.
페인 분할 – 한 화면에 여러 터미널 배치
페인 분할은 tmux를 쓰는 가장 큰 이유 중 하나이다. 하나의 윈도우를 여러 영역으로 나누어 동시에 작업한다.
# 수직 분할 (좌우로 나눔) — tmux에서 -h 플래그에 해당
Ctrl+b %
# 수평 분할 (상하로 나눔) — tmux에서 -v 플래그에 해당
Ctrl+b "
# 페인 간 이동
Ctrl+b 방향키(←↑↓→)
# 현재 페인 확대/축소 (토글)
Ctrl+b z
# 페인 닫기
Ctrl+b x
# 페인 크기 조절 (1칸 단위)
Ctrl+b Ctrl+방향키
# 페인 크기 조절 (5칸 단위)
Ctrl+b Alt+방향키ShellScriptCtrl+b %는 현재 페인을 세로로 분할하여 좌우 두 영역을 만든다. Ctrl+b "는 가로로 분할하여 상하 두 영역을 만든다. 참고로 tmux의 -h(horizontal) 플래그는 “수평 방향으로 나눈다”는 뜻이라 결과가 좌우 배치가 되고, -v(vertical)는 상하 배치가 된다. 직관과 반대로 느껴질 수 있으니 이 점을 기억해 두면 .tmux.conf 설정 시 혼동을 피할 수 있다. 특히 Ctrl+b z는 특정 페인을 전체 화면으로 확대했다가 다시 원래 레이아웃으로 복원하는 토글 기능으로, 좁은 페인에서 긴 출력을 확인할 때 유용하다.

.tmux.conf로 나만의 환경 만들기
tmux의 기본 설정을 그대로 써도 되지만, .tmux.conf 파일을 만들어 두면 prefix 키 변경, 마우스 지원, 페인 분할 단축키 등을 자유롭게 바꿀 수 있다. 이 파일은 홈 디렉터리(~/.tmux.conf)에 위치한다.
# ~/.tmux.conf
# prefix 키를 Ctrl+a로 변경 (GNU Screen 스타일)
unbind C-b
set -g prefix C-a
bind C-a send-prefix
# 마우스 지원 활성화 (페인 선택, 스크롤, 크기 조절)
set -g mouse on
# 윈도우/페인 번호를 1부터 시작 (0번 키가 키보드 오른쪽 끝이라 불편)
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}"
# 상태 바를 상단으로 이동
set -g status-position top
# vi 스타일 복사 모드
setw -g mode-keys vi
# 페인 이동을 vim 스타일로 (hjkl)
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R
# 256 컬러 지원
set -g default-terminal "tmux-256color"
set -ag terminal-overrides ",xterm-256color:RGB"
# 설정 파일 즉시 리로드 단축키
bind r source-file ~/.tmux.conf \; display-message "Config reloaded"ShellScriptset -g prefix C-a는 기본 prefix인 Ctrl+b를 Ctrl+a로 변경한다. Ctrl+b는 vim에서 페이지 업과 충돌하기 때문에 많은 개발자가 Ctrl+a를 선호한다. bind | split-window -h -c "#{pane_current_path}"는 | 키로 좌우 분할을 하면서 현재 디렉터리를 유지하도록 설정한다. 기본 %와 "보다 직관적이다. bind r source-file ~/.tmux.conf는 설정을 변경한 뒤 prefix + r로 즉시 반영할 수 있게 해 준다.
설정 파일을 수정한 뒤에는 다음 명령으로 적용한다.
tmux source-file ~/.tmux.confShellScript이 명령은 tmux 서버를 재시작하지 않고 설정 파일만 다시 읽어들인다. 위 .tmux.conf에서 bind r 설정을 해 두었다면, prefix + r로도 동일한 효과를 낸다.
TPM으로 플러그인 생태계 활용하기

tmux의 기능을 확장하려면 TPM(Tmux Plugin Manager)을 사용한다. TPM은 플러그인 설치, 업데이트, 삭제를 자동으로 처리해 주는 관리 도구이다.
TPM 설치
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpmShellScriptTPM 저장소를 ~/.tmux/plugins/tpm 경로에 클론하면 설치가 완료된다. 이 경로는 TPM이 플러그인을 관리하는 기본 디렉터리이다.
.tmux.conf에 플러그인 선언
# ~/.tmux.conf 하단에 추가
# 플러그인 목록
set -g @plugin 'tmux-plugins/tpm' # TPM 자체 (필수)
set -g @plugin 'tmux-plugins/tmux-sensible' # 기본 설정 모음
set -g @plugin 'tmux-plugins/tmux-resurrect' # 세션 저장/복원
set -g @plugin 'tmux-plugins/tmux-continuum' # 자동 세션 저장
# TPM 초기화 (반드시 .tmux.conf 맨 마지막 줄에 위치)
run '~/.tmux/plugins/tpm/tpm'ShellScriptset -g @plugin 구문으로 사용할 플러그인을 선언한다. tmux-sensible은 대부분의 사용자가 동의하는 기본 설정(히스토리 크기 증가, 키 입력 대기 시간 단축 등)을 자동으로 적용한다. run '~/.tmux/plugins/tpm/tpm' 라인은 반드시 .tmux.conf의 가장 마지막에 위치해야 한다.
TPM 단축키
# 플러그인 설치 (.tmux.conf에 선언한 플러그인 다운로드)
prefix + I
# 플러그인 업데이트
prefix + U
# 목록에서 제거한 플러그인 삭제
prefix + Alt + uShellScriptprefix + I(대문자)를 누르면 .tmux.conf에 선언된 플러그인 중 아직 설치되지 않은 것을 자동으로 다운로드하고 활성화한다. 플러그인을 삭제할 때는 .tmux.conf에서 해당 줄을 지운 뒤 prefix + Alt + u를 누르면 된다.
같이 쓰면 좋은 플러그인
tmux-resurrect는 시스템 재부팅 후에도 세션 상태를 복원할 수 있는 플러그인이다. prefix + Ctrl+s로 현재 상태를 저장하고, prefix + Ctrl+r로 복원한다. 세션, 윈도우, 페인 레이아웃뿐 아니라 각 페인의 작업 디렉터리, 실행 중인 프로그램(vim, htop, tail 등)까지 저장된다.
tmux-continuum은 tmux-resurrect와 함께 사용하면 15분 간격으로 세션 상태를 자동 저장한다. tmux 서버가 시작될 때 마지막 저장 상태를 자동 복원하는 옵션도 있어서, 재부팅 후 tmux attach만 하면 이전 작업 환경이 그대로 돌아온다.
tmux-sensible은 히스토리 크기를 50,000줄로 늘리고, escape-time을 최적화하는 등 대부분의 사용자가 동의할 만한 기본값을 잡아 준다. 처음 tmux를 설치하고 뭘 설정해야 할지 모르겠을 때 이것부터 넣으면 된다.
실무에서 바로 쓰는 tmux 워크플로우
SSH 원격 작업에서 세션 유지
# 원격 서버 접속 후 tmux 세션 생성
ssh user@server.example.com
tmux new -s deploy
# 배포 스크립트 실행 후 분리
./deploy.sh
Ctrl+b d
# 퇴근 후 다시 접속해서 결과 확인
ssh user@server.example.com
tmux attach -t deployShellScript
이것이 tmux 사용법에서 가장 흔한 패턴이다. 배포나 빌드처럼 오래 걸리는 작업을 세션에 걸어두고 분리하면, SSH 연결이 끊겨도 프로세스는 계속 돌아간다. 다음 날 tmux attach -t deploy로 접속하면 결과가 그대로 남아 있다.
개발 환경 한 번에 구성하기
tmux 명령어를 셸 스크립트로 묶으면 프로젝트별 개발 환경을 한 번에 구성할 수 있다.
#!/bin/bash
# dev-env.sh - 개발 환경 자동 구성 스크립트
SESSION="my-app"
# 기존 세션이 있으면 접속, 없으면 새로 생성
if ! tmux has-session -t "$SESSION" 2>/dev/null; then
# 첫 번째 윈도우: 에디터
tmux new-session -d -s "$SESSION" -n editor
tmux send-keys -t "$SESSION:editor" "cd ~/projects/my-app && vim ." C-m
# 두 번째 윈도우: 서버
tmux new-window -t "$SESSION" -n server
tmux send-keys -t "$SESSION:server" "cd ~/projects/my-app && npm run dev" C-m
# 세 번째 윈도우: 로그 모니터링 (페인 분할)
tmux new-window -t "$SESSION" -n logs
tmux send-keys -t "$SESSION:logs" "tail -f ~/projects/my-app/logs/app.log" C-m
tmux split-window -h -t "$SESSION:logs"
# split-window 후 포커스가 새 페인으로 이동하므로 자동으로 두 번째 페인에 전달
tmux send-keys "tail -f ~/projects/my-app/logs/error.log" C-m
fi
tmux attach -t "$SESSION"ShellScript
이 스크립트는 “my-app” 세션 안에 editor, server, logs 세 개의 윈도우를 자동으로 생성한다. tmux send-keys 명령은 해당 윈도우에 키 입력을 전송하고, C-m은 Enter 키를 의미한다. logs 윈도우에서는 split-window -h로 좌우 분할한 뒤 각 페인에 서로 다른 로그 파일을 띄운다. 프로젝트마다 이런 스크립트를 하나씩 만들어 두면 ./dev-env.sh 한 번으로 전체 환경이 세팅된다.
자주 쓰는 tmux 단축키 정리
| 동작 | 단축키 |
|---|---|
| 세션 분리 | prefix + d |
| 새 윈도우 | prefix + c |
| 윈도우 이름 변경 | prefix + , |
| 다음/이전 윈도우 | prefix + n / prefix + p |
| 수직 분할 | prefix + % |
| 수평 분할 | prefix + " |
| 페인 이동 | prefix + 방향키 |
| 페인 확대/축소 | prefix + z |
| 페인 닫기 | prefix + x |
| 복사 모드 진입 | prefix + [ |
| 붙여넣기 | prefix + ] |
| 모든 단축키 보기 | prefix + ? |
tmux 3.6에서 달라진 것들
2025년 12월에 릴리스된 tmux 3.6/3.6a에서 가장 반가운 변화는 스크롤바 지원이다. pane-scrollbars 옵션으로 페인 내부에 스크롤바를 표시할 수 있게 되었다. 마우스로 스크롤하는 습관이 있다면 체감이 클 것이다.
Mode 2031 테마 기능도 추가되었다. 터미널의 다크/라이트 테마를 자동 감지해서 tmux가 시스템 테마에 맞춰 색상을 조정할 수 있는 기반이 마련되었다.
유니코드 처리도 나아졌다. 국기 이모지 같은 지역 표시기와 이모지 수정자를 올바르게 처리하고, 한글 필러 문자를 렌더링 시 무시하는 등 동아시아 문자 관련 개선이 이루어졌다.
FAQ
tmux와 screen의 차이점은 무엇인가?
tmux는 GNU screen의 현대적 대안으로, 수직/수평 페인 분할, 스크립트 제어, 플러그인 생태계(TPM) 등을 지원한다. screen은 대부분의 리눅스에 기본 설치되어 있어 접근성이 높지만, 페인 분할이 제한적이고 설정 문법이 오래되었다. 새로 시작한다면 tmux를 권장한다.
tmux 세션이 종료되면 작업 내용이 사라지나?
아니다. tmux detach(Ctrl+b → d)로 세션에서 빠져나오면 세션은 백그라운드에서 계속 유지된다. tmux attach로 다시 접속하면 실행 중이던 프로세스와 출력이 그대로 남아 있다. 다만 서버가 재부팅되면 세션이 사라지므로, tmux-resurrect 플러그인으로 세션 상태를 저장해두는 것이 좋다.
tmux prefix 키를 Ctrl+b에서 다른 키로 변경할 수 있나?
가능하다. ~/.tmux.conf에 unbind C-b와 set -g prefix C-a를 추가하면 prefix가 Ctrl+a로 변경된다. Ctrl+a는 GNU screen과 동일한 키로, screen에서 넘어온 사용자에게 익숙하다. 다만 Ctrl+a는 shell에서 줄 처음으로 이동하는 단축키와 충돌하므로, bind C-a send-prefix를 함께 설정해 두는 것이 좋다.
tmux에서 마우스 스크롤을 사용할 수 있나?
~/.tmux.conf에 set -g mouse on을 추가하면 마우스로 페인 크기 조절, 윈도우 전환, 스크롤이 모두 가능해진다. tmux 3.0 이상에서는 이 한 줄이면 충분하다. 마우스 모드를 켜도 키보드 단축키는 그대로 사용할 수 있으므로, 초보자라면 마우스 모드를 켜두고 점차 키보드 조작에 익숙해지는 방식을 추천한다.
SSH 접속이 끊겨도 tmux 세션은 유지되나?
유지된다. 이것이 tmux의 핵심 장점이다. SSH 연결이 끊기거나 네트워크가 불안정해도 tmux 세션은 서버에서 독립적으로 실행되고 있다. 재접속 후 tmux attach 명령으로 이전 작업 상태를 그대로 이어갈 수 있다. 장시간 빌드, 배포 작업 시 필수적인 기능이다.
더 알아보기
- tmux 공식 GitHub Wiki – Getting Started: tmux 공식 문서로, 모든 명령어와 옵션이 정리되어 있다.
- TPM(Tmux Plugin Manager): 플러그인 관리자 저장소. 설치법과 사용 가능한 플러그인 목록을 확인할 수 있다.
- tmux-plugins/list: 커뮤니티에서 관리하는 tmux 플러그인 전체 목록이다.

지금까지 tmux 사용법에 대해서 설치부터 세션 관리, 설정, 플러그인, 실무 워크플로우까지 정리해 보았다. tmux를 처음 접하면 prefix 키 조합이 낯설게 느껴질 수 있지만, 하루 이틀만 의식적으로 사용하면 금방 손에 익는다. 개인적으로 tmux 없이 서버 작업을 하던 시절에는 SSH가 끊길 때마다 작업 컨텍스트를 잃어버려서 같은 명령어를 다시 치는 일이 잦았는데, tmux를 쓰기 시작하면서 그런 스트레스가 완전히 사라졌다. 아직 tmux를 안 써 봤다면 지금 바로 brew install tmux 한 줄부터 시작해 보기를 권한다.

