$ sudo apt-get install tmux
위의 명령어를 실행하면 tmux 설치가 가능하다.
그리고 아래의 명령어를 터미널에 입력하여 tmux를 실행한다.
$ tmux
# start tmux session with (name)
$ tmux new -s (name)
tmux는 기본적으로 Ctrl + b
와 다른 키의 조합으로 모든 명령을 실행하게 된다.
그리고 tmux를 종료하고 싶을 때 Ctrl + d
로 빠져나올 수 있다.
필자는 대부분 pane만 split해서 사용하지만, 그래도 다른 개념들이 있으니 궁금하면 아래의 글을 읽거나 검색해보길 바란다.
그냥 화면을 분할해서 사용하는 목적이라면 바로 2. tmux 조합키(commands)로 넘어가면 되겠다.
tmux는 크게 window
, pane
그리고 session
이라는 개념이 있다.
Session > window > pane으로 포함관계이다.
하나의 session 내에 1개 이상의 window, 하나의 window 내에 1개 이상의 pane을 사용할 수 있다.
(아래의 비유는 이해하지 않아도 되므로 넘어가면 된다.)
일반적으로 우리가 생각하는 크롬 브라우저의 tab이 tmux의 pane과 비슷하다.
크롬 브라우저의 창 하나는 tmux의 window에 해당하고, 크롬 자체가 session이라고 말할 수 있겠다.
완벽한 비유는 아니지만 어느정도 감이 올 거라 예상한다.
GUI에서 windows + (방향키)
의 조합으로 화면 하나에 여러 창을 정렬해서 사용하는 것처럼 pane이 보인다.
그리고 window는 터미널 화면 자체가 변경된다. 윈도우 운영체제에서 가상 데스크톱을 이용하는 느낌이다.
아래는 Pane에 관한 조합키 목록이다.
Ctrl+b
+ 조합 키
를 이용하여 사용할 수 있다.
Command | Description |
---|---|
% | 수직으로 pane을 분리 |
‘’ | 평행하게 pane을 분리 |
x | 현재 pane을 kill |
o | 다음 pane으로 이동 |
h, j, k, l | vim처럼 인접한 pane들 사이를 이동 |
z | 현재 pane을 전체화면으로 |
방향키 | pane의 크기를 조정 |
q | 몇 개의 pane이 실행중인지 숫자로 반환 |
아래는 Window에 관한 조합키 목록이다.
Command | Description |
---|---|
w | list windows and select one |
, | window 이름 재설정 |
c or N | 새 윈도우 생성 |
n | 다음 window로 이동 |
p | 이전 window로 이동 |
f | window 찾기 |
& | kill window |
0-9 | window 0-9로 이동 |
우선, tmux.conf라는 파일을 생성해서 기본적으로 설정된 commands를 바꿀 수 있다.
보통 ~/
경로에 .tmux.conf
파일을 생성한다.
$ vim ~/.tmux.conf
혹시 vim이 어색하다면
a
를 통해 INSERT 모드로 진입한 후 변경 사항을 입력하고esc
를 눌러 INSERT 모드를 종료하고:wq
를 입력하여 저장하고 파일을 닫으면 편집사항을 저장할 수 있다.
그리고 아래에 예시와 같은 설정들을 입력한 후 파일을 저장하고, tmux 터미널에서 아래와 같은 명령어를 실행하면 적용할 수 있다.
$ source-file ~/.tmux.conf
기본으로 설정된 Ctrl + b
조합은 사용할 때 불편하기 때문에, Ctrl + a
로 바꿔보겠다.
#unbind default prefix and set it to Ctrl + a
unbind C-b
set -g prefix C-a
bind C-a send-prefix
위의 문장을 통해 이제 조합키를 사용할 때 Ctrl + a
와 조합키를 함께 사용할 수 있게 되었다.
이외에도 평행/수직으로 화면을 나누는 것을 |
와 -
에 bind 할 수도 있다.
그리고 마우스로 tmux pane을 이동하는 설정들도 있다.
# enable mouse scroll
set -g mouse-utf8 on
set -g mouse on
# scrollback buffer size
set -g history-limit 100000
# split panes
bind | split-window -h #horizontal
bind - split-window -v #vertical
unbind '"'
unbind %
# switch panes with Alt-arrow
bind -n M-Left select-pane -L
bind -n M-Right select-pane -R
bind -n M-Up select-pane -U
bind -n M-Down select-pane -D
예시로 들어준 configuration 외에도 다양한 설정이 있으니 한 번 찾아보면 좋겠다.
끝.