Design · Development · Thoughts

안녕하세요,
Practical AI Lab 입니다.

AI·에이전트·LLM 실전 연구

tmux 설치와 사용법 — 세션·창·패널 실전 가이드


반응형

tmux는 하나의 터미널 안에서 여러 셸과 프로그램을 실행하고, 작업 화면을 분리하거나 나중에 다시 연결할 수 있게 해주는 터미널 멀티플렉서입니다. 특히 원격 서버에서 빌드, 학습, 로그 모니터링, Claude Code나 Codex 같은 코딩 에이전트를 장시간 실행할 때 유용합니다. SSH 연결이 끊겨도 tmux 서버와 그 안의 프로세스는 원격 호스트에 남기 때문에 다시 접속해 작업을 이어갈 수 있습니다. 이 글에서는 공식 tmux 문서를 기준으로 설치부터 세션·창·패널 사용법, 자주 쓰는 단축키와 실전 설정을 정리합니다.

운영체제별 tmux 설치

대부분의 Linux 배포판과 macOS에서는 패키지 관리자로 설치할 수 있습니다. Ubuntu와 Debian은 다음 명령을 사용합니다.

sudo apt update
sudo apt install tmux

Fedora와 RHEL 계열은 각각 dnf 또는 yum을 사용합니다.

sudo dnf install tmux
# 구형 RHEL/CentOS
sudo yum install tmux

Arch Linux는 pacman, openSUSE는 zypper로 설치합니다.

sudo pacman -S tmux
sudo zypper install tmux

macOS에서 Homebrew를 사용한다면 다음 한 줄이면 됩니다.

brew install tmux

설치가 끝나면 버전을 확인합니다. 배포판 저장소의 버전은 최신 릴리스보다 오래될 수 있으므로 특정 최신 기능이 필요할 때는 공식 설치 문서의 소스 빌드나 정적 바이너리 방법을 검토합니다.

tmux -V
man 1 tmux

세션·창·패널 구조 이해하기

tmux는 세 단계 구조로 이해하면 쉽습니다. 가장 바깥의 세션(session)은 하나의 작업 공간입니다. 세션 안에는 브라우저 탭과 비슷한 여러 창(window)이 있고, 각 창은 화면을 나눈 여러 패널(pane)을 가질 수 있습니다. 예를 들어 한 세션에 에디터 창, 서버 창, 모니터링 창을 만들고 서버 창을 애플리케이션 로그와 시스템 지표 패널로 나눌 수 있습니다.

이미지: AI 생성 개념 도해

tmux의 기본 단축키는 먼저 prefix인 Ctrl+b를 누른 뒤 다음 키를 누르는 방식입니다. 예를 들어 새 창을 만들려면 Ctrl+b에서 손을 뗀 다음 c를 누릅니다. 두 키를 동시에 계속 누르는 조합이 아닙니다.

세션 만들기와 다시 연결하기

이름을 지정해 새 세션을 만들면 여러 프로젝트를 구분하기 쉽습니다.

tmux new-session -s myproject
# 짧은 형태
tmux new -s myproject

현재 세션에서 빠져나오되 내부 작업을 계속 실행하려면 Ctrl+b d로 detach합니다. 실행 중인 셸을 exit로 종료하는 것과 다릅니다. 세션 목록과 연결 상태는 다음 명령으로 확인합니다.

tmux ls

기존 세션에 다시 연결하려면 다음과 같이 실행합니다.

tmux attach-session -t myproject
# 짧은 형태
tmux attach -t myproject

이미 존재하면 연결하고 없으면 새로 만드는 명령은 반복 사용에 편리합니다.

tmux new-session -A -s myproject

더 이상 필요 없는 세션은 내부에서 각 프로그램을 정상 종료한 뒤 제거합니다.

tmux kill-session -t myproject

창과 패널을 다루는 핵심 단축키

다음 표에서 Prefix는 기본값 Ctrl+b를 뜻합니다.

단축키 기능
Prefix c 새 창 만들기
Prefix n / Prefix p 다음·이전 창으로 이동
Prefix 0~9 번호로 창 선택
Prefix , 현재 창 이름 변경
Prefix % 좌우로 패널 분할
Prefix " 위아래로 패널 분할
Prefix 방향키 인접 패널로 이동
Prefix o 다음 패널로 이동
Prefix z 현재 패널 확대·복원
Prefix x 현재 패널 종료 확인
Prefix w 세션·창 선택 목록
Prefix ? 전체 키 바인딩 보기

셸 명령으로도 창과 패널을 제어할 수 있습니다. 자동화 스크립트나 외부 에이전트가 tmux를 조작할 때 이 방식이 유용합니다.

tmux new-window -t myproject -n logs
tmux split-window -h -t myproject:logs
tmux list-windows -t myproject
tmux list-panes -t myproject:logs

tmux의 대상은 보통 세션:창.패널 형식으로 표현합니다. 예를 들어 myproject:1.0은 myproject 세션의 1번 창, 0번 패널입니다.

스크롤·복사와 최소 설정

터미널 출력이 위로 지나갔다면 Prefix [로 copy mode에 들어갑니다. 방향키와 Page Up·Page Down으로 이동하고 q로 종료합니다. 마우스 스크롤과 패널 선택을 활성화하고 창·패널 번호를 1부터 시작하고 싶다면 홈 디렉터리의 ~/.tmux.conf에 다음처럼 설정할 수 있습니다.

set -g mouse on
set -g base-index 1
setw -g pane-base-index 1
set -g history-limit 50000
set -g status-interval 5

설정 파일은 tmux 서버가 시작될 때 읽힙니다. 실행 중인 서버에 다시 적용하려면 다음 명령을 사용합니다.

tmux source-file ~/.tmux.conf

설정을 처음부터 과도하게 꾸미면 다른 서버에서 기본 키가 낯설어질 수 있습니다. 먼저 기본 prefix와 세션·창·패널 동작에 익숙해진 뒤 마우스, 복사 모드, 상태 표시줄을 단계적으로 조정하는 편이 좋습니다.

SSH와 코딩 에이전트 실전 운영

원격 작업에서는 SSH 접속 직후 프로젝트별 세션을 만들고, 연결이 불안정해지기 전에 detach하는 습관이 유용합니다. 다음 명령은 세션이 있으면 재접속하고 없으면 새로 만듭니다.

ssh user@server
tmux new -A -s agent-work

한 창에서는 Claude Code나 Codex 같은 코딩 에이전트를 실행하고, 다른 창에서는 테스트와 서버 로그를 확인할 수 있습니다. 장기 실행 작업을 시작하기 전에 대상 세션과 패널을 명확히 구분하고 이름을 붙이면 잘못된 창에 명령을 보내는 실수를 줄일 수 있습니다.

tmux rename-window -t agent-work:0 coding
tmux new-window -t agent-work -n tests
tmux new-window -t agent-work -n logs

외부 스크립트에서 패널 출력을 확인하려면 capture-pane을 사용합니다. -S -는 저장된 전체 스크롤백을 포함합니다.

tmux capture-pane -t agent-work:coding.0 -p
tmux capture-pane -t agent-work:coding.0 -p -S -

텍스트를 보내고 Enter를 입력할 때는 두 동작을 나누면 예상치 못한 줄바꿈이나 붙여넣기 문제를 줄일 수 있습니다.

tmux send-keys -t agent-work:coding.0 -l -- "테스트를 실행해 줘"
tmux send-keys -t agent-work:coding.0 Enter

tmux는 SSH 클라이언트 연결이 끊어져도 프로세스를 유지하지만 서버 재부팅까지 자동으로 복원하는 도구는 아닙니다. 중요한 서비스는 systemd나 컨테이너 오케스트레이터로 운영하고, tmux는 대화형 개발·진단·에이전트 세션에 사용하는 것이 적절합니다.

참고 자료

반응형