이 글에서 다루는 내용

이 글에서는 터미널 멀티플렉서인 tmux의 핵심 개념인 세션, 윈도우, 페인을 이해하고, 실무에서 자주 쓰는 명령어와 단축키를 표로 정리합니다. 또한 macOS에서 zsh: command not found: tmux 오류가 발생했을 때 Homebrew로 tmux를 설치하는 방법과, Apple Silicon Mac에서 brew 경로를 설정하는 방법, 그리고 개발 생산성을 높여주는 ~/.tmux.conf 추천 설정까지 함께 다룹니다.

tmux 기본 개념

tmux는 하나의 터미널 창 안에서 여러 개의 작업 공간을 만들고, 터미널을 닫거나 SSH 연결이 끊겨도 작업을 그대로 유지해주는 도구입니다. 구조는 세션 안에 윈도우가 있고, 윈도우 안에 페인이 있는 계층 구조입니다.

tmux의 기본 프리픽스 키는 Ctrl + b입니다. 아래 표에서 prefix라고 표시된 단축키는 모두 Ctrl + b를 누른 뒤 손을 떼고 이어서 입력하면 됩니다.

세션 (Session) 관련 명령어

명령어 / 단축키 설명
tmux 새 세션 시작
tmux new -s 이름 이름을 지정해서 새 세션 생성
tmux ls 세션 목록 확인
tmux a -t 이름 세션에 다시 접속 (attach)
tmux kill-session -t 이름 특정 세션 종료
tmux kill-server 모든 세션 종료
prefix d 세션에서 빠져나오기 (detach, 세션은 유지됨)
prefix s 세션 목록을 보고 전환
prefix $ 현재 세션 이름 변경

윈도우 (Window) 관련 단축키

윈도우는 브라우저의 탭과 비슷한 개념입니다.

단축키 설명
prefix c 새 윈도우 생성
prefix , 윈도우 이름 변경
prefix n / prefix p 다음 / 이전 윈도우로 이동
prefix 0~9 번호로 윈도우 이동
prefix w 윈도우 목록에서 선택
prefix & 현재 윈도우 닫기

페인 (Pane) 관련 단축키

페인은 하나의 윈도우를 여러 영역으로 분할한 화면입니다.

단축키 설명
prefix % 좌우 분할
prefix " 상하 분할
prefix 방향키 페인 간 이동
prefix o 다음 페인으로 순환
prefix z 현재 페인 최대화 / 복원 토글
prefix x 현재 페인 닫기
prefix Space 레이아웃 순환 변경
prefix { / prefix } 페인 위치 교환
prefix Ctrl+방향키 페인 크기 조절
prefix q 페인 번호 표시
prefix ! 현재 페인을 새 윈도우로 분리

복사 모드와 스크롤

tmux 안에서는 일반적인 마우스 스크롤이 기본적으로 동작하지 않기 때문에 복사 모드를 사용해 이전 출력 내용을 확인합니다.

단축키 설명
prefix [ 복사(스크롤) 모드 진입, q로 종료
Space → Enter 선택 시작 → 복사 (기본 emacs 키 기준, vi 모드에서는 v → y)
prefix ] 붙여넣기

기타 유용한 단축키

단축키 설명
prefix ? 전체 단축키 목록 보기
prefix : 명령 프롬프트 열기 (예: :setw synchronize-panes on으로 모든 페인에 동시 입력)
prefix t 시계 표시

추천 ~/.tmux.conf 설정

개발할 때 자주 쓰는 설정입니다. 아래 내용을 ~/.tmux.conf 파일에 저장한 뒤 tmux source ~/.tmux.conf 명령으로 적용합니다.

# 마우스 사용 (클릭으로 페인 선택, 드래그로 크기 조절, 휠 스크롤)
set -g mouse on

# 윈도우/페인 번호를 1부터 시작
set -g base-index 1
setw -g pane-base-index 1

# 스크롤 버퍼 늘리기
set -g history-limit 50000

# vi 키로 복사 모드 사용
setw -g mode-keys vi

# 분할 시 현재 경로 유지 + 직관적인 분할 키
bind | split-window -h -c "#{pane_current_path}"
bind - split-window -v -c "#{pane_current_path}"

# 설정 바로 리로드
bind r source-file ~/.tmux.conf \; display "Reloaded!"

실무 활용 팁

프론트엔드, 백엔드, 네이티브 앱 개발을 함께 진행할 때는 프로젝트별로 세션을 만들고, 윈도우를 server, client, logs처럼 역할별로 나눠두면 편리합니다. 작업 중 prefix d로 빠져나갔다가 tmux a -t 프로젝트명으로 언제든 그대로 이어서 작업할 수 있습니다. 원격 서버에 SSH로 접속해 작업할 때 연결이 끊겨도 tmux 안에서 실행 중인 프로세스는 계속 살아 있다는 점도 큰 장점입니다.

macOS에서 "command not found: tmux" 오류 해결

macOS에서 tmux ls를 실행했을 때 아래와 같은 오류가 나온다면 tmux가 설치되어 있지 않은 것입니다. macOS에는 tmux가 기본으로 포함되어 있지 않습니다.

% tmux ls
zsh: command not found: tmux

Homebrew를 이용해 설치합니다.

brew install tmux

설치가 끝나면 버전을 확인합니다.

tmux -V

Homebrew가 없는 경우

brew 명령어도 command not found가 나온다면 Homebrew부터 설치해야 합니다.

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Apple Silicon Mac의 PATH 설정

M1, M2, M3 등 Apple Silicon 칩을 사용하는 Mac에서는 Homebrew가 /opt/homebrew 경로에 설치되기 때문에, 설치 마지막에 안내되는 PATH 설정을 해줘야 brew 명령어가 인식됩니다.

echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"

설정이 끝나면 brew install tmux로 tmux를 설치하고, tmux new -s 프로젝트명처럼 프로젝트 이름으로 세션을 만들어 바로 시작하면 됩니다.