tmux

ND·2023년 7월 26일
0

Setting

목록 보기
5/5

1. tmux 설치 및 실행

$ sudo apt-get install tmux

위의 명령어를 실행하면 tmux 설치가 가능하다.
그리고 아래의 명령어를 터미널에 입력하여 tmux를 실행한다.

$ tmux

# start tmux session with (name)
$ tmux new -s (name)

tmux는 기본적으로 Ctrl + b와 다른 키의 조합으로 모든 명령을 실행하게 된다.

그리고 tmux를 종료하고 싶을 때 Ctrl + d로 빠져나올 수 있다.



a. tmux의 window, pane, session 개념

필자는 대부분 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는 터미널 화면 자체가 변경된다. 윈도우 운영체제에서 가상 데스크톱을 이용하는 느낌이다.




2. tmux 조합 키 (commands)

a. Pane commands

아래는 Pane에 관한 조합키 목록이다.
Ctrl+b + 조합 키를 이용하여 사용할 수 있다.

CommandDescription
%수직으로 pane을 분리
‘’평행하게 pane을 분리
x현재 pane을 kill
o다음 pane으로 이동
h, j, k, lvim처럼 인접한 pane들 사이를 이동
z현재 pane을 전체화면으로
방향키pane의 크기를 조정
q몇 개의 pane이 실행중인지 숫자로 반환

b. Window commands

아래는 Window에 관한 조합키 목록이다.

CommandDescription
wlist windows and select one
,window 이름 재설정
c or N새 윈도우 생성
n다음 window로 이동
p이전 window로 이동
fwindow 찾기
&kill window
0-9window 0-9로 이동


이외에도 궁금한 부분이 있다면 아래의 링크를 방문해보길 권장한다.

tmux documentations(링크 클릭)




3. tmux 설정 (tmux.conf)

우선, 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 외에도 다양한 설정이 있으니 한 번 찾아보면 좋겠다.


끝.

profile
Engineer, Researcher, Developer

0개의 댓글