Tmux 사용법 주요 단축키, 명령어 정리

tmux 사용법 명령어 정리

tmux 사용법 정리: 설치, 단축키, 설정까지 스윽 해보겠습니다

딥러닝 연구하시는 분들 – 모델 학습시키는거 안 꺼지게 하거나

클라우드 서버 작업하시는 분들 서버 로그랑 모니터링 돌아가는 서버 안 죽게 하려고 많이 쓰시는것 같습니다

tmux 사용법 명령어 정리

터미널에서 작업하다 SSH 접속이 끊기면 실행 중이던 프로세스가 같이 날아갑니다요 ㅠㅠㅠㅠ.
여러 작업을 동시에 하려고 터미널 창을 5개씩 열어본 적도 있을 거다.

tmux를 쓰면 이런 문제가 사라진다. 설치부터 핵심 단축키, 실전 활용, 추천 설정까지 한 글에 모았다.


목차

  1. tmux란 무엇인가
  2. tmux를 쓰면 뭐가 좋은가
  3. tmux 설치
  4. 핵심 개념: 세션, 윈도우, 패널
  5. tmux 기본 사용법
  6. tmux 단축키 총정리
  7. 패널 크기 조절
  8. 실전 활용 시나리오
  9. 추천 설정 (.tmux.conf)
  10. 자주 묻는 질문 (FAQ)
  11. 마무리

tmux란 무엇인가

tmux는 Terminal Multiplexer의 약자다. 하나의 터미널 안에서 여러 세션을 동시에 띄우고 관리할 수 있다.

제일 좋은 점은 세션이 유지된다는 거다. tmux 안에서 돌린 프로세스는 터미널을 닫거나 SSH가 끊겨도 백그라운드에서 계속 돌아간다. 나중에 다시 붙으면 떠나기 전 상태 그대로다.


tmux를 쓰면 뭐가 좋은가

접속이 끊겨도 프로세스가 산다

서버에서 모델 학습을 돌려놓고 SSH가 끊기면, 보통은 프로세스도 죽는다. tmux 세션은 서버에 남아있으니까 학습이 중단되지 않는다.

화면을 쪼개서 쓸 수 있다

코드 편집하면서 서버 로그도 봐야 하고 테스트도 돌려야 할 때, 터미널 창 여러 개를 왔다 갔다 하면 귀찮다. tmux에서 좌우/상하로 분할하면 한 화면에 다 보인다.

작업 환경이 통째로 보존된다

프로젝트마다 세션을 만들어두면, 퇴근할 때 detach하고 다음 날 attach하면 끝이다. 어제 하던 작업 환경이 그대로 남아있다.

상황 일반 터미널 tmux
SSH 끊김 프로세스 종료 프로세스 유지
동시 작업 창 여러 개 필요 화면 분할로 해결
작업 재개 처음부터 다시 설정 attach로 즉시 복원

tmux 설치

macOS

brew install tmux

Ubuntu / Debian

sudo apt update
sudo apt install tmux

CentOS / RHEL

sudo yum install tmux

설치 확인

tmux -V

tmux 3.x 같은 버전이 나오면 설치가 된 거다.


핵심 개념: 세션, 윈도우, 패널

tmux에는 세 가지 계층이 있다.

tmux
 └─ 세션 (Session)    → 프로젝트 단위로 구분
     └─ 윈도우 (Window)  → 브라우저 탭처럼 전환
         └─ 패널 (Pane)    → 화면 분할 영역
  • 세션(Session): 가장 큰 단위. frontend, backend 같은 식으로 프로젝트별로 만들면 전환이 편하다.
  • 윈도우(Window): 세션 안의 탭이다. 하나의 세션에서 여러 윈도우를 오갈 수 있다.
  • 패널(Pane): 윈도우를 좌우·상하로 쪼갠 것. 실제로 명령어를 치는 단위다.

tmux 기본 사용법

세션 만들고 빠져나오기

핵심 명령어는 세 개다.

# 1. 이름 붙여서 세션 생성
tmux new -s myproject

# 2. 세션에서 빠져나오기 (프로세스는 계속 돌아감)
# tmux 안에서 Ctrl+b를 누르고 → d를 누른다

# 3. 세션에 다시 접속
tmux attach -t myproject

이 세 개면 tmux의 80%는 쓰는 거다.

세션 목록 확인과 종료

# 실행 중인 세션 목록
tmux ls

# 특정 세션 종료
tmux kill-session -t myproject

# 전부 종료
tmux kill-server

tmux 단축키 총정리

tmux 단축키는 prefix 키를 먼저 누르고, 손을 뗀 다음 키를 누르는 방식이다.

기본 prefix 키는 Ctrl+b다.

예를 들어, Ctrl+b → d는 Ctrl과 b를 동시에 누르고, 두 키에서 손을 뗀 뒤 d를 누르면 된다.

세션 관련

단축키 동작
Ctrl+b → d 현재 세션에서 빠져나오기 (detach)
Ctrl+b → s 세션 목록 보기 및 전환
Ctrl+b → $ 현재 세션 이름 변경

윈도우 관련

실질적으로 여기가 가장 자주 사용하는 tmux 명령어

해커처럼 tmux 쓰기 가능

tmux like hacker

단축키 동작
Ctrl+b → c 새 윈도우 생성
Ctrl+b → n 다음 윈도우로 이동
Ctrl+b → p 이전 윈도우로 이동
Ctrl+b → 0~9 번호로 윈도우 이동
Ctrl+b → w 전체 윈도우 목록에서 선택
Ctrl+b → , 현재 윈도우 이름 변경
Ctrl+b → & 현재 윈도우 닫기

패널 관련

단축키 동작
Ctrl+b → % 좌우 분할
Ctrl+b → “ 상하 분할
Ctrl+b → 방향키 패널 간 이동
Ctrl+b → x 현재 패널 닫기
Ctrl+b → z 현재 패널 전체화면 토글 (다시 누르면 원래 크기)
Ctrl+b → q 패널 번호 표시 (번호 누르면 해당 패널로 이동)
Ctrl+b → { 현재 패널을 이전 위치로 이동
Ctrl+b → } 현재 패널을 다음 위치로 이동
Ctrl+b → Space 패널 레이아웃 자동 변경

패널 크기 조절

두 가지 방법이 있다.

단축키로 조절

단축키 동작
Ctrl+b → Ctrl+↑ 위로 늘리기
Ctrl+b → Ctrl+↓ 아래로 줄이기
Ctrl+b → Ctrl+← 왼쪽으로 줄이기
Ctrl+b → Ctrl+→ 오른쪽으로 늘리기

방향키를 연타하면 연속으로 크기가 바뀐다.

macOS에서는 Ctrl+방향키가 Mission Control과 충돌할 수 있다. 시스템 설정 → 키보드 → 키보드 단축키 → Mission Control에서 Ctrl+방향키 4개를 꺼주면 된다.

명령어로 정밀하게 조절

Ctrl+b → : 를 눌러 명령어 모드에 들어간 뒤 입력한다.

resize-pane -U 10    # 위로 10칸
resize-pane -D 10    # 아래로 10칸
resize-pane -L 20    # 왼쪽으로 20칸
resize-pane -R 20    # 오른쪽으로 20칸

Mission Control 설정을 건드리기 싫으면 이 방법을 쓰면 된다.


실전 활용 시나리오

서버에서 장시간 프로세스 돌리기

# 서버 접속 후 세션 생성
ssh user@server
tmux new -s training

# 머신러닝 모델 학습 시작
python train.py --epochs 100

# Ctrl+b → d 로 빠져나옴
# SSH 연결을 끊어도 학습은 계속 진행된다

# 다음 날 다시 접속해서 확인
ssh user@server
tmux attach -t training

개발 환경 화면 분할

하나의 터미널에서 코드 편집, 서버 실행, 로그 확인을 동시에 할 수 있다.

tmux new -s dev

# 좌우 분할: Ctrl+b → %
# 왼쪽: 코드 편집 (vim app.py)

# 오른쪽으로 이동: Ctrl+b → →
# 상하 분할: Ctrl+b → "
# 위: 서버 실행 (python app.py)

# 아래로 이동: Ctrl+b → ↓
# 아래: 로그 확인 (tail -f logs/app.log)

완성된 레이아웃:

┌──────────────────┬──────────────────┐
│                  │   서버 실행       │
│   코드 편집       ├──────────────────┤
│                  │   로그 확인       │
└──────────────────┴──────────────────┘

프로젝트별 세션 분리

# 프로젝트별로 세션을 나눠두면 전환이 간편하다
tmux new -s frontend    # 프론트엔드 작업
tmux new -s backend     # 백엔드 작업
tmux new -s database    # DB 관리

# 세션 간 전환: Ctrl+b → s 로 목록에서 선택

추천 설정 (.tmux.conf)

홈 디렉토리에 ~/.tmux.conf 파일을 만들면 tmux를 입맛대로 바꿀 수 있다.

# 마우스 사용 (패널 크기 드래그, 클릭 이동, 스크롤)
set -g mouse on

# prefix를 Ctrl+a로 변경 (Ctrl+b보다 손이 편하다)
unbind C-b
set -g prefix C-a
bind C-a send-prefix

# 직관적인 화면 분할 키
bind | split-window -h    # | 로 좌우 분할
bind - split-window -v    # - 로 상하 분할

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

# 설정 리로드 단축키 (prefix + r)
bind r source-file ~/.tmux.conf \; display "설정 리로드 완료"

# 256색 지원
set -g default-terminal "screen-256color"

# 히스토리 버퍼 크기 증가
set -g history-limit 10000

설정 파일 적용은 두 가지 방법이 있다.

# tmux 안에서 명령어 모드로 적용
# Ctrl+b → : → source-file ~/.tmux.conf

# 위 설정에서 리로드 단축키를 추가했다면
# Ctrl+b → r (또는 변경한 prefix + r)

set -g mouse on은 꼭 넣어두는 게 좋다. 마우스로 패널 크기를 드래그하고, 클릭으로 패널을 고르고, 스크롤로 이전 출력을 볼 수 있어서 쓰기가 훨씬 편해진다.


자주 묻는 질문 (FAQ)

tmux와 screen의 차이는?

둘 다 터미널 멀티플렉서인데, tmux가 더 최신이고 화면 분할이나 커스터마이징에서 낫다. 지금 시점에서는 tmux를 쓰면 된다.

세션이 너무 많아졌을 때 한번에 정리하려면?

tmux kill-server

이 한 줄이면 모든 세션이 종료된다.

스크롤이 안 된다

Ctrl+b → [ 를 누르면 복사 모드에 들어가고, 방향키나 Page Up/Down으로 스크롤할 수 있다. q를 누르면 빠져나온다.

~/.tmux.confset -g mouse on을 넣으면 마우스 스크롤도 된다.

prefix 키를 바꾸고 싶다

~/.tmux.conf에서 바꿀 수 있다. Ctrl+a가 가장 많이 쓰이는 대안이다.

unbind C-b
set -g prefix C-a
bind C-a send-prefix

패널 이동이 번거롭다

~/.tmux.conf에 아래를 추가하면 Alt+방향키로 패널을 바로 이동할 수 있다.

bind -n M-Left select-pane -L
bind -n M-Right select-pane -R
bind -n M-Up select-pane -U
bind -n M-Down select-pane -D

-n 옵션은 prefix 없이 바로 동작한다는 뜻이다.


마무리

tmux는 단축키가 많아 보이지만 자주 쓰는 건 몇 개 안 된다.

이것부터 손에 익히면 된다:

tmux new -s 이름       # 세션 만들기
Ctrl+b → d            # 빠져나오기
tmux attach -t 이름    # 다시 접속

Ctrl+b → %            # 좌우 분할
Ctrl+b → "            # 상하 분할
Ctrl+b → 방향키        # 패널 이동

이 여섯 개만 익숙해지면 나머지는 필요할 때 하나씩 추가하면 된다. 한번 손에 붙으면 tmux 없이 터미널 쓰는 게 불편해진다.

 

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다