{% 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

참고링크