작성일:

tmux는 터미널 멀티플렉서로, 하나의 터미널 창에서 여러 세션, 윈도우, 패널을 관리하여 생산성을 극대화하는 강력한 도구입니다. 이 글에서는 tmux의 기본 개념, 설치 방법, 주요 용어 및 필수 명령어에 대해 알아봅니다.

개요

tmux는 ‘Terminal Multiplexer’의 약자로, 하나의 터미널 창(또는 원격 접속 세션) 내에서 여러 개의 독립적인 터미널 세션을 생성하고 관리할 수 있게 해주는 도구입니다. tmux를 사용하면 터미널 세션을 영구적으로 유지할 수 있어, 네트워크 연결이 끊어지더라도 실행 중이던 작업을 안전하게 보존하고 나중에 다시 접속하여 이어갈 수 있습니다.

주요 장점은 다음과 같습니다.

  • 세션 유지: SSH 연결이 끊어져도 서버에서 실행 중인 작업을 계속 유지합니다.
  • 창 및 패널 관리: 하나의 화면에서 여러 개의 창(window)과 패널(pane)을 분할하여 동시에 여러 작업을 모니터링하고 실행할 수 있습니다.
  • 페어 프로그래밍: 여러 사용자가 동일한 세션에 접속하여 화면을 공유하고 함께 작업할 수 있습니다.

기술적 배경

tmuxscreen 명령어의 현대적인 대안으로 개발되었습니다. 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로 개발된 Zellijtmux의 강력한 경쟁자로 떠오르고 있습니다.

특징 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 설정 파일을 통해 자신만의 단축키와 스타일을 만들어 사용하는 것을 추천합니다.

댓글남기기