01. Tmux란
Tmux는 Terminal Multiplexer의 약자로, 하나의 터미널 안에서 여러 개의 가상 터미널을 생성해 동시에 사용할 수 있는 도구입니다. Tmux를 실행하면 독립적인 세션이 생성되고, 그 안에서 여러 창과 패널을 나눠 다양한 작업을 병렬로 진행할 수 있습니다.
Tmux로 실행한 프로그램은 사용자가 터미널 창을 닫거나 SSH 연결이 끊겨도 서버에서 계속 실행됩니다. 이후에 사용자가 접속(Attach)하면, 작업하던 화면과 상태로 그대로 이어서 작업할 수 있습니다.
02. 리눅스에서 새 탭과의 차이


리눅스에서 흔히 사용하는 새 터미널 탭/창과 Tmux의 큰 차이는 세션이 어디에 붙어 있느냐와 연결이 끊겼을 때 어떻게 되느냐입니다.
- 세션 유지
- 새 탭/창 (Ctrl+T 등)
- GUI 터미널 프로그램에 종속
- 터미널 창을 실수로 닫거나, SSH 연결이 끊기면 그 안에서 실행 중이던 프로세스는 즉시 종료됩니다.
- Tmux
- 서버에서 돌아가는 별도의 Tmux 서버 프로세스 위에서 세션이 유지
- 로컬 터미널 창을 닫거나 SSH 연결이 끊겨도 Tmux 세션은 서버에서 살아 있고, 다시 접속해 Attach하면 이전 상태로 복구됩니다.
- 새 탭/창 (Ctrl+T 등)
- 원격 작업 (SSH) 효율성
- 새 탭/창
- 로컬 PC에서 탭을 여러 개 열고 각 탭마다 서버로 SSH 접속
- 네트워크가 불안정해 연결이 끊기면, 각 탭에서 하던 작업이 모두 끊기거나 종료될 수 있습니다.
- Tmux
- 서버에 SSH로 한 번 접속한 뒤, 그 안에서 Tmux를 실행해 창과 패널을 여러 개로 분할
- 네트워크가 끊겨도 Tmux는 서버에서 계속 동작하므로, 긴 스캔이나 빌드 작업 결과가 그대로 남습니다.
- 새 탭/창
- 화면 분할 및 관리
- Ctrl+T
- 주로 탭이나 별도의 창 중심이며, 화면 분할 기능은 터미널 프로그램마다 지원 여부와 단축키가 상이함
- Tmux
- 완전한 CLI 기반이며, 모두 키보드로 제어가 가능해, 원격 콘솔 환경에서도 일관된 작업이 가능
- Ctrl+T
03. 언제 무엇을 써야할까?
둘 다 상황에 따라 장단점이 다르므로, 아래와 같이 선택하면 편합니다.
이럴 땐 새 탭/창이 편하다
- 로컬 PC에서 간단한 명령어 몇 개만 실행하고 바로 끝낼 때
- 결과나 상태를 오래 유지할 필요가 없을 때
- 복잡한 단축키나 Tmux 설정을 외우고 싶지 않을 때
이럴 땐 Tmux가 사실상 필수
- 모의해킹 / Pentesting
- nmap, masscan, 무차별 대입 공격 등 수 시간 이상 걸리는 작업을 돌릴 때
- VPN이나 SSH 연결이 끊겨도 스캔과 공격 세션을 그대로 유지하고 싶을 때
- 한 세션에서 여러 창을 띄워, 한쪽에서는 스캔, 다른 쪽에서는 결과 분석이나 공격 스크립트 실행을 동시에 진행할 때
- 서버 관리 / 운영
- 원격 서버에 접속해 한 패널에서는 로그를 tail로 실시간 모니터링하면서, 다른 패널에서는 설정 파일을 수정하고 서비스를 재시작해야 할 때
- 서비스를 운영하면서 장기간 떠 있어야 하는 모니터링·백그라운드 작업을 중간에 끊기지 않게 유지하고 싶을 때
- 불안정한 네트워크 환경
- 무선망, 이동 중 테더링, 해외 VPN 등 네트워크가 자주 끊길 수 있는 환경에서 작업할 때
- 자주 접속이 끊겨도, 다시 서버에 접속해서
tmux attach만 치면 이전 작업 환경을 그대로 복원하고 싶을 때
그래서 단발성·짧은 작업에는 새 탭이 더 단순하고, 장시간·원격·불안정한 네트워크에서의 작업에는 Tmux가 훨씬 안정적이고 강력한 선택지입니다.
04. 설치 방법
Tmux는 대부분의 리눅스 배포판에서 패키지 관리자를 통해 설치가 가능합니다.
sudo apt-get update
sudo apt-get install tmux
설치가 완료되면 터미널에서 tmux 명령을 입력해 실행합니다. 예를 들어, 이름이 test인 새 세션을 생성할 때는 tmux new -s test 처럼 입력합니다.

05. 기본 개념
Tmux 사용을 위한 주요 개념은 아래와 같습니다.
- 세션(Session): Tmux가 관리하는 가장 큰 실행 단위입니다. tmux 명령으로 실행하면 기본 세션이 생성됩니다. 세션 안에는 여러 창(윈도우)와 패널을 포함할 수 있고,
Ctrl+b d로 세션을 분리(Detach) 하면 연결만 끊어지고 세션은 백그라운드에서 계속 실행합니다. - 윈도우(Window): 하나의 세션 안에 여러 개의 창이 존재할 수 있으며, 각 창은 탭처럼 독립적인 터미널 화면을 의미합니다. 윈도우 간 전환 시 해당 창의 전체 화면이 바뀌며, 세션 내에서 탭 이동처럼 관리됩니다.
- 팬(Pane): 각 윈도우는 다시 수직 또는 수평으로 분할해 여러 개의 팬을 생성할 수 있습니다. 분할된 각 팬은 별도의 쉘처럼 독립 동작합니다.
06. 자주 쓰이는 단축키
아래는 기본 접두사인 Ctrl + b 이후 사용되는 키 조합입니다. 기본 접두사는 원한다면 ~/.tmux.conf 파일 내 set -g prefix <키> 등으로 변경이 가능합니다.
| 기능 | 단축키 (prefix는 Ctrl+b) |
|---|---|
| 새 세션 생성 | 터미널에서 tmux new -s <세션명> 또는 tmux |
| 세션 분리(Detach) | Ctrl+b, d (세션을 백그라운드로) |
| 세션 재접속(Attach) | 터미널에서 tmux attach -t <세션명> |
| 새 윈도우 생성 | Ctrl+b, c (현재 세션에 새 탭 생성) |
| 윈도우 이름 변경 | Ctrl+b, , (쉼표) |
| 윈도우 닫기 | Ctrl+b, & 또는 exit (현재 윈도우 종료) |
| 다음 윈도우 이동 | Ctrl+b, n |
| 이전 윈도우 이동 | Ctrl+b, p |
| 마지막 윈도우 이동 | Ctrl+b, l |
| 특정 윈도우 이동 | Ctrl+b, 0-9 (숫자) |
| 세로 분할 (Pane) | Ctrl+b, % (윈도우를 왼쪽-오른쪽으로 분할) |
| 가로 분할 (Pane) | Ctrl+b, " (윈도우를 위아래로 분할) |
| 팬(Pane) 전환 | Ctrl+b, o 또는 방향키 (위치 순환) |
| 팬 닫기 | Ctrl+b, x 또는 exit (현재 팬 종료) |
| 복사 모드 (스크롤) | Ctrl+b, [ (버퍼 스크롤모드 진입) |
| 붙여넣기 (Paste) | Ctrl+b, ] (복사 버퍼 내용 붙여넣기) |
| 명령 프롬프트 | Ctrl+b, : (tmux 명령 모드) |
| 모든 키 바인딩 보기 | Ctrl+b, ? (단축키 목록 표시) |
07. 예제
아래는 Tmux를 사용한 간단한 예시 작업입니다.
새로운 세션 생성
tmux new -s test
- 새로운 Tmux 세션(test)가 생성되어 현재 터미널을 제어합니다.
윈도우 분할
- 터미널 안에서 분할하려면 접두사(
Ctrl+b) 누른 뒤%를 입력해 세로 분할 하거나,"(큰따옴표)로 가로 분할이 가능합니다. - 터미널 명령으로도 가능합니다.
tmux split-window -h # -h: horizontal (좌우로 분할)
tmux split-window -v # -v: vertical (상하로 분할)

백그라운드
Tmux 내에서 Ctrl + b를 누른 뒤 d를 입력한다면 세션을 분리(Detach) 합니다. 이렇게하면 Tmux는 백그라운드에서 계속해서 실행되고 있습니다.
세션 재접속
나중에 동일한 세션으로 접근을 하고 싶다면 다음과 같이 입력합니다.
tmux attach -t test
이를 통해 다시 세션으로 돌아가 작업을 이어나갈 수 있습니다.
Comments
Sign in with GitHub to leave a comment.