안녕하세요! 오늘은 tmux(Terminal Multiplexer) 사용법과 주요 단축키에 대한 정리 글입니다. 서버에서 장시간 스크립트를 실행하거나, SSH 접속이 끊겨도 작업을 유지하고 싶을 때 tmux를 쓰면 편하다는 추천을 받았습니다만, 단축키가 익숙해지기 전까지는 계속 사용해버릇해야 될 것 같아 언제든 찾아볼 수 있게 주로 사용하는 단축키만 골라 정리해 보았습니다.
tmux란 무엇이며 왜 쓰는가?
tmux는 하나의 터미널 안에서 여러 작업 공간을 만들고, 그 작업을 백그라운드에 계속 유지할 수 있게 해주는 도구입니다.
- 용도: 서버에서 장시간 실행되는 스크립트, 크롤러, 자동매매 봇, 백테스트 등을 돌리거나, 터미널 화면을 분할해서 쓰고 싶을 때 유용합니다.
- Prefix(접두어): tmux 명령의 시작은 [Ctrl + b]입니다. 이 키를 먼저 누르고 손을 뗀 다음, 다른 키를 입력하는 방식인데, 익숙해지려면 자주 사용해 봐야겠습니다.
- 주의: window OS는 WSL 로만 사용 가능하다고 합니다. (제가 잘 모르는 걸 수도 있지만...)
세션(Session) 관리
세션은 tmux 작업 공간의 전체 단위입니다. 세션 이름을 지정해 관리하는 것이 나중에 찾기 훨씬 수월합니다.
| 작업 | 명령어 / 단축키 |
|---|---|
| 새 세션 생성 | tmux new -s [세션명] |
| 세션 목록 확인 | tmux ls |
| 세션 밖으로 나가기 (Detach) | [Ctrl + b] → [d] |
| 기존 세션 재접속 (Attach) | tmux a -t [세션명] |
| 특정 세션 종료 | tmux kill-session -t [세션명] |
Detach 기능을 사용하면 터미널을 닫아도 서버 작업은 계속 살아있게 됩니다. 개인적으로는 이것이 tmux를 쓰는 가장 중요한 이유라고 생각합니다.
윈도우(Window)와 패널(Pane) 단축키
하나의 세션 안에서 탭(Window)을 나누거나, 화면(Pane)을 분할할 때 사용하는 단축키입니다.
윈도우(Window) - 브라우저 탭 개념
- 새 윈도우 생성: [Ctrl + b] → [c]
- 다음/이전 윈도우 이동: [Ctrl + b] → [n] / [p]
- 윈도우 이름 변경: [Ctrl + b] → [,]
패널(Pane) - 화면 분할 개념
- 좌우 분할: [Ctrl + b] → [%]
- 위아래 분할: [Ctrl + b] → ["]
- 패널 간 이동: [Ctrl + b] → [방향키]
- 패널 전체 화면/복귀: [Ctrl + b] → [z]
스크롤 모드 및 실전 팁
tmux 안에서는 마우스 스크롤이 바로 되지 않을 수 있습니다. 이때는 아래 모드를 활용하면 됩니다.
- 스크롤 모드 진입: [Ctrl + b] → [[]
- 스크롤 모드 종료: [q]
실제로는 아래 흐름만 익혀도 충분히 자주 사용할 수 있습니다.
tmux new -s work
위 명령어로 세션을 열고 작업을 시작합니다.
python main.py
작업을 돌려둔 뒤에는 아래 단축키로 세션 밖으로 빠져나옵니다.
Ctrl + b → d
나중에 다시 확인하고 싶을 때는 아래 명령어로 접속합니다.
tmux a -t work
처음에는 단축키가 낯설지만, 위의 최소 암기 세트만 익혀도 웬만한 서버 작업은 충분히 가능합니다. 저처럼 단축키를 자주 잊어버리는 분들께 이 정리 글이 도움이 되었으면 좋겠습니다.
해당 기능을 사용하는 분들께 도움이 되면 좋겠습니다. 감사합니다.