Heesung Yang
[명령어] tmux
tmux 란?
ssh 접속을 하거나 로컬 터미널에 접근하면 한번에 하나의 터미널만 사용할 수 있다. tmux는 여러개의 터미널을 동시에 사용할 수 있게 해주는 툴이다.
예를 들면,
- 원격 서버의 로그를 보면서
- 동시에 해당 서버에서 다른 명령어를 사용해야 하는 경우
두 개의 ssh session(두 번 접속)을 만들지 않고 한 개의 ssh session으로 여러개의 터미널을 만들어서 위와 같은 일들을 동시에 할 수 있게 해주는 툴이라는 의미이다.
또한 ssh 접속 후 생성한 tmux session은 ssh 접속을 종료한 이후에도 서버상에 계속 존재하게 된다. (서버 재부팅 전까지) 이를 활용하여 자신만의 터미널 환경을 셋팅해두고, 서버 접속 시마다 해당 터미널 환경을 계속 이용할 수도 있다.
기본 개념
tmux
는 크게Session
,Window
,Pane
로 구성되어 있다.1개
의Session
은N개
의Window
를 가질 수 있다.1개
의Window
는N개
의Pane
을 가질 수 있다.
tmux
의 모든 명령은Ctrl+b
키를 누른 후 다른 키를 입력하는 방식이다.Ctrl+b
는 prefix key라고 부르며, 변경 가능하다.
Session
create
# session name이 임의로 정해짐
~$ tmux
# session name을 지정하여 tmux session 생성
# 아례 예는 test_session 이라는 이름으로 tmux session 생성
~$ tmux n -s test_session
# session name과 기본 window 이름을 지정하여 tmux session 생성
# 아례 예는 test_session 이라는 이름으로 tmux session 생성하면서
# 해당 session의 기본 window명을 test_window로 설정
~$ tmux n -s test_session -n test_window
list
~$ tmux ls
2: 1 windows (created Mon Feb 19 15:17:33 2018) [272x62]
test-session: 2 windows (created Mon Feb 19 15:10:25 2018) [270x69] (attached)
attach/detach
# attach
~$ tmux a -t ${session_name}
# detach
# tmux session에 접속한 상태에서 아래 키를 순차적으로 입력
Ctrl+b, d
rename
# tmux session에 접속한 상태에서 아래 키를 순차적으로 입력
~$ Ctrl+b, $
switch
# 서버에 생성되어 있는 tmux session 리스트가 출력된다.
# 변경하고 싶은 session으로 이동한 후 엔터를 누르면 변경된다.
~$ Ctrl+b, s
Window
Ctrl+b, c
: 생성Ctrl+b, w
: 목록 보기, 화살표 키로 이동 가능Ctrl+b, ,
: 윈도우 이름 수정Ctrl+b, 숫자
: 윈도우 변경Ctrl+b, n
: 다음 윈도우Ctrl+b, p
: 이전 윈도
Pane
Ctrl+b, "
: 가로 분할Ctrl+b, %
: 세로 분할Ctrl+b, q
: 각 Pane 에 번호 표시, 해당 번호를 누르면 이동Ctrl+b, 방향키
: 이동Ctrl+b, o
: 순서대로 이동Ctrl+d
: 삭제Ctrl+b, Alt+방향키
: 크기 조정Ctrl+b, {
: 현재 Pane을 왼쪽으로 이동Ctrl+b, }
: 현재 Pane을 오른쪽으로 이동Ctrl+b, space
: 크기 균등 분할, 입력시마다 분할 Layout 변경됨
Copy & Paste
Ctrl+b, [
: 복사 모드로 전환- vi key-binding을 했을 경우(setw -g mode-keys vi)
- space를 누르면 visual block mode 로 진입
- block 지정 완료 후 enter 입력. (복사 완료)
Ctrl+b, ]
: 붙여 넣기
모든 Pane 동시 입력 on/off
Ctrl+b, :setw synchronize-panes
설정 파일 읽기
# Reload config
~$ Ctrl+b, :source-file ~/.tmux.conf # inside tmux session
~$ tmux source-file ~/.tmux.conf # outsite tmux session
Previous post
[명령어] firewalldNext post
Makefile 정리