[개발 환경] Tmux (Terminal Multiplexer)
Tmux란?
Tmux는 터미널 안에서 창을 분할하거나 병합할 수 있게 해주는 도구로, 터미널의 화면 관리자라고 생각하면 된다.
Tmux는 자기 안에서 새 shell을 하나 또 띄운다.
즉, 터미널의 shell이 Tmux를 실행하면, Tmux는 그 안에서 다시 자기만의 shell을 띄우는 것이다.
따라서 Tmux 안에서 명령을 입력하면, 그 명령은 Tmux가 새로 띄운 shell에서 실행된다.
Tmux의 유용한 기능 중 하나는 세션 유지로, tmux 내안에서 프로그램을 실행하면 터미널을 종료해도 해당 프로그램은 서버 안에서 계속 돌아간다.
Tmux 계층 구조
Session
가장 큰 단위로, 하나의 프로젝트를 위한 독립적인 환경이다.
터미널 창을 종료해도 서버에서 계속 살아있는 단위가 이 session이다.Window
하나의 session 안에 여러 개를 만들 수 있는 화면 단위이다.
웹 브라우저의 탭과 비슷하다.Pane
하나의 window를 여러 개로 쪼개서 만든 분할창이다.
한 화면에서 여러 작업을 동시에 보고 싶을 때 사용한다.
Tmux 설치
터미널에서 아래 명령어를 순차적으로 입력해 tmux를 설치할 수 있다. (리눅스 환경에서 실행)
1
2
sudo apt update
sudo apt install tmux
또는 sudo 권한이 없다면, conda 환경에서 아래 명령어를 사용하면 된다.
1
conda install -c conda-forge tmux
설치 후 터미널에 tmux를 입력했을 때, 터미널 하단에 아래와 같은 화면이 나오면 성공적으로 실행된 것이다.
Tmux 명령어
(Ctrl+b) + w 명령어를 사용하면, 현재 모든 세션과 윈도우의 목록이 미리보기와 함께 출력된다.
Session 관련 명령어
| 명령어 | 설명 |
|---|---|
tmux | 새로운 세션 시작 (자동으로 번호 부여) |
tmux new -s {세션 이름} | 설정한 이름으로 새로운 세션 시작 |
tmux ls | 현재 실행 중인 세션 목록 확인 |
tmux attach | Detach된 세션 열기 |
tmux attach -t {세션 이름 또는 번호} | 특정 세션으로 다시 접속 |
tmux kill-session -t {세션 이름 또는 번호} | 특정 세션 강제 종료 |
(Ctrl+b) + d | 현재 세션 종료 (Detach) |
Window 관련 명령어
| 명령어 | 설명 |
|---|---|
(Ctrl+b) + c | 새 윈도우 생성 |
(Ctrl+b) + {숫자} | 해당 번호의 윈도우로 이동 |
(Ctrl+b) + x | 현재 윈도우 종료 |
Pane 관련 명령어
| 명령어 | 설명 |
|---|---|
(Ctrl+b) + % | 좌우로 화면 분할 |
(Ctrl+b) + " | 상하로 화면 분할 |
(Ctrl+b) + q | 팬 번호 확인 |
(Ctrl+b) + 방향키 | 팬 이동 |
Ctrl + d | 현재 선택된 팬 종료 (해당 팬에서 실행되고 있는 프로그램이 있으면 종료됨) |
마우스 사용하기
초기 tmux 설정 상태에서는 아래의 이유 때문에 마우스 사용이 불편할 수 있다.
- 마우스 클릭을 이용한 팬 선택이 불가능
- 마우스 스크롤 시, 화면 내용 대신 이전 명령어 히스토리가 출력
- 마우스 드래그 시, 분할된 팬을 무시하고 전체 화면 드래그
이때 아래 명령어를 입력해 마우스 모드를 활성화하면, 위의 불편한 점들을 해결할 수 있다.
1
tmux set -g mouse on
Copy & Paste
위 명령어를 사용하면 정상적으로 분할된 팬 내에서만 드래그가 될 것이다.
하지만 드래그를 하고 마우스를 떼면 드래그가 바로 해제될 건데, 이미 드래그하고 뗀 시점부터 복사가 된 것이기 때문에 따로 Ctrl + C를 누를 필요가 없다.
따라서 그냥 드래그 한 뒤, 붙여넣고 싶은 곳에 Ctrl + V를 누르면 된다.


