터미널 창을 여러 개 띄워놓고 계속 전환하다 보면 정작 필요한 창을 못 찾아 헤매는 경험이 한 번쯤은 있으실 겁니다. 이런 불편함을 해결해 주는 것이 바로 멀티플렉서(Multiplexer)입니다. 멀티플렉서는 하나의 창 안에서 여러 개의 터미널 세션을 동시에 실행할 수 있게 해주는 프로그램입니다.
Tmux란 무엇인가?
Tmux는 가장 널리 사용되는 멀티플렉서 중 하나로, 다양한 강력한 기능을 제공합니다. 서로 다른 애플리케이션을 별도의 세션으로 실행하고 손쉽게 전환할 수 있어 생산성을 크게 높여줍니다.
이 글에서는 리눅스 머신에 tmux를 설치하고 구성하는 방법을 소개합니다. 터미널을 열고 사용 중인 시스템에 맞는 설치 명령어를 입력하세요.
리눅스에 Tmux 설치하기
Debian 계열 배포판(Ubuntu 등)에서는 다음 명령어를 사용합니다:
sudo install tmux
CentOS/RHEL에서는 아래와 같이 설치할 수 있습니다:
yum install tmux
Arch Linux에서는 pacman 패키지 관리자를 이용합니다:
pacman -S tmux
설치가 완료되면 터미널을 열고 tmux를 입력하여 새로운 세션을 시작할 수 있습니다. 이 명령은 새 창 안에서 세션을 초기화하고 셸을 실행하며, 화면 하단의 상태 표시줄에는 현재 세션 정보가 나타납니다.
tmux
처음 Tmux를 사용하는 분들을 위한 기본 개념
Tmux에는 세션(session), 윈도우(window), 패인(pane), 그리고 단축키(hotkey)라는 고유한 개념들이 있습니다. 그래서 처음 접하는 초보자들은 다소 어렵게 느낄 수 있지만, 익숙해지고 나면 작업 효율이 눈에 띄게 향상될 것입니다.
세션은 현재 진행 중인 작업 단위를 의미합니다. 윈도우는 하나의 세션 안에서 서로 다른 작업을 수행할 수 있게 해주며, 패인은 하나의 윈도우 내부를 여러 개의 독립된 뷰로 나누어 동시에 작업할 수 있도록 해줍니다.
이 모든 요소는 tmux 단축키를 통해 관리합니다. 단축키는 접두사(prefix)와 특정 키의 조합으로 구성되며, 기본 접두사는 Ctrl + B입니다.
Tmux 세션 관리하기
Tmux는 여러 세션을 동시에 처리할 수 있습니다. 덕분에 개발자는 여러 프로젝트 간에 자유롭게 전환하며 작업할 수 있고, 언제든 새로운 세션을 생성할 수도 있습니다.
다음 명령어는 test-session이라는 이름의 새 세션을 생성합니다:
tmux new -s test-session
이미 실행 중인 tmux 인스턴스 안에서도 새 세션을 만들 수 있습니다. tmux 인터프리터를 호출한 후 접두사와 콜론(Ctrl + B :)을 입력하면 됩니다.
그러면 제어 명령어를 입력할 수 있는 인터프리터가 열립니다. 여기서 아래처럼 입력하면 새 세션이 생성됩니다:
:new -s test-session
Ctrl + B s를 입력하면 현재 활성화된 모든 세션 목록을 확인할 수 있습니다. 원하는 세션을 선택한 후 Enter를 누르면 해당 세션으로 전환됩니다.
세션에서 분리(detach)해도 tmux는 백그라운드에서 해당 프로세스를 계속 유지합니다. tmux 인터프리터에 :detach를 입력하거나 Ctrl + B d를 눌러 현재 세션에서 분리할 수 있습니다.
마지막 세션에 다시 연결하려면 다음 명령어를 사용합니다:
tmux attach
특정 세션에 연결하려면 -t 옵션 뒤에 세션 이름을 지정하면 됩니다:
tmux attach -t test-session
세션을 종료하려면 kill-session 명령어를 사용합니다:
tmux kill-session -t test-session
Tmux 윈도우 관리하기
Tmux 윈도우는 전체 화면을 차지하며, 여러 개의 패인으로 분할할 수 있습니다. 각 패인은 독립적인 가상 터미널처럼 동작합니다. 새 윈도우를 생성하려면 Ctrl + B c를 입력하세요.
윈도우 이름을 변경하려면 Ctrl + B ,를 누릅니다. 그러면 tmux 인터프리터가 열리고, 여기에 새 윈도우 이름을 입력하면 됩니다.
Tmux에서는 윈도우 간 전환도 매우 간단합니다. 접두사를 입력한 뒤 윈도우 번호만 누르면 됩니다. 예를 들어 Ctrl + B 2를 누르면 두 번째 윈도우로 즉시 이동합니다.
윈도우 순서를 서로 바꾸는 것도 가능합니다. Ctrl + B :로 인터프리터를 열고 다음과 같이 입력하세요:
:swap-window -s 1 -t 3
위 명령은 첫 번째 윈도우와 세 번째 윈도우의 위치를 서로 교체합니다. 더 이상 필요 없는 윈도우는 Ctrl + B &로 삭제할 수 있습니다.
Tmux 패인(Pane) 관리하기
지금까지 세션과 윈도우를 다뤄봤습니다. 하지만 tmux의 진짜 매력은 패인을 활용하기 시작할 때 드러납니다. 패인은 윈도우 안에서 실행되는 가상 터미널로, 하나의 tmux 윈도우에서 여러 터미널 인스턴스를 동시에 운영할 수 있게 해줍니다.
패인은 가로와 세로 방향 모두로 생성할 수 있습니다. 화면을 가로로 분할하려면 Ctrl + B "를 입력하세요.
이렇게 하면 현재 윈도우가 가로로 분할되고, 새로 생긴 영역에 새 터미널이 열립니다. 세로 패인을 만들려면 Ctrl + B %를 사용합니다.
가로 패인과 세로 패인을 동시에 만들어 자유롭게 조합하는 것도 가능합니다. 패인 간 전환은 Ctrl + B o 단축키로 할 수 있습니다.
패인 확대(zoom) 기능을 사용하면 다른 모든 패인을 임시로 숨기고 하나의 패인에 집중할 수 있습니다. 특정 작업에 몰입해야 할 때 유용하며, Ctrl + B z로 전환할 수 있습니다. 현재 패인을 닫으려면 Ctrl + B x를 누르면 됩니다.
리눅스에서 Tmux 설정하기
Tmux는 거의 모든 부분을 사용자 입맛에 맞게 설정할 수 있습니다. 다만 처음에는 기본적인 옵션부터 시작하고, 익숙해진 후에 고급 설정으로 넘어가는 것을 추천합니다.
Tmux 설정은 ~/.tmux.conf 파일을 수정하는 방식으로 진행됩니다. 선호하는 리눅스 텍스트 편집기로 이 파일을 열어보세요:
vim ~/.tmux.conf
몇 가지 기본 설정 예시를 살펴보겠습니다. 예를 들어, 아래 줄을 tmux.conf 파일에 추가하면 접두사를 Ctrl + B에서 Ctrl + A로 변경할 수 있습니다:
set -g prefix C-a
unbind C-b
기본 키 바인딩을 해제(unbind)하면 해당 키를 다른 명령에 재할당할 수 있습니다. 두 번째 줄은 필수는 아니지만 좋은 습관입니다.
윈도우와 패인의 시작 번호를 0이 아닌 1부터 시작하도록 변경할 수도 있습니다. 0부터 시작하는 인덱싱이 익숙하지 않은 사용자에게 훨씬 직관적입니다:
set -g base-index 1 # 윈도우 번호를 1부터 시작
set -g pane-base-index 1 # 패인 번호를 1부터 시작
Tmux는 터미널 기반 도구이기 때문에 기본적으로 마우스 기능을 지원하지 않습니다. 하지만 아래 설정을 추가하면 간단히 마우스 지원을 활성화할 수 있습니다:
set -g mouse on
Tmux 플러그인 소개
커뮤니티에서 개발한 다양한 tmux 플러그인을 활용할 수 있습니다. 이런 플러그인들은 생산성을 높이는 추가 기능을 제공하여 전반적인 작업 흐름을 개선해 줍니다. 또한 플러그인을 tmux에 손쉽게 적용할 수 있도록 도와주는 독립형 플러그인 매니저도 여러 종류 존재합니다.
Tmux Plugin Manager(TPM)는 대표적인 도구 중 하나로, 서드파티 플러그인을 설치하고 구성할 수 있게 해줍니다. TPM 공식 사이트의 안내에 따라 설치할 수 있습니다.
tmux-resurrect 패키지도 꼭 확인해 보시길 권장합니다. 이 플러그인을 사용하면 시스템 재부팅 후에도 tmux 세션을 그대로 복원할 수 있습니다.
Tmux로 터미널 작업 흐름 관리하기
Tmux는 윈도우 전환에 어려움을 겪는 터미널 애호가들에게 완벽한 솔루션을 제공합니다. 생산성을 중요하게 생각하는 사람들에게 탁월한 도구입니다. 학습 곡선이 다소 존재하지만, 꾸준히 사용하다 보면 어느새 몸에 익은 습관이 되어 있을 것입니다.
터미널의 힘은 리눅스 운영체제나 PC에만 국한되지 않습니다. 스마트폰에서도 터미널을 사용해 안드로이드에서 기본적인 리눅스 명령을 수행할 수 있습니다.