강력한 터미널 멀티플렉서 tmux를 활용해보자
이번엔 익숙해지면 정말 강력한 터미널 멀티플렉서인 tmux에 대해 소개해보려고 합니다.
목차
tmux란?
tmux는 말그대로 멀티플렉서 이기때문에 하나의 터미널 화면에 여러 개의 터미널을 각각 독립적으로 관리할 수 있습니다. tmux를 사용하면 Ctrl + Tab을 누르면서 창을 옮겨 다닐 필요없이 한 눈에 여러 터미널을 볼 수 있고, 다양한 명령어를 통해서 좀 더 효율적으로 터미널 작업을 수행할 수 있습니다.
tmux의 구조
tmux에는 몇가지 논리적인 개념을 도입하여 멀티플렉싱 기능을 구조화하였습니다. tmux의 공식 매뉴얼을 참조하여 이 개념에 대해 알아보겠습니다.
tmux를 실행하면 하나의 윈도우(window)를 갖는 새로운 세션(session)만들고 이 것을 화면에 출력합니다. 화면 하단에는 현재 세션 정보를 알 수 있는 상태 표시줄이 있으며 이는 상호 작용을 위한 커맨드를 입력하는데 사용됩니다.
When tmux is started it creates a new session with a single window and displays it on screen. A status line at the bottom of the screen shows information on the current session and is used to enter interactive commands.
세션(session)은 tmux가 관리하는 가상의 터미널 집합입니다. 각각의 세션은 그것과 연결된 하나 또는 2개 이상의 윈도우(window)를 갖고 있습니다. 모니터 화면 전체를 차지하고 있는 것이 윈도우(window)이고, 이 윈도우(window)는 몇 개의 사각 판(pane)으로 나누어져 있을 수 있습니다. 그리고 각각의 사각 판(pane)은 분리된 가상의 터미널입니다.
A session is a single collection of pseudo terminals under the management of tmux. Each session has one or more windows linked to it. A window occupies the entire screen and may be split into rectangular panes, each of which is a separate pseudo terminal.
위에서 설명한 개념들을 간략히 도식화해보면 아래와 같습니다. 세션(session) 내부에는 윈도우(window)라는 것이 1개 이상 존재할 수 있고, 윈도우(window)라는 것은 1개 이상의 판(pane)으로 이루어져 있습니다. 그리고 이 각각의 판(pane)이 터미널 하나라고 보시면됩니다. 그리고 세션(session) 또한 1개 이상 존재할 수 있습니다.
tmux 구조별 명령어 정리
tmux에서 제공하는 다양한 명령어들을 앞서 살펴봤던 tmux의 구조 별로 정리해보았습니다. 제가 자주 사용하는 명령어들만 나열해보았으니 더 많은 명령어 정보들은 tmux 공식 매뉴얼이나 구글링을 통해 찾아보시면 될 것 같습니다.😎
기본적으로 tmux 명령어는 tmux 세션 내에 진입하였을 때 사용이 가능하며 ctrl + b는 tmux 명령어를 입력하고자 할 때 사용하는 입력 값입니다. 아래 명령어 리스트에 ctrl + b가 포함된 것들은 모두 tmux session 내에서 실행하는 것이라고 보면됩니다.
Session
- tmux : 새로운 세션 생성
- tmux ls : 현재 생성되어 있는 tmux 세션 목록 확인
- tmux a -t 세션번호(또는 세션이름) : 해당 세션으로 이동
- tmux kill-session -t 세션번호(또는 세션이름) : 해당 세션 종료
- (ctrl + b) + $ : 현재 세션 명 변경
- (ctrl + b) + d : tmux 세션 빠져나오기(종료는 아님)
Window
- (ctrl + b) + c : 새로운 윈도우 생성
- (ctrl + b) + & : 현재 윈도우 삭제
- (ctrl + b) + , : 현재 윈도우 명 변경
- (ctrl + b) + 윈도우번호 : 해당 윈도우로 이동
- (ctrl + b) + n : 다음(next) 윈도우로 이동
- (ctrl + b) + p : 이전(previous) 윈도우로 이동
- (ctrl + b) + w : 생성된 윈도우 리스트 정보
Pane
- (ctrl + b) + % : 열 분할
- (ctrl + b) + “ : 행 분할
- (ctrl + b) + 방향키 : 분할된 pane 간의 이동
- (ctrl + b) + z : 현재 pane만 전체 크기로 보기(전체 크기에서 동일한 커맨드를 다시 입력할 경우 원래 분할된 창으로 돌아간다)
- (ctrl + b) + x : 현재 pane 종료
마치며
지금까지 강력한 터미널 멀티플렉서 tmux의 구조와 몇가지 명령어에 대해 알아보았습니다. 앞으로는 tmux와 함께 터미널을 자유롭게 넘나들어 봅시다😁
해당 게시글에서 발생한 오탈자나 잘못된 내용에 대한 정정 댓글 격하게 환영합니다😎
Reference