# tmux (terminal multiplexer)

tmux는 터미널의 멀티플렉서로, 하나의 창에서 여러개의 터미널을 session, window, 그리고 pane 단위로 관리할 수 있도록 하는 도구입니다.

## Session <a href="#tmux-terminalmultiplexer-session" id="tmux-terminalmultiplexer-session"></a>

session은 tmux를 실행하는 기본 단위로, 여러개의 window로 구성됩니다.&#x20;

tmux session은 영구적이기 때문에 tmux에서 실행되는 프로그램은 연결이 끊어져도 계속 실행됩니다.

### session 생성하기 <a href="#tmux-terminalmultiplexer-session" id="tmux-terminalmultiplexer-session"></a>

터미널 창에서 `tmux` 를 입력하면 새로운 tmux session이 생성되고, 해당 세션에 접속됩니다.

![](https://92945037-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MOdedbke_kpJqE1CY2X%2F-MgIkUhQgeeVfEpKVr5f%2F-MgIm6qTNyiHd_SyZ2SS%2Fimage.png?alt=media\&token=3ed93146-739a-4f42-95ac-71dd5ddef437)

위 이미지의 하단에 초록색 바탕으로 출력되는 창에서 현재 tmux session 정보를 출력합니다.

이후, `tmux ls` 를 입력하면 해당 세션이 "0"이라는 이름으로 생성되었고, 한개의 윈도우가 존재하며, 해당 세션에 attach된 상태인 것을 알 수 있습니다.

![](https://92945037-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MOdedbke_kpJqE1CY2X%2F-MgIkUhQgeeVfEpKVr5f%2F-MgImE1EC403vO34FdKG%2Fimage.png?alt=media\&token=a0fd0757-d014-4151-8d24-f2345a77e49d)

세션에 이름을 지정해 생성하고 싶다면 `tmux new -s [이름]` 을 입력합니다.

기존에 생성한 세션이 attached 상태이므로 해당 세션 내에서가 아닌 새로운 터미널 창을 열어 해당 명령어를 입력해야 합니다.

이후, `tmux ls`를 입력하면 지정한 이름으로 새로운 세션이 생성되었고, attach 된 것을 확인할 수 있습니다.

![](https://92945037-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MOdedbke_kpJqE1CY2X%2F-MgIkUhQgeeVfEpKVr5f%2F-MgImUf8f0qNYXu9pL98%2Fimage.png?alt=media\&token=f1959824-7850-4754-8b71-e9193f40edd7)

### session 중단하기 <a href="#tmux-terminalmultiplexer-session" id="tmux-terminalmultiplexer-session"></a>

현재 attached 상태인 세션을 detach하기 위해서는 `Ctrl+b` 키를 누른 후 `d` 를 누릅니다.

![](https://92945037-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MOdedbke_kpJqE1CY2X%2F-MgIkUhQgeeVfEpKVr5f%2F-MgIm_YjOiuj1JNOUZgC%2Fimage.png?alt=media\&token=45c67c1f-9533-4e35-a0b0-d4f9eb678d05)

위와 같이 해당 세션에서 빠져나온 것을 확인할 수 있습니다.

이후 `tmux ls`를 입력하면 test 세션은 attached 상태가 아닌 것을 확인할 수 있습니다.

다시 test 세션을 시작하기 위해서는 `tmux attach -t test` 를 입력합니다.

### session 종료하기 <a href="#tmux-terminalmultiplexer-session" id="tmux-terminalmultiplexer-session"></a>

`tmux kill-session -t [세션 명]` 명령어를 통해 생성한 세션을 완전히 종료할 수 있습니다.

이후, `tmux ls` 를 입력하면 test 세션이 삭제된 것을 확인할 수 있습니다.

![](https://92945037-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MOdedbke_kpJqE1CY2X%2F-MgIkUhQgeeVfEpKVr5f%2F-MgImc0YQfMhyc_NadAQ%2Fimage.png?alt=media\&token=0b97598d-4234-4eed-b42b-9387f029ec88)

## Window <a href="#tmux-terminalmultiplexer-window" id="tmux-terminalmultiplexer-window"></a>

window는 하나의 터미널 화면으로, session 내에서 탭과 같이 사용됩니다.

다음과 같이 현재 "0" 세션에는 1개의 윈도우가 존재합니다.

![](https://92945037-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MOdedbke_kpJqE1CY2X%2F-MgIkUhQgeeVfEpKVr5f%2F-MgIme12lFrB7Fa2a7th%2Fimage.png?alt=media\&token=75124b23-f8f9-4e8c-b0e4-74f3350c4783)

### Window 생성하기 <a href="#tmux-terminalmultiplexer-window" id="tmux-terminalmultiplexer-window"></a>

Ctrl+b 를 누른 후 C 를 누르면 새로운 윈도우가 생성됩니다.

이후 `tmux ls`를 입력하면 다음과 같이 두개의 윈도우가 존재하는 것을 확인할 수 있습니다.

하단의 탭에서는 두번째 윈도우인 **1:bash** 뒤에 \* 표시가 붙어있어, 현재 해당 윈도우에 위치함을 알 수 있습니다.

![](https://92945037-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MOdedbke_kpJqE1CY2X%2F-MgIkUhQgeeVfEpKVr5f%2F-MgImfkWDyh5RkQn28Fk%2Fimage.png?alt=media\&token=bb4221c7-e733-4ffb-9658-8f9ef030bf96)

### Window 이동하기 <a href="#tmux-terminalmultiplexer-window" id="tmux-terminalmultiplexer-window"></a>

다시 첫번째 윈도우인 0:bash로 이동하기 위해서 Ctrl+b 를 누른후 해당 윈도우의 이름인 "0" 을 누릅니다.

![](https://92945037-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MOdedbke_kpJqE1CY2X%2F-MgIkUhQgeeVfEpKVr5f%2F-MgImhSMXdVNKKvFum7O%2Fimage.png?alt=media\&token=2b5dfab8-c9c7-4120-b73c-4fa99f32e575)

위와 같이 첫번째 윈도우로 이동한 것을 확인할 수 있습니다.

### WIndow 삭제하기 <a href="#tmux-terminalmultiplexer-window" id="tmux-terminalmultiplexer-window"></a>

현재 윈도우를 삭제하려면 `Ctrl+d`를 누릅니다.

![](https://92945037-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MOdedbke_kpJqE1CY2X%2F-MgIkUhQgeeVfEpKVr5f%2F-MgImjIe5L4XeU2Ztobo%2Fimage.png?alt=media\&token=7b1d2ae8-5c02-471b-805d-ac8753f0e3e9)

위 이미지와 같이 첫번째 윈도우인 0:bash가 삭제된 것을 확인할 수 있습니다.

## Pane <a href="#tmux-terminalmultiplexer-pane" id="tmux-terminalmultiplexer-pane"></a>

tmux는  하나의 화면을 여러개로 분할해 사용하는 기능 또한 제공합니다.

이때, Pane은 하나의 터미널 화면인 window를 분할한 단위입니다.

### 화면 분할하기 <a href="#tmux-terminalmultiplexer" id="tmux-terminalmultiplexer"></a>

`Ctrl+b` 를 누른 후 `Shift+%` 키를 누르면 현재의 window가 세로로 분할됩니다.

![](https://92945037-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MOdedbke_kpJqE1CY2X%2F-MgIkUhQgeeVfEpKVr5f%2F-MgIml129nGedhT12aGd%2Fimage.png?alt=media\&token=1230e694-b30a-46db-a910-26b4da24a140)

`Ctrl+b` 를 누른 후 `Shift+"` 키를 누르면 해당 pane이 다시 가로로 분할됩니다.

![](https://92945037-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MOdedbke_kpJqE1CY2X%2F-MgIkUhQgeeVfEpKVr5f%2F-MgImmhxvgZy0DZGosqO%2Fimage.png?alt=media\&token=3ac08d50-643c-4f50-af9d-2cfdadf8a71a)

### pane 이동하기 <a href="#tmux-terminalmultiplexer-pane" id="tmux-terminalmultiplexer-pane"></a>

현재 위치한 pane은 우측 하단의 pane입니다.

Ctrl+b 를 누른 후 방향키를 통해 pane을 이동할 수 있습니다.

Ctrl+b 를 누른 후 **상** 방향키를 눌러 우측 상단 pane으로 이동한 모습입니다.

![](https://92945037-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MOdedbke_kpJqE1CY2X%2F-MgIkUhQgeeVfEpKVr5f%2F-MgImoLtVEGhHymLlH6D%2Fimage.png?alt=media\&token=70e85968-f8df-4cae-a9bc-3118d6efc823)

Ctrl+b 를 누른 후 **좌** 방향키를 눌러 우측 상단 pane으로 이동한 모습입니다.

![](https://92945037-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MOdedbke_kpJqE1CY2X%2F-MgIkUhQgeeVfEpKVr5f%2F-MgImpseOm1u4PuoK4PJ%2Fimage.png?alt=media\&token=5887d830-b439-4e0d-a001-bb29647c3789)

### pane 크기 조정하기 <a href="#tmux-terminalmultiplexer-pane" id="tmux-terminalmultiplexer-pane"></a>

`Ctrl+b` 키를 누른 상태에서 방향키를 통해 분할된 화면의 크기를 조절할 수 있습니다.

우측 하단 pane에서 `Ctrl+b+`**`상 방향키`** 를 눌러 틀의 크기를 늘린 모습입니다.

![](https://92945037-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MOdedbke_kpJqE1CY2X%2F-MgIkUhQgeeVfEpKVr5f%2F-MgImrTNFBGSEp0fn_32%2Fimage.png?alt=media\&token=5078f817-e448-4609-a506-f52ff8cae2f3)

### pane 삭제하기 <a href="#tmux-terminalmultiplexer-pane" id="tmux-terminalmultiplexer-pane"></a>

`Ctrl+d` 키를 누르면 아래 이미지와 같이 현재 pane이 삭제됩니다.

![](https://92945037-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MOdedbke_kpJqE1CY2X%2F-MgIkUhQgeeVfEpKVr5f%2F-MgImt03KnSfhoYEu7iO%2Fimage.png?alt=media\&token=d5430367-06c7-4d09-b00f-8077344f8e73)
