
핵심 요약
tmux는 하나의 터미널에서 여러 세션·윈도우·패널을 동시에 관리할 수 있는 터미널 멀티플렉서입니다. SSH 세션이 끊겨도 작업을 유지하고, 화면 분할로 여러 작업을 동시에 진행할 수 있어 개발자·서버 관리자에게 필수 도구입니다. 이 가이드에서는 설치부터 핵심 단축키, .tmux.conf 커스터마이징, 실무 활용 팁까지 모두 정리했습니다.
2026 오픈소스 AI·SW 지원사업 신청 방법 총정리 – 과기부·NIPA 지원금 받는 법
2026년 과학기술정보통신부·정보통신산업진흥원(NIPA)의 오픈소스 AI·SW 개발·활용 지원사업 신청 자격, 지원 내용, 신청 방법을 한눈에 정리합니다.
benefit.zzamlunch.com
목차
- tmux란 무엇인가?
- tmux 설치 방법
- 핵심 개념: 세션 / 윈도우 / 패널
- 필수 단축키 완벽 정리
- .tmux.conf 커스터마이징
- tmux vs screen 비교
- 실무 활용 팁
- 자주 묻는 질문 (FAQ)
tmux란 무엇인가?
tmux(Terminal Multiplexer)는 하나의 터미널 창에서 여러 개의 터미널 세션을 동시에 실행하고 관리할 수 있는 오픈소스 프로그램입니다. 2007년 처음 개발된 이후, 현재 개발자와 시스템 관리자 사이에서 없어서는 안 될 필수 도구로 자리 잡았습니다.
tmux의 가장 큰 장점은 세션 유지입니다. SSH로 원격 서버에 접속해 작업하다가 네트워크가 끊겨도, tmux 세션은 서버에서 계속 실행됩니다. 다시 접속하면 작업을 이어서 할 수 있죠. 이 기능 하나만으로도 원격 작업 환경에서 tmux는 거의 필수입니다.
주요 특징을 정리하면 다음과 같습니다.
- 하나의 터미널에서 여러 세션, 윈도우, 패널 관리
- SSH 연결 종료 후에도 세션 유지 (detach/attach)
- 화면 수평·수직 분할로 멀티태스킹
- 강력한 스크립트·자동화 지원
- GNU screen보다 직관적이고 현대적인 설계
tmux 설치 방법
tmux는 주요 리눅스 배포판의 패키지 관리자를 통해 간단하게 설치할 수 있습니다.
Ubuntu / Debian 계열
sudo apt update
sudo apt install tmux
CentOS / RHEL / Fedora 계열
# CentOS/RHEL
sudo yum install tmux
# Fedora
sudo dnf install tmux
macOS (Homebrew)
brew install tmux
설치 후 버전을 확인합니다.
tmux -V
tmux를 시작하려면 터미널에서 tmux를 입력하면 됩니다. 새로운 세션이 시작되며 화면 아래에 상태바가 표시됩니다.
핵심 개념: 세션 / 윈도우 / 패널
tmux를 처음 접하면 세션, 윈도우, 패널(pane)이라는 3단계 계층 구조가 헷갈릴 수 있습니다. 한 번만 이해하면 매우 직관적입니다.
세션 (Session)
tmux의 최상위 단위입니다. 하나의 작업 맥락(context)이라고 생각하면 됩니다. 예를 들어 "웹서버 관리용 세션", "개발 프로젝트용 세션"처럼 목적별로 구분할 수 있습니다. 세션은 detach(분리)해도 백그라운드에서 계속 실행됩니다.
윈도우 (Window)
세션 내의 탭(tab)과 같습니다. 브라우저의 탭처럼 여러 윈도우를 열어두고 전환할 수 있습니다. 각 윈도우는 독립적인 터미널 환경이며, 하단 상태바에 번호와 이름으로 표시됩니다.
패널 (Pane)
윈도우를 분할한 각각의 터미널 영역입니다. 하나의 윈도우를 수평 또는 수직으로 나눠 여러 명령을 동시에 볼 수 있습니다. 예를 들어 왼쪽에서 로그를 보면서 오른쪽에서 코드를 편집할 수 있습니다.
계층 구조 요약: tmux 데몬 → 세션(Session) → 윈도우(Window) → 패널(Pane)
필수 단축키 완벽 정리
tmux의 모든 단축키는 Prefix 키로 시작합니다. 기본 Prefix 키는 Ctrl + b입니다. Prefix를 먼저 누른 후 손을 떼고 다음 키를 누릅니다.
예: 새 윈도우 열기 → Ctrl+b 누른 후 손 떼고 → c 누르기
세션 관리 단축키
| 단축키 | 설명 |
|---|---|
tmux new -s 이름 |
이름을 지정해 새 세션 시작 |
tmux ls |
세션 목록 보기 |
tmux attach -t 이름 |
세션에 다시 접속 |
Prefix + d |
현재 세션에서 분리 (detach) |
Prefix + $ |
세션 이름 변경 |
Prefix + s |
세션 목록 및 전환 |
tmux kill-session -t 이름 |
세션 종료 |
윈도우 관리 단축키
| 단축키 | 설명 |
|---|---|
Prefix + c |
새 윈도우 생성 |
Prefix + n |
다음 윈도우로 이동 |
Prefix + p |
이전 윈도우로 이동 |
Prefix + 숫자 |
번호로 윈도우 전환 (0~9) |
Prefix + , |
윈도우 이름 변경 |
Prefix + w |
윈도우 목록 보기 (선택 전환) |
Prefix + & |
현재 윈도우 닫기 (확인 필요) |
패널(Pane) 관리 단축키
| 단축키 | 설명 |
|---|---|
Prefix + % |
수직 분할 (좌우) |
Prefix + " |
수평 분할 (위아래) |
Prefix + 방향키 |
패널 간 이동 |
Prefix + o |
다음 패널로 순환 이동 |
Prefix + z |
현재 패널 최대화/복원 (zoom) |
Prefix + x |
현재 패널 닫기 |
Prefix + Ctrl+방향키 |
패널 크기 조절 |
Prefix + q |
패널 번호 표시 |
Prefix + { / Prefix + } |
패널 위치 앞/뒤로 이동 |
기타 유용한 단축키
| 단축키 | 설명 |
|---|---|
Prefix + [ |
스크롤 모드 진입 (방향키로 스크롤, q로 종료) |
Prefix + : |
명령어 입력 모드 |
Prefix + ? |
단축키 목록 전체 보기 |
Prefix + t |
현재 시각 표시 |
Prefix + r |
화면 새로고침 (설정 적용 후 주로 사용) |
.tmux.conf 커스터마이징
tmux는 홈 디렉터리의 ~/.tmux.conf 파일로 설정을 커스터마이징할 수 있습니다. 아래는 실무에서 많이 사용하는 설정 예시입니다.
# Prefix 키를 Ctrl+a로 변경 (GNU screen 스타일)
unbind C-b
set -g prefix C-a
bind C-a send-prefix
# 마우스 지원 활성화 (tmux 2.1 이상)
set -g mouse on
# 패널 분할 단축키를 직관적으로 변경
bind | split-window -h # 수직 분할
bind - split-window -v # 수평 분할
unbind '"'
unbind %
# 패널 이동을 vi 스타일로
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 "screen-256color"
# 상태바 색상 및 날짜/시간 정보 표시
set -g status-bg colour235
set -g status-fg colour136
set -g status-right "#[fg=colour136]%Y-%m-%d %H:%M"
# 히스토리 라인 수 증가
set -g history-limit 10000
# 설정 파일 리로드 단축키
bind r source-file ~/.tmux.conf \; display "설정을 다시 불러왔습니다!"
설정 파일을 수정한 후에는 tmux 세션 안에서 아래 명령을 실행해 바로 적용합니다.
tmux source-file ~/.tmux.conf
# 또는 위에서 설정한 단축키 사용: Prefix + r
TPM(Tmux Plugin Manager)를 사용하면 플러그인으로 더 강력한 기능을 추가할 수 있습니다. 대표적인 플러그인으로는 tmux-resurrect(세션 저장/복원), tmux-continuum(자동 저장), tmux-powerline(상태바 강화) 등이 있습니다. 시스템이 재부팅되어도 이전 작업 환경을 그대로 복원할 수 있어 개발자에게 큰 도움이 됩니다.
tmux vs GNU screen 비교
tmux 이전에는 GNU screen이 터미널 멀티플렉서의 표준이었습니다. 두 도구를 비교해보겠습니다.
| 기능 | tmux | GNU screen |
|---|---|---|
| 화면 분할 | 수직·수평 모두 지원, 직관적 | 수평만 지원 (구 버전) |
| 설정 파일 | ~/.tmux.conf (직관적) | ~/.screenrc (복잡) |
| 클라이언트-서버 구조 | 명확한 분리 | 단일 프로세스 |
| 스크립트/자동화 | 매우 강력 (send-keys 등) | 제한적 |
| 상태바 커스터마이징 | 고도로 커스터마이즈 가능 | 기본적 |
| 플러그인 생태계 | TPM 등 활발 | 거의 없음 |
| 개발 활성도 | 활발히 유지보수 중 | 느린 업데이트 |
| 다중 클라이언트 지원 | 동일 세션 동시 접속 가능 | 제한적 |
결론적으로, 새로 시작한다면 tmux를 선택하는 것이 압도적으로 유리합니다. GNU screen은 일부 레거시 서버 환경에서 이미 설치되어 있을 때 사용하는 정도로 충분합니다. 현재 대부분의 리눅스 배포판에는 tmux가 기본 또는 권장 도구로 포함되어 있습니다.
실무 활용 팁
SSH 원격 작업 안정화
원격 서버 작업 시 반드시 tmux를 사용하세요. 네트워크 불안정으로 SSH 연결이 끊겨도 tmux 세션은 서버에서 계속 실행됩니다.
# 서버 접속 후 바로 세션 생성
ssh user@server
tmux new -s work
# 다음번 접속 시 기존 세션 복원
ssh user@server
tmux attach -t work
# 또는 세션이 하나뿐이면
tmux a
개발 환경 자동 구성 스크립트
tmux 세션과 레이아웃을 셸 스크립트로 자동 구성하면 개발 환경을 한 번에 열 수 있습니다. 매일 반복되는 환경 설정 시간을 크게 줄여줍니다.
#!/bin/bash
# dev.sh - 개발 환경 자동 구성
SESSION="dev"
tmux new-session -d -s $SESSION
# 첫 번째 윈도우: 에디터
tmux rename-window -t $SESSION:0 'editor'
tmux send-keys -t $SESSION:0 'vim .' C-m
# 두 번째 윈도우: 서버
tmux new-window -t $SESSION:1 -n 'server'
tmux send-keys -t $SESSION:1 'npm run dev' C-m
# 세 번째 윈도우: 로그 & Git (좌우 분할)
tmux new-window -t $SESSION:2 -n 'logs'
tmux split-window -h -t $SESSION:2
tmux send-keys -t $SESSION:2.0 'tail -f logs/app.log' C-m
tmux send-keys -t $SESSION:2.1 'git log --oneline' C-m
# 에디터 윈도우로 포커스
tmux select-window -t $SESSION:0
tmux attach-session -t $SESSION
멀티 패널 로그 모니터링
여러 서비스의 로그를 동시에 확인해야 할 때 패널 분할이 매우 유용합니다. 서버 장애 대응 시 특히 효과적입니다.
# 세 개의 패널로 로그 모니터링
tmux new -s monitor
tmux split-window -h
tmux split-window -v -t 0
# 각 패널에 로그 명령 전송
tmux send-keys -t monitor:0.0 'tail -f /var/log/nginx/access.log' C-m
tmux send-keys -t monitor:0.1 'tail -f /var/log/mysql/error.log' C-m
tmux send-keys -t monitor:0.2 'tail -f /var/log/app/app.log' C-m
공동 작업 (페어 프로그래밍)
같은 tmux 세션에 여러 사람이 동시 접속하면 같은 화면을 보면서 작업할 수 있습니다. 원격 페어 프로그래밍이나 별도 화면 공유 도구 없이 실시간 협업이 가능합니다.
# 호스트: 세션 생성
tmux new -s pair
# 게스트: 동일 세션에 접속
ssh user@server
tmux attach -t pair
자주 묻는 질문 (FAQ)
Q1. tmux와 screen 중 어떤 것을 써야 하나요?
새로 시작하는 경우라면 tmux를 강력히 추천합니다. tmux는 더 직관적인 설정, 강력한 패널 분할, 활발한 플러그인 생태계를 제공합니다. GNU screen은 일부 구형 서버에서 이미 설치되어 있을 때 사용하는 정도로 충분합니다.
Q2. tmux 세션이 갑자기 종료됩니다. 어떻게 해야 하나요?
세션 내 모든 윈도우와 패널이 닫히면 세션도 종료됩니다. 실수로 세션이 종료되지 않도록 tmux-resurrect 플러그인을 사용해 세션을 주기적으로 저장하는 것을 권장합니다. 또한 Prefix + d로 세션을 detach(분리)하면 세션이 백그라운드에서 유지됩니다.
Q3. tmux에서 마우스 스크롤이 안 됩니다.
~/.tmux.conf에 set -g mouse on을 추가하면 마우스 스크롤과 클릭으로 패널 선택이 가능해집니다. tmux 2.1 이상 버전에서 지원합니다. 설정 후 tmux source-file ~/.tmux.conf로 적용하세요.
Q4. tmux 안에서 복사·붙여넣기는 어떻게 하나요?
Prefix + [로 스크롤/복사 모드에 진입하면 방향키로 이동하고 Space로 선택 시작, Enter로 복사합니다. 붙여넣기는 Prefix + ]입니다. 마우스 모드 활성화 시에는 일반적인 마우스 드래그 후 Ctrl+Shift+c/v를 사용하면 됩니다.
Q5. Windows에서도 tmux를 쓸 수 있나요?
Windows에서는 WSL(Windows Subsystem for Linux)을 설치하면 tmux를 그대로 사용할 수 있습니다. Windows Terminal과 함께 사용하면 더욱 쾌적한 환경이 됩니다. Git Bash나 Cygwin 환경에서도 제한적으로 사용 가능합니다.
'DevOps' 카테고리의 다른 글
| On-Premise vs 클라우드 | 어떤 경우에 온프레미스가 답인가? 실무자의 판단 기준 5가지 (1) | 2025.12.17 |
|---|---|
| 스마트워크 완전 정리 | 재택·원격·하이브리드 근무로 일하는 방식 혁신하기 (1) | 2025.12.03 |
| 클라우드서비스 핵심 개념과 종류까지 쉽게 이해하기 (1) | 2025.11.25 |
| 무료 vs 유료 웹호스팅 비교와 최적의 서비스 선택 가이드 (0) | 2025.11.22 |
| 서버 호스팅이란? 개발자와 기업을 위한 완벽 가이드 (클라우드, NAS 비교 및 활용법) (0) | 2025.11.10 |