안드로이드에서 Termux로 작업하다 보면 앱 전환/절전 정책 때문에 터미널 작업이 끊기거나, 작은 화면에서 여러 작업을 동시에 보기 어려운 경우가 많습니다. tmux는 한 화면(한 Termux) 안에서 작업을 “묶어서” 관리하고, 필요할 때 세션을 분리(Detach)해 백그라운드로 안전하게 돌려둘 수 있게 해줍니다. 모바일에서는 특히 화면 분할(Pane)보다 “탭 전환”처럼 쓰는 윈도우(Window)가 생산성을 크게 올려줍니다.
tmux 핵심 개념 3가지
tmux는 크게 Session / Window / Pane 3단위로 생각하면 이해가 끝납니다.
- Session: 작업 묶음(프로젝트 단위). “개발 세션”, “서버 모니터링 세션”처럼 큰 컨텍스트를 보관합니다.
- Window: 세션 안의 탭(브라우저 탭 같은 느낌). 모바일에서는 이게 메인입니다.
- Pane: 한 윈도우를 분할한 칸. 화면이 작아서 자주 쓰진 않지만, 필요할 때 빠르게 나눠볼 수 있습니다.
또 하나의 규칙은 tmux 단축키가 대부분 “Prefix(기본: Ctrl+b)”로 시작한다는 점입니다. 즉, Ctrl+b를 먼저 누른 뒤 다음 키를 눌러 동작을 실행합니다.
Termux에서 기본 세팅
Termux에서는 보통 다음처럼 설치합니다.
pkg update
pkg install tmux
안드로이드에서는 백그라운드에서 앱이 죽지 않도록 “깨워두기”가 중요합니다. 상황에 따라 방법이 다를 수 있지만, 흔히 쓰는 방식은 다음 둘 중 하나입니다.
- Termux 알림(상단 드롭다운)에서 Wakelock(또는 유사 옵션) 활성화
- Termux 명령으로 wakelock 유지(지원되는 환경이라면)
또한 스마트폰 키보드에는 Ctrl/방향키가 불편하므로, Termux의 Extra keys(상단 확장 키 줄)를 켜두면 Prefix 입력이 훨씬 쉬워집니다.
자주 쓰는 단축키 치트시트
아래 표만 익혀도 “Termux에서 tmux 쓰는 맛”이 바로 납니다. Prefix는 Ctrl + b를 의미합니다.
| 목적 | 단축키/명령 |
|---|---|
| 새 세션 시작 | tmux new -s dev |
| 세션 목록 보기 | tmux ls |
| 세션 재접속(attach) | tmux a -t dev (또는 tmux attach -t dev) |
| 세션 분리(detach) | Prefix + d |
| 새 윈도우(탭) | Prefix + c |
| 다음/이전 윈도우 | Prefix + n / Prefix + p |
| 윈도우 이름 바꾸기 | Prefix + , |
| 세로/가로 분할(Pane) | Prefix + % / Prefix + " |
| Pane 이동 | Prefix + 방향키(환경에 따라 h/j/k/l) |
| Pane 닫기 | Prefix + x |
| Pane 확대/축소(줌) | Prefix + z |
모바일에서는 “윈도우 이동(탭 전환)” + “detach/attach” 조합을 가장 많이 씁니다. Pane은 정말 필요할 때만 쓰고, 썼다면 Prefix + z로 확대해서 가독성을 확보하는 식이 편합니다.
실전 예제: code-server를 0.0.0.0에 바인딩하고 detach
목표는 “Termux 안에서 code-server를 계속 돌려두고, 내가 Termux에서 빠져나와도 서버는 유지”입니다. 아래는 code-server가 이미 설치되어 있다고 가정한 가장 단순한 흐름입니다(설치 방식은 환경마다 다를 수 있어 본문에서는 생략).
1) tmux 세션 만들기
tmux new -s dev
2) (권장) 윈도우 이름 정리
서버용 윈도우를 알아보기 쉽게 이름을 바꿉니다.
- Prefix +
,누른 뒤code-server입력 후 Enter
3) code-server 실행 (0.0.0.0 바인딩)
같은 Wi‑Fi의 다른 기기(PC/태블릿)에서 접속하려면 0.0.0.0로 바인딩합니다.
code-server --bind-addr 0.0.0.0:8080
주의할 점이 있습니다. 0.0.0.0은 “모든 인터페이스에서 받겠다”는 의미라서, 네트워크에 따라 외부 노출 위험이 생길 수 있습니다. 가능한 한 신뢰할 수 있는 내부망에서만 쓰고, 인증(비밀번호) 설정을 확인하거나 필요하면 방화벽/테더링/포트 변경 같은 추가 안전장치를 고려하세요.
4) 서버는 두고, 나는 빠져나오기(detach)
서버 로그가 올라오고 있는 상태에서:
- Prefix +
d
그러면 원래 셸로 돌아오며(세션에서 빠져나옴), code-server는 tmux 세션 안에서 계속 실행됩니다.
5) 나중에 다시 들어가기(attach)
tmux ls
tmux a -t dev
이 패턴을 익히면 “폰에서는 서버만 띄워두고, 실제 코딩은 다른 기기 브라우저로 접속” 같은 운영이 굉장히 편해집니다.
댓글
댓글 쓰기