tmux 너로 정했다 – 터미널 하나로 모든 걸 해결하는 법

혹시 SSH로 서버에 접속해서 작업하다가 연결이 끊겨서 멘붕 와본 적 있으신가요? 아니면 터미널 창을 10개쯤 띄워놓고 “이게 어느 서버였지…?” 하면서 한참 헤매본 적도요.
저도 딱 그랬어요. 그러다 찾게 된 게 바로 tmux입니다!
tmux는 Terminal Multiplexer의 약자로, 터미널 하나를 여러 개로 쪼개서 쓸 수 있게 해주는 도구예요. 그런데 이게 단순히 화면 분할만 되는 게 아니라, 세션을 유지해줘서 SSH 연결이 끊겨도 작업이 그대로 남아있는 게 진짜 꿀포인트더라고요.
오늘은 tmux를 어떻게 쓰는지, 왜 알아두면 좋은지 차근차근 정리해볼게요.
tmux가 뭔데?
tmux는 터미널 세션을 관리하는 프로그램이에요.
쉽게 말하면 터미널 안에서 돌아가는 또 다른 ‘터미널 관리자’ 같은 느낌이죠. 화면을 가로로, 세로로 쪼개서 여러 프로그램을 동시에 띄울 수도 있고요.
그런데 진짜 강력한 건 역시 세션 유지 기능입니다!
서버에서 긴 작업을 돌려놓고 퇴근했는데 네트워크가 끊기더라도, 다음날 다시 접속하면 작업이 그대로 돌아가고 있어요. 이름만 봐도 감이 오듯이 multiplexer니까 여러 터미널을 다중으로 관리하는 거라고 보면 됩니다.
설치도 정말 간단해요.
# Ubuntu/Debian
sudo apt-get install tmux
macOS
brew install tmux
CentOS/RHEL
sudo yum install tmux
설치한 다음에 `tmux`라고 치면 바로 실행됩니다!
기본 사용법 - 이것만 알아도 절반은 먹고 들어감
tmux는 기본적으로 `Ctrl + b`를 prefix 키로 사용해요.
prefix 키는 “tmux야, 지금부터 명령할게” 하고 신호를 주는 키라고 생각하면 이해가 쉬워요. 그래서 대부분의 명령은 `Ctrl + b`를 누른 다음, 다른 키를 이어서 누르는 방식으로 동작합니다.
자주 쓰는 명령어들을 한 번에 정리해볼게요.
세션 관련
- 새 세션 시작: `tmux`
- 이름 붙여서 세션 시작: `tmux new -s 세션이름`
- 세션에서 빠져나오기(detach): `Ctrl + b` 후 `d`
- 세션 목록 보기: `tmux ls`
- 세션에 다시 들어가기: `tmux attach -t 세션이름`
화면 분할
- 가로로 분할: `Ctrl + b` 후 `%`
- 세로로 분할: `Ctrl + b` 후 `"`
- 창 사이 이동: `Ctrl + b` 후 화살표 키
- 현재 창 닫기: `Ctrl + b` 후 `x`
윈도우(탭) 관리
- 새 윈도우 만들기: `Ctrl + b` 후 `c`
- 윈도우 이동: `Ctrl + b` 후 숫자 (0, 1, 2...)
- 윈도우 이름 바꾸기: `Ctrl + b` 후 `,`
이 정도만 익혀도 일상적인 작업은 대부분 커버됩니다!
실전 활용법 - 이래서 쓰는 거구나!
예시로 한 번 상황을 만들어볼게요.
서버에서 로그를 실시간으로 모니터링하면서, 동시에 코드 수정도 하고 테스트도 돌려야 하는 상황이라고 해봅시다.
# 1. 작업용 세션 시작
tmux new -s work
2. 화면을 세로로 분할 (Ctrl+b 후 ")
위쪽: 로그 모니터링
tail -f /var/log/application.log
아래쪽으로 이동 (Ctrl+b 후 아래 화살표)
3. 다시 가로로 분할 (Ctrl+b 후 %)
왼쪽: vim으로 코드 수정
vim app.py
오른쪽으로 이동 (Ctrl+b 후 오른쪽 화살표)
오른쪽: 테스트 실행
pytest tests/
이렇게 해두면 터미널 하나에서 로그도 보고, 코드도 수정하고, 테스트까지 한 번에 돌릴 수 있어요!

이미지 출처: YouTube
그리고 퇴근할 때는 `Ctrl + b` 후 `d`를 눌러서 detach만 해두면 됩니다.
다음날 출근해서 `tmux attach -t work`만 하면 어제 작업하던 상태 그대로 다시 이어서 할 수 있어요. 처음 해보면 은근히 감동입니다.
설정 파일로 더 편하게 쓰기
tmux는 `~/.tmux.conf` 파일로 커스터마이징할 수 있어요.
제가 자주 쓰는 설정 몇 가지를 공유해볼게요.
# prefix 키를 Ctrl+a로 변경 (Ctrl+b보다 편함)
unbind C-b
set -g prefix C-a
bind C-a send-prefix
마우스 사용 가능하게
set -g mouse on
창 번호를 0이 아닌 1부터 시작
set -g base-index 1
setw -g pane-base-index 1
화면 분할을 더 직관적인 키로 변경
bind | split-window -h
bind - split-window -v
창 이동을 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
이 설정을 적용해두면 확실히 더 편해요.
마우스로 창 크기 조절도 가능하고, `|` 키랑 `-` 키로 분할할 수 있어서 손에 익으면 꽤 직관적이거든요.
설정 파일을 수정한 뒤에는 tmux 안에서 `Ctrl + b` 후 `:`를 누르고 `source-file ~/.tmux.conf`를 입력하면 바로 적용됩니다.
tmux 쓰면서 자주 하는 실수들
처음 tmux를 쓸 때 은근히 많이들 겪는 실수들이 있어요.
1. 세션 안에서 세션 실행하기
- tmux 안에서 또 tmux를 실행하면 세션이 중첩됩니다. 그러면 prefix 키를 두 번 눌러야 하는 상황도 생겨서 꽤 헷갈려요.
2. 창 닫을 때 exit 대신 `Ctrl+b x` 사용
- exit로 종료해도 되긴 하지만, `Ctrl+b x`를 쓰면 확인 메시지도 뜨고 조금 더 안전하게 닫을 수 있어요.
3. 세션 이름 안 붙이고 쓰기
- 세션을 여러 개 만들어두면 나중에 “이게 뭐 하던 세션이었지?” 하고 헷갈리기 쉽습니다. 가능하면 꼭 이름 붙여서 만들어두세요!
4. 화면 분할만 쓰고 윈도우는 안 쓰기
- 화면을 너무 잘게 쪼개면 오히려 불편해져요. 윈도우(탭)까지 같이 쓰면 훨씬 깔끔해집니다.
플러그인으로 더 강력하게
tmux는 플러그인도 지원해요!
TPM(Tmux Plugin Manager)이라는 플러그인 관리자를 설치하면 다양한 기능을 쉽게 추가할 수 있습니다.
# TPM 설치
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
그리고 `~/.tmux.conf`에 아래 내용을 추가하면 됩니다.
# 플러그인 목록
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'tmux-plugins/tmux-resurrect' # 세션 저장/복원
set -g @plugin 'tmux-plugins/tmux-continuum' # 자동 세션 저장
TPM 초기화 (맨 아래에 위치)
run '~/.tmux/plugins/tpm/tpm'
tmux-resurrect는 특히 유용한데, 서버가 재부팅되더라도 세션을 복원할 수 있거든요!
`Ctrl + b` 후 `Ctrl + s`로 저장하고, `Ctrl + b` 후 `Ctrl + r`로 복원하면 됩니다.
다른 도구들과 비교하면?
tmux 말고도 screen이라는 비슷한 도구가 있어요.
screen도 세션 관리는 가능하지만, tmux가 더 현대적이고 기능도 더 많아요. 화면 분할도 tmux 쪽이 훨씬 직관적인 편이고요.
VSCode 같은 에디터에도 터미널 분할 기능이 있긴 한데, 서버 작업에서는 tmux가 훨씬 가볍고 빠릅니다. 특히 SSH 연결 끊김에 대비하려면 tmux가 답이에요.
tmux는 한 번 익숙해지면 “이걸 왜 이제야 썼지?” 싶은 도구예요.
저도 처음엔 “굳이 이걸 배워야 하나…” 싶었는데, 쓰다 보니까 생산성이 확실히 올라가더라고요. 특히 서버 여러 대 관리할 때나, 긴 배치 작업 돌릴 때는 거의 필수템입니다.
처음엔 키 조합이 낯설 수 있지만, 자주 쓰다 보면 금방 손에 익어요. 일단 세션 만들기 / detach / attach 이 세 가지만 먼저 익혀도 충분히 유용하니까 부담 없이 시작해보세요.
모두 tmux 마스터하셔서 터미널 라이프 편하게 누리시길 바랄게요 🙂
이전 글 보기