tmux

터미널 멀티플렉서. SSH 끊겨도 세션 유지, 하나의 터미널에서 여러 창 분할 가능.
Pi 원격 작업할 때 필수 도구.

설치

sudo apt install tmux -y

세션

tmux의 최상위 단위. SSH 연결이 끊겨도 세션은 서버에 살아있음.

tmux                        # 새 세션 시작
tmux new -s 이름            # 이름 붙여서 새 세션
tmux ls                     # 세션 목록
tmux attach -t 이름         # 세션 재접속
tmux kill-session -t 이름   # 세션 종료

Prefix 키

tmux 단축키는 전부 Prefix → 다음 키 순서.
기본 Prefix = Ctrl + b

윈도우 (탭)

단축키동작
Prefix c새 윈도우 생성
Prefix ,윈도우 이름 변경
Prefix n다음 윈도우
Prefix p이전 윈도우
Prefix 0~9번호로 윈도우 이동
Prefix &현재 윈도우 닫기

Pane (화면 분할)

단축키동작
Prefix %좌우 분할
Prefix "상하 분할
Prefix 방향키pane 이동
Prefix Ctrl+방향키pane 크기 조절
Prefix z현재 pane 전체화면 토글
Prefix x현재 pane 닫기

세션 detach / attach

# 세션에서 나가기 (세션은 백그라운드에서 계속 실행)
Prefix d

# 다시 붙기
tmux attach -t 이름

# 세션이 하나면 그냥
tmux attach
SSH로 Pi 접속 → tmux 실행 → 작업 → Prefix d → SSH 끊기
→ 나중에 다시 SSH 접속 → tmux attach → 작업 그대로

복사 모드 (스크롤)

Prefix [        # 복사 모드 진입 (스크롤 가능해짐)
q               # 복사 모드 나가기
Space           # 복사 시작점 선택
Enter           # 복사
Prefix ]        # 붙여넣기

자주 쓰는 패턴

# Pi에서 서버 띄우고 나가기
tmux new -s server
npm run dev
# Prefix d → SSH 끊어도 서버 계속 실행됨

# 작업 중 화면 3분할
Prefix %    # 좌우 분할
Prefix →    # 오른쪽으로
Prefix "    # 상하 분할
# → 왼쪽: 에디터, 오른쪽 위: 서버, 오른쪽 아래: 쉘

설정 파일

~/.tmux.conf
# Prefix를 Ctrl+a 로 변경 (screen 스타일, 손이 편함)
unbind C-b
set -g prefix C-a
bind C-a send-prefix

# 마우스 스크롤 활성화
set -g mouse on

# 윈도우 번호 1부터 시작
set -g base-index 1

# 설정 리로드
bind r source-file ~/.tmux.conf \; display "Reloaded"
설정 변경 후 적용: Prefix r (위 설정 추가했을 때) 또는 tmux 재시작.