하나의 터미널 화면에서 여러 작업을 동시에 처리하고 싶다면, 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에서 화면을 위로 스크롤해 지나간 로그를 보거나 텍스트를 복사하려면 복사 모드(copy-mode)로 들어가야 한다. prefix + [를 누르면 복사 모드가 시작되고, 이 안에서는 키보드로 화면을 스크롤하고 원하는 범위를 선택해 복사할 수 있다. 터미널 안의 또 다른 편집기처럼 동작하는 셈인데, tmux를 쓰면서 가장 자주 헷갈리는 부분이기도 하다.
복사 모드에 들어가면 커서가 나타나고, 마우스 없이 키보드만으로 화면을 이동한다. 방향키나 vi 스타일 키로 커서를 옮기고, 페이지 단위로 스크롤하며, /로 텍스트를 검색한다.
prefix + [ # 복사 모드 진입
# 복사 모드 안에서 (기본 키)
방향키 / hjkl # 커서 이동
Ctrl + u / Ctrl + d # 반 페이지 위/아래 스크롤
/ 검색어 Enter # 아래로 검색, ? 는 위로 검색
n / N # 다음/이전 검색 결과로 이동
q # 복사 모드 종료ShellScript복사 모드는 지나간 명령 출력을 다시 볼 때 특히 유용하다. 긴 빌드 로그나 에러 메시지가 화면 위로 사라졌을 때, prefix + [로 들어가 Ctrl + u로 거슬러 올라가거나 /error로 곧장 검색해 찾는다. 마우스 스크롤에 익숙하다면 뒤에서 설명할 mouse on 설정으로 휠 스크롤 시 자동으로 복사 모드에 진입하게 만들 수도 있다.

vi 키로 선택하고 복사하기
복사 모드에서 텍스트를 실제로 복사하려면 선택을 시작하고 범위를 지정한 뒤 복사(yank)한다. 기본 설정에서는 Space로 선택을 시작하고 Enter로 복사하지만, .tmux.conf에 vi 모드를 켜면 vim처럼 v로 선택하고 y로 복사할 수 있어 훨씬 직관적이다. vim에 익숙한 사람이라면 이 설정을 강력히 권한다.
# ~/.tmux.conf — vi 스타일 복사 모드
set -g mode-keys vi
# v 로 선택 시작, y 로 복사
bind -T copy-mode-vi v send-keys -X begin-selection
bind -T copy-mode-vi y send-keys -X copy-selection-and-cancelShellScriptset -g mode-keys vi는 복사 모드의 키 체계를 vi 스타일로 바꾼다. 그 아래 두 줄은 copy-mode-vi 키 테이블에서 v를 선택 시작(begin-selection)에, y를 복사 후 종료(copy-selection-and-cancel)에 연결한 것이다. 이렇게 두면 prefix + [로 들어가 커서를 옮긴 뒤 v를 눌러 선택을 시작하고, 방향키로 범위를 늘린 다음 y를 누르면 선택 영역이 tmux 버퍼에 복사되며 복사 모드가 닫힌다. 복사한 내용은 prefix + ]로 붙여넣는다.
여기서 한 가지 짚을 점이 있다. 위 방식으로 복사한 텍스트는 tmux 내부 버퍼에만 저장되지, 시스템 클립보드로는 넘어가지 않는다. 즉 tmux 밖의 브라우저나 편집기에 붙여넣으려면 추가 설정이 필요하다. 이게 다음 절의 주제다.
시스템 클립보드와 연결하기
tmux에서 복사한 텍스트를 tmux 밖(브라우저·에디터)에 붙여넣으려면 시스템 클립보드와 연동해야 한다. 방법은 두 가지다. 복사 시점에 클립보드 명령으로 텍스트를 흘려보내는 copy-pipe 방식과, 터미널의 OSC 52 기능을 쓰는 set-clipboard 방식이다. 운영체제에 맞는 클립보드 명령만 지정하면 되므로 어렵지 않다.
가장 확실한 방법은 복사할 때 시스템 클립보드 명령으로 파이프하는 것이다. macOS는 pbcopy, Linux는 X11이면 xclip, Wayland면 wl-copy를 쓴다.
# ~/.tmux.conf — 복사 시 시스템 클립보드로 전송
# macOS
bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "pbcopy"
# Linux (X11) — xclip 설치 필요: sudo apt install xclip
# bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "xclip -selection clipboard"
# Linux (Wayland) — wl-clipboard 설치 필요
# bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "wl-copy"ShellScriptcopy-pipe-and-cancel "명령"이 핵심이다. 앞 절의 copy-selection-and-cancel은 tmux 버퍼에만 복사했지만, copy-pipe-and-cancel은 선택한 텍스트를 지정한 외부 명령의 표준 입력으로 흘려보낸다. 그래서 y를 누르는 순간 선택 영역이 pbcopy(또는 xclip/wl-copy)를 통해 시스템 클립보드에 들어가고, 이제 tmux 밖 어디에나 Cmd/Ctrl + V로 붙여넣을 수 있다. 자신의 리눅스 세션 종류는 echo $XDG_SESSION_TYPE으로 확인해 x11이면 xclip, wayland면 wl-copy를 고른다.
원격 서버처럼 클립보드 명령을 깔기 어려운 환경에서는 OSC 52를 쓴다. 터미널이 이 기능을 지원하면, tmux가 복사한 텍스트를 터미널을 통해 로컬 클립보드로 전달한다.
# ~/.tmux.conf — OSC 52로 클립보드 전달 (SSH 원격에서 유용)
set -g set-clipboard onShellScriptset -g set-clipboard on은 tmux가 복사한 내용을 OSC 52 이스케이프 시퀀스로 감싸 터미널에 넘기도록 한다. 터미널 에뮬레이터(iTerm2, WezTerm, Alacritty, Ghostty 등 최신 터미널 대부분)가 OSC 52를 지원하면, SSH로 접속한 원격 tmux에서 복사한 텍스트도 로컬 컴퓨터의 클립보드에 담긴다. xclip 같은 도구를 서버에 설치할 수 없을 때 특히 편리하다. 두 방식은 함께 써도 무방하니, 로컬은 copy-pipe, 원격은 set-clipboard on으로 두면 대부분의 상황을 덮는다.
.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 명령어·단축키 치트시트를 옆에 두면 편하다. 설정과 학습 곡선이 부담스럽다면 기본값이 더 친절한 Zellij가 대안이고, AI 코딩 에이전트를 여러 개 병렬로 굴리는 용도라면 tmux 위에서 그걸 전담하는 cmux를 함께 보면 좋다.
tmux 3.6에서 달라진 것들

2025년 12월에 릴리스된 tmux 3.6/3.6a에서 가장 반가운 변화는 스크롤바 지원이다. pane-scrollbars 옵션으로 페인 내부에 스크롤바를 표시할 수 있게 되었다. 마우스로 스크롤하는 습관이 있다면 체감이 클 것이다.
Mode 2031 테마 기능도 추가되었다. 터미널의 다크/라이트 테마를 자동 감지해서 tmux가 시스템 테마에 맞춰 색상을 조정할 수 있는 기반이 마련되었다.
유니코드 처리도 나아졌다. 국기 이모지 같은 지역 표시기와 이모지 수정자를 올바르게 처리하고, 한글 필러 문자를 렌더링 시 무시하는 등 동아시아 문자 관련 개선이 이루어졌다.
이 글이 다룬 3.6 이후, 2026년 6월에 나온 tmux 3.7에서는 타일 레이아웃 위에 겹쳐 뜨는 플로팅 페인이 처음 추가됐다. 잠깐 로그나 htop을 띄워 두는 보조 창으로 유용한데, 띄우는 법과 3.7의 한계는 tmux 3.7 플로팅 페인 완전 정복에서 자세히 다룬다.
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 한 줄부터 시작해 보기를 권한다.
