하나의 terminal에서 여러 shell과 program을 session, window, pane으로 구성하고 detach 후 다시 attach할 수 있는 terminal multiplexer.
# Debian / Ubuntu sudo apt update sudo apt install tmux # Fedora sudo dnf install tmux # RHEL / CentOS sudo yum install tmux # macOS Homebrew brew install tmux # 설치 확인 tmux -V
winget 설치 방법이 안내되지 않는다. Windows에서는 WSL의 Linux distribution 안에 설치하는 방식을 고려한다.tmux [GLOBAL_OPTIONS] [COMMAND [COMMAND_OPTIONS] [ARGS...]]
tmux [GLOBAL_OPTIONS] [COMMAND] [COMMAND_OPTIONS] [ARGS…]tmux new-session -s NAMEtmux attach-session -t NAMEtmux split-window [-h|-v]-f FILE: 기본 config 대신 지정한 file을 읽는다.-L SOCKET_NAME: 별도 server socket 이름을 사용한다.-S SOCKET_PATH: server socket의 전체 경로를 지정한다.-V: tmux version을 출력한다.-v: verbose logging을 사용한다. 반복하면 verbosity가 증가한다.-s는 new-session의 option이다.
tmux new-session [-AdDEPX] [-s NAME]: 새 session을 만든다. alias는 new다.tmux attach-session [-dErx] [-t TARGET_SESSION]: 기존 session에 attach한다. alias는 attach다.tmux list-sessions: session 목록을 표시한다. alias는 ls다.tmux rename-session -t TARGET_SESSION NEW_NAME: session 이름을 바꾼다.tmux kill-session -t TARGET_SESSION: 지정한 session을 종료한다.tmux new-window [-dn] [-n NAME]: 현재 session에 window를 만든다. alias는 neww다.tmux list-windows [-t TARGET_SESSION]: window 목록을 표시한다. alias는 lsw다.tmux split-window [-hv] [-t TARGET_PANE]: pane을 위아래 또는 좌우로 나눈다. alias는 splitw다.tmux select-pane [-UDLR] [-t TARGET_PANE]: active pane을 바꾼다.tmux resize-pane [-UDLR] [ADJUSTMENT]: pane 크기를 조절한다.tmux kill-pane [-t TARGET_PANE]: 지정한 pane을 종료한다.tmux list-commands: 지원 command와 signature를 표시한다. alias는 lscm이다.tmux list-keys [-T KEY_TABLE]: key binding을 표시한다. alias는 lsk다.tmux display-message -p FORMAT: format을 평가해 출력한다.tmux source-file PATH: config file을 다시 읽는다. alias는 source다.tmux kill-server는 해당 server의 모든 session과 그 안의 process를 종료한다. 먼저 tmux ls로 대상을 확인하고, 단일 session만 닫을 때는 kill-session -t NAME을 사용한다.
# work session이 있으면 attach하고 없으면 생성 tmux new-session -As work # background에서 session 생성 tmux new-session -d -s build # session 확인 및 attach tmux list-sessions tmux attach-session -t build
# 이름이 logs인 window 생성 tmux new-window -n logs # 좌우 분할 tmux split-window -h # 위아래 분할 tmux split-window -v # pane 목록과 id 확인 tmux list-panes -a -F '#{session_name}:#{window_index}.#{pane_index} #{pane_id}'
# remote host에서 session 생성 또는 재접속 ssh server tmux new-session -As work
~/.tmux.conf다.$XDG_CONFIG_HOME/tmux/tmux.conf도 지원한다.no server running은 실행 중인 tmux server가 없다는 뜻이다. 새 session을 만들거나 socket option이 일치하는지 확인한다.TERM과 tmux의 default-terminal 설정을 확인한다.SSH_AUTH_SOCK을 갱신한다.man 1 tmux와 tmux list-commands로 확인한다.tmux -V를 먼저 확인한다.winget 설치 안내는 없다. Windows에서는 WSL, Linux VM 또는 remote Unix host를 사용한다.