tmux
{% include figure image_path="/assets/images/tmux-logo.png" caption=“tmux is a terminal multiplexer.” %}
tmux 설치
참고링크를 통해 설치를 완료하자.
tmux 용어
- Prefix :
ctrl + b
와 단축키를 통해 지정된 동작을 수행한다. - Session : tmux 실행 단위로 여러개의 Window로 구성된다.
- Window : Session 내의 화면으로 여러개의 Window를 가질 수 있다.
- Pane : 하나의 Window 내에서 화면을 분할 하여 사용할 때를 분할된 화면을 의미한다.
명령어 정리
ctrl + b, <key>
명령어 모드의 키는 :
(colon)이다.
ctrl + b, :
Session
# Session 시작
$> tmux
# 새로운 Session을 Session 이름과 시작
λ tmux new -s <session-name>
or
λ tmux new-session -s <session-name>
# Session 종료 (tmux 실행시에)
$> exit
# Session 목록
λ tmux ls
or
λ tmux list-sessions
# Attach Session
λ tmux attach -t <session-number or session-name>
# Detach Session
$> tmux kill-session -t <session-number or session-name>
or
<prefix> + d
# Session 이름 수정
<prefix> + $
# 모든 Session 종료
$> tmux kill-server
Window
# Windown 목록
λ tmux list-windows
# 윈도우 생성
<prefix> + c
# 세션 생성시 윈도우랑 같이 만들기.
λ tmux new -s <session-name> -n <window-name>
# 윈도우 이름 수정
<prefix> + ,
# 윈도우 종료
<prefix>, &
or
ctrl + d
# 윈도우 이동
<prefix> + 0-9 : window nubmer
w : choose-tree -Zw
s : choose-tree -Zs
f : find by name
# 윈도우 위치 변경
<prefix> + :
swap-window [-d] [-s src-window] [-t dst-window]
(alias : swapw)
ex) swap-window -s 3 -t 1 # 3 번째 윈도우를 1번째 위치로 이동
swapw -t -1 # 현재 윈도우를 왼쪽으로 1칸 이동
swapw -t +2 # 현재 윈도우를 오른쪽으로 2칸 이동
Pane
# Pane 나누기
<prefix> + % : 세로 나누기
" : 가로 나누기
# Pane 이동
<prefix> + q : 화면에 나오는 Pane 번호
o : 순서대로 이동
방향키 : 방향키로 이동
<prefix> + VI 이동키(H,J,K,L)
# Pane 삭제
<prefix> + x : 현재 Pane 삭제(tumx 명령창에 y/n 선택 여부를 결정할 수 있다)
Ctrl + d : 선택 여부 없이 바로 Pane 삭제
# Pane 크기 변경
<prefix> + <Alt> + 방향키 : 현재 팬의 크기를 변경한다
or
<prefix> + :
resize-pane -L 10
-R 10
-D 10
-U 10
# Pane 레이아웃 변경
<prefix> + spacebar : 키를 누를 때마다 레이아웃이 변경된다
# Pane 레이아웃 이동
<prefix> + { : 현재 Pane을 왼쪽으로 이동 시킨다.
+ } : 현재 Pane을 오른쪽으로 이동 시킨다.
Copy Mode
# Copy Mode
<prefix> + [
or
<prefix> + PgUp
# Copy Mode 종료
q or ESC
# Move
arrow : 커서 이동
vi : vi key mapping
기타
# 단축키 목록 조회
<prefix> + ? : 단축키 목록을 보여줍니다.
# key binding
bind-key [-cnr] [-t key-table] key command [arguments]
(alias: bind)
unbind-key [-acn] [t key-table] key
(alias: unbind)
# alias를 통해 bind 설정을 할 수 있습니다.
ex) 기본 <prefix>를 변경하는 예제 입니다.
unbind C-b
set -g prefix C-a
bind C-a send-prefix
# option 설정
set -g <option-name> <option-value> : set-option
setw -g <option-name> <option-value> : set-window-option
설정 저장
tmux 설정은 ~/.tmux.conf
를 통해 설정을 읽는다.
- dotfiles에 사용중인 설정을 추가해 놨다.
show 옵션을 통한 현재 설정 확인
$>tmux show --help
usage: show-options [-AgHpqsvw] [-t target-pane] [option]
# 현재 설정된 set -g 옵션을 보여 줍니다.
$> tmux show -g
or
명령어 모드(<prefix> + :)에서 show -g
현재 설정을 설정 파일로 백업 및 적용하기
$> tmux show -g | sed 's/^/set -g /' > ~/.tmux.current.conf
# 백업한 파일을 적용하기 위해서는 source-file 옵션을 사용 합니다.
$> tmux show source-file ~/.tmux.current.conf
or
명령어 모드(<prefix> + :)에서 source-file ~/.tmux.current.conf