Tmux는 Terminal Multiplexer의 약자로, 한 리눅스 서버에서 여러 터미널로 분할하여 작업할 수 있게 만드는 도구이다.
Tmux 요소에는 session, window, pane이 있다. 한 세션에 여러 윈도우가 있고, 한 윈도우에 여러 pane이 있는 계층적 구조이다.
리눅스 서버에 원격으로 접속할 때, shell 창을 끄거나 ssh 연결이 끊어져도 서버에 시킨 작업을 유지시키는 역할을 한다. 예컨대 원격 서버에 Tmux 세션을 생성해놓으면, ssh 연결과 무관히 서버에는 Tmux 세션이 그대로 남아있고, 세션에서 실행시킨 작업은 멈추지 않는다.
세션은 attached와 detached 두 상태를 가진다. attach는 포어그라운드에 tmux 세션 창이 떠있는 상태이다. detached 상태에서는 백그라운드로 터미널이 존재하며, 터미널에 입력하고 끝나지 않은 명령는 그대로 실행된다.
$ tmux # 세션 생성
# 세션 진입하여 [Ctrl + B] - d
[detached (from session 0)]
$ tmux ls # 세션 목록 조회
0: 1 windows (created Wed Jan 11 16:23:14 2023)
$ tmux attach -t 0 # 세션 0(session number 혹은 session name) attach
[detached (from session 0)]