tmux

Sunwoo Pi·2022년 8월 19일
1
post-thumbnail

Session

Window

Pane

tmux : terminal multiplexer

Session

tmux가 관리하는 가장 큰 실행 단위.
Session을 종료하지 않고 detach한 상태라면 Session은 백그라운드에서 계속 실행된다.
추후 Session에 다시 attach할 수 있다.

Window

Terminal 화면으로 보고 있는 View.
하나의 Session을 여러 개의 Window로 구성 가능.

Pane

하나의 Window를 여러 개의 Pane으로 구성 가능.

tmux 설치

sudo apt install tmux # Ubuntu 및 Debian에 tmux 설치

관련 명령어들

Session 외부 명령어

tmux # 세션 생성

tmux new -s [SessionNumber or SessionName] # 세션 생성
	# ex) tmux new -s Pi
    
tmux ls # 세션 목록 보기

tmux attach -t [SessionNumber or SessionName] # 세션 다시 접속하기
	# ex) tmux attach -t 0
    
tmux kill-session -t [SessionNumber or SessionName] # 세션 종료
	# ex) tmux kill-session -t Pi

Session 내부 명령어 및 명령키

exit # 세션 종료

# PREFIX -> ctrl + b
(PREFIX 누른 후) $ # 세션 이름 수정
(PREFIX 누른 후) d # 세션을 유지한 상태에서 나가기 (detach)

Window (Session 내부 명령키)

ctrl + d # pane -> window 순으로 삭제

# 아래 두 명령어는 해당 Session 안의 아무 윈도우에서나 실행 가능
tmux swap-window -s 0 -t 1 # 0번, 1번 윈도우의 위치를 변경
tmux move-window -s 3 -t 1 # 3번 윈도우의 위치를 1번 위치로 이동

# PREFIX -> ctrl + b
(PREFIX 누른 후) w # 모든 윈도우 목록 보기
(PREFIX 누른 후) c # 새 윈도우 생성
(PREFIX 누른 후) , # 윈도우 이름 수정

(PREFIX 누른 후) 0-9 # window number
(PREFIX 누른 후) n # next window
(PREFIX 누른 후) p # prev window
(PREFIX 누른 후) l # last window
(PREFIX 누른 후) f # find by name (윈도우 이동)

Pane (Session 내부 명령키)

ctrl + d # pane -> window 순으로 삭제

tmux clear-history # Clear Terminal History (tmux 내부에서 clear 명령어 입력 시 History가 위로 올라갈 뿐, 그대로 유지)

# PREFIX -> ctrl + b
(PREFIX 누른 후) % # 세로로 화면 분할
(PREFIX 누른 후) " # 가로로 화면 분할

(PREFIX 누른 후) z # 화면이 분할되어 있을 때, 특정 pane을 확대
(PREFIX 누른 후) 방향키 # Session 내 pane 이동 (분할 된 부분을 의미)
(PREFIX 누른 후) alt + 방향 키 # 화면 크기 조절

# 화면 크기 조절
# 명령어 모드 진입 -> (PREFIX 누른 후) :
(명령어 모드 진입 후) resize-pane -L 5 # left
(명령어 모드 진입 후) resize-pane -R 3 # right
(명령어 모드 진입 후) resize-pane -U 2 # up
(명령어 모드 진입 후) resize-pane -D 8 # down

(PREFIX 누른 후) spacebar # 화면 레이아웃 변경

(PREFIX 누른 후) Page Up # 화면 스크롤
(PREFIX 누른 후) Page Down # 화면 스크롤
	esc # 빠져나오기

그 외 명령키 및 Option 지정

# PREFIX -> ctrl + b
(PREFIX 누른 후) ? # 단축키 목록

# 명령어 모드 진입 -> (PREFIX 누른 후) :
(명령어 모드 진입 후) set -g <option-name> <option-value> # 옵션 설정
	ex) (명령어 모드 진입 후) setw -g status-style bg=white,fg=black # 하단 Status Bar 및 Font 색깔 지정
    
(명령어 모드 진입 후) setw -g <option-name> <option-value> # 윈도우 옵션 설정
    ex) (명령어 모드 진입 후) setw -g window-status-current-style bg=red # 하단 Status Bar의 Focus된 Window 색깔 지정
        
(명령어 모드 진입 후) bind-key [-cnr] [-t key-table] key command [arguments] # 키 바인딩
(명령어 모드 진입 후) unbind-key [-acn] [-t key-table] key # 키 언바인딩

~/.tmux.conf에 아래 내용 입력하여 tmux Config 설정해주기

# ctrl + b 대신 ctrl + a 로 PREFIX 사용 가능
unbind C-b
set-option -g prefix C-a
bind-key C-a send-prefix

# ctrl + k로 Clear Terminal History (in MacOS)
bind -n C-k clear-history

# 하단 Status Bar 및 Border Line 색깔 지정
setw -g status-style bg=blue,fg=black
setw -g window-status-current-style bg=white
set -g pane-active-border-style fg=blue

# Pane을 이동할 때 마우스 사용 가능
set -g mouse on

# 마우스 휠을 이용한 스크롤 가능
set -g terminal-overrides 'xterm*:smcup@:rmcup@'

이후 Terminal에 아래 명령어 입력하여 ~/.tmux.conf 적용시켜 tmux Config 자동 설정되게 하기

tmux source-file ~/.tmux.conf

<참고>
https://hbase.tistory.com/200
<이미지 출처>
https://knackin.tistory.com/4

profile
어려운 게 제일 싫어😝

0개의 댓글