Heesung Yang

[명령어] tmux

tmux 란?

ssh 접속을 하거나 로컬 터미널에 접근하면 한번에 하나의 터미널만 사용할 수 있다. tmux는 여러개의 터미널을 동시에 사용할 수 있게 해주는 툴이다.

예를 들면,

  • 원격 서버의 로그를 보면서
  • 동시에 해당 서버에서 다른 명령어를 사용해야 하는 경우

두 개의 ssh session(두 번 접속)을 만들지 않고 한 개의 ssh session으로 여러개의 터미널을 만들어서 위와 같은 일들을 동시에 할 수 있게 해주는 툴이라는 의미이다.

또한 ssh 접속 후 생성한 tmux session은 ssh 접속을 종료한 이후에도 서버상에 계속 존재하게 된다. (서버 재부팅 전까지) 이를 활용하여 자신만의 터미널 환경을 셋팅해두고, 서버 접속 시마다 해당 터미널 환경을 계속 이용할 수도 있다.

기본 개념

  • tmux는 크게 Session, Window, Pane 로 구성되어 있다.
    • 1개SessionN개Window를 가질 수 있다.
    • 1개WindowN개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

[명령어] firewalld

Next post

Makefile 정리