tmux 시작하기: 기본 개념, 필수 명령어
작성일:
tmux는 터미널 멀티플렉서로, 하나의 터미널 창에서 여러 세션, 윈도우, 패널을 관리하여 생산성을 극대화하는 강력한 도구입니다. 이 글에서는 tmux의 기본 개념, 설치 방법, 주요 용어 및 필수 명령어에 대해 알아봅니다.
개요
tmux는 ‘Terminal Multiplexer’의 약자로, 하나의 터미널 창(또는 원격 접속 세션) 내에서 여러 개의 독립적인 터미널 세션을 생성하고 관리할 수 있게 해주는 도구입니다. tmux를 사용하면 터미널 세션을 영구적으로 유지할 수 있어, 네트워크 연결이 끊어지더라도 실행 중이던 작업을 안전하게 보존하고 나중에 다시 접속하여 이어갈 수 있습니다.
주요 장점은 다음과 같습니다.
- 세션 유지: SSH 연결이 끊어져도 서버에서 실행 중인 작업을 계속 유지합니다.
- 창 및 패널 관리: 하나의 화면에서 여러 개의 창(window)과 패널(pane)을 분할하여 동시에 여러 작업을 모니터링하고 실행할 수 있습니다.
- 페어 프로그래밍: 여러 사용자가 동일한 세션에 접속하여 화면을 공유하고 함께 작업할 수 있습니다.
기술적 배경
tmux는 screen 명령어의 현대적인 대안으로 개발되었습니다. screen 역시 터미널 멀티플렉서의 기능을 제공하지만, tmux는 더 깔끔한 설정 파일(conf), 유연한 스크립팅 기능, 명확한 클라이언트-서버 모델 아키텍처를 제공하여 사용자 편의성과 확장성을 높였습니다.
클라이언트-서버 구조 덕분에 세션 관리가 더 안정적이며, 다양한 플러그인 생태계를 통해 기능을 쉽게 확장할 수 있습니다. 예를 들어, 시스템 재부팅 후에도 세션을 그대로 복구해주는 플러그인 등을 활용할 수 있습니다.
설치
tmux는 대부분의 Unix 기반 운영체제에서 패키지 매니저를 통해 쉽게 설치할 수 있습니다.
- macOS (Homebrew 사용)
brew install tmux - Debian / Ubuntu (
apt사용)sudo apt update sudo apt install tmux - CentOS / RHEL / Fedora (
yum또는dnf사용)sudo yum install tmux # 또는 sudo dnf install tmux
설치가 완료되면 터미널에 tmux를 입력하여 시작할 수 있습니다.
용어 및 구성요소
tmux의 구조를 이해하기 위해 세 가지 핵심 요소를 알아야 합니다.
- 세션 (Session):
tmux서버에 의해 관리되는 가장 큰 단위입니다. 각 세션은 하나 이상의 창(window)을 가질 수 있으며, 독립적인 작업 환경을 구성합니다. 사용자는 여러 세션을 동시에 실행하고 필요에 따라 전환할 수 있습니다. - 창 (Window): 세션 내에 있는 개별 탭과 유사합니다. 하나의 창은 전체 화면을 차지하며, 여러 개의 패널로 분할될 수 있습니다.
- 패널 (Pane): 창을 수직 또는 수평으로 분할한 작은 영역입니다. 각 패널은 독립적인 쉘 프롬프트를 가지므로, 여기서 명령어를 실행할 수 있습니다.
계층 구조는 다음과 같습니다.
Session
└── Window
├── Pane 1
├── Pane 2
└── Pane 3
주요 명령어
tmux의 모든 명령어는 Prefix 키를 누른 후 입력합니다. 기본 Prefix는 Ctrl+b 입니다. 예를 들어 새 창을 만들려면 Ctrl+b를 누르고 손을 뗀 다음, c를 누릅니다.
세션 관리
| 명령어 | 설명 |
|---|---|
tmux new -s <세션이름> |
새로운 이름의 세션을 시작합니다. |
tmux ls |
현재 실행 중인 세션 목록을 봅니다. |
tmux a -t <세션이름> |
지정된 이름의 세션에 접속합니다. |
Ctrl+b d |
현재 접속된 세션에서 빠져나옵니다 (Detach). |
Ctrl+b $ |
현재 세션의 이름을 변경합니다. |
창 (Window) 관리
| 명령어 (Prefix +) | 설명 |
|---|---|
c |
새 창을 생성합니다. |
w |
창 목록을 보여주고 선택하여 전환합니다. |
p |
이전 창으로 이동합니다. |
n |
다음 창으로 이동합니다. |
& |
현재 창을 닫습니다. (확인 프롬프트 표시) |
, |
현재 창의 이름을 변경합니다. |
패널 (Pane) 관리
| 명령어 (Prefix +) | 설명 |
|---|---|
% |
현재 패널을 수직으로 분할합니다. |
" |
현재 패널을 수평으로 분할합니다. |
o |
다음 패널로 이동합니다. |
방향키 |
해당 방향의 패널로 이동합니다. |
x |
현재 패널을 닫습니다. (확인 프롬프트 표시) |
z |
현재 패널을 전체 화면으로 확대/축소합니다. |
space |
미리 정의된 레이아웃으로 패널 배치를 변경합니다. |
고급 활용: 플러그인과 설정
tmux의 진정한 힘은 확장성에서 나옵니다. ~/.tmux.conf 파일을 수정하여 키 바인딩을 변경하거나 스타일을 커스터마이징할 수 있습니다.
TPM (Tmux Plugin Manager)을 사용하면 플러그인을 쉽게 관리할 수 있습니다. 인기 있는 플러그인은 다음과 같습니다:
- tmux-resurrect: 시스템 재부팅 후에도
tmux환경을 복원해줍니다. - tmux-continuum: 백그라운드에서 주기적으로 환경을 자동 저장합니다.
경쟁 도구 비교: Tmux vs. Zellij
최근 Rust로 개발된 Zellij가 tmux의 강력한 경쟁자로 떠오르고 있습니다.
| 특징 | Tmux | Zellij |
|---|---|---|
| 기반 언어 | C | Rust |
| 설정 | .tmux.conf (전용 문법) |
config.kdl (KDL 포맷, 직관적) |
| UI/UX | 미니멀, 단축키 위주 | 하단 상태 표시줄에 단축키 가이드 표시 (초보자 친화적) |
| 구조 | 세션-윈도우-패널 | 세션-탭-패널 (탭이 윈도우 역할) |
| 확장성 | 방대한 플러그인 생태계 | WASM 기반 플러그인 시스템 (성장 중) |
선택 가이드:
- Tmux: 이미 익숙하거나, 가볍고 안정적인 환경이 필요하며, 서버에 기본 설치된 경우가 많을 때 유리합니다.
- Zellij: 설정을 쉽게 하고 싶고, 더 현대적인 UI와 친절한 가이드가 필요하다면 좋은 선택입니다.
Cheat Sheet
자주 사용하는 핵심 단축키 요약입니다.
| 동작 | 명령어 (Prefix: Ctrl+b) |
|---|---|
| 세션 생성 | tmux new -s <이름> |
| 세션 종료 (Detach) | d |
| 세션 목록 | tmux ls |
| 세션 접속 | tmux a -t <이름> |
| 창 생성 | c |
| 창 이동 | n (다음), p (이전), w (목록 선택) |
| 패널 수직 분할 | % |
| 패널 수평 분할 | " |
| 패널 이동 | 방향키 |
| 패널 닫기 | x |
| 패널 줌 | z |
| 스크롤 모드 | [ (나갈 땐 q) |
tmux는 터미널 작업의 효율성을 크게 향상시키는 강력한 도구입니다. 이 가이드에서 다룬 기본 명령어만 익혀도 터미널 환경을 훨씬 더 쾌적하게 만들 수 있습니다. 더 나아가 .tmux.conf 설정 파일을 통해 자신만의 단축키와 스타일을 만들어 사용하는 것을 추천합니다.
댓글남기기