[Tmux] tmux를 써보자
by Choi HyeSun
출처
openbsd Link
tmux란? Terminal Muliiplexer
-
tmux 세션을 시작한 후 다음 세션에서 여러 개의 창을 열 수 있음
-
하나의 터미널에서 여러 프로그램을 쉽게 전환하고 분리하여 다른 터미널에 다시 연결할 수 있음
-
tmux 세션은 영구적이여서, tmux에서 실행되는 프로그램은 연결이 끊어져도 계속 실행됨
-
tmux의 모든 명령은 기본적으로 +b로 시작
tmux 설치하기
// ubuntu & devian
$ sudo apt install tmux
// Centos & Fedora
$ sudo yum install tmux
// Mac OS
$ brew install tmux
tmux 세션 시작하기
$ tmux
이름 지정하여 tmux 세션 만들기
$ tmux new -s session_name
// sunny190729 session 만들기
$ tmux new -s sunny190729
tmux 세션 종료하지 않고 쉘로 돌아가기(분리)
// 분리시 기존 쉘로 돌아가고, Tmux 세션에서 실행중인 프로그램은 세션에서 분리된 후에도 계속 실행됨
<Ctrl> + b + d
// 분리시 다음과 같이 detached라고 남음
[detached]
// 종료(exit)시에는 exited
[exited]
tmux 세션에 다시 접속하기
// 실행중인 tmux 세션 유형 목록 확인
$ tmux ls
// 세션의 이름은 출력의 첫 번째 열임 (아래의 0, sunny190730)
0: 1 windows (created Mon Jul 29 07:43:45 2019) [229x28]
sunny190730: 1 windows (created Mon Jul 29 07:45:02 2019) [229x28]
// 세션에 연결
$ tmux attach-session -t 세션명
$ tmux attach-session -t 0
$ tmux attach-session -t sunny190729
// 세션되면 맨 아래에 세션 ID가 남음
[sunny190729] 0:sunny@sunnyPC:~*
[0] 0:sunny@sunnyPC:~*
알아둘법한 tmux 단축키
단축키 | 의미 |
---|---|
<Ctrl> + b | tmux 명령 접두어 |
tmux | tmux 세션 시작 |
tmux -new -s session_name | 세션명 지정하여 tmux 세션 시작 |
<Ctrl> + b + $ | tmux 현재 세션 이름 변경 |
tmux ls | 실행중인 tmux 세션 확인 |
tmux attach-session -t session_name | 세션에 연결 |
<Ctrl> + b + d | Tmux 세션 detached(분리) |
<Ctrl> + b + ( | 이전(num) 세션으로 전환 |
<Ctrl> + b + L | 이전 세션으로 전환 |
<Ctrl> + b + ) | 다음(num) 세션으로 전환 |
<Ctrl> + b + c | 새 창 만들기(쉘 사용) |
<Ctrl> + b + n | 다음 창으로 이동 |
<Ctrl> + b + , | 창 이름 변경 |
<Ctrl> + b + p | 이전 창으로 이동 |
<Ctrl> + b + & | 현재 창 종료 |
<Ctrl> + b + w | 목록에서 창 선택 |
<Ctrl> + b + l | 이전 창으로 전환(되돌리기) |
<Ctrl> + ‘ | 선택할 창 인덱스 묻기(숫자입력) |
<Ctrl> + b + <num> | 숫자로 창 전환 |
<Ctrl> + b + % | 현재 창 좌우로 나누기(탭) |
<Ctrl> + b + o | 다음 나뉜 탭으로 이동 |
<Ctrl> + b + “ | 현재 창 상하로 나누기(탭) |
<Ctrl> + b + ; | 이전에 있었던 탭으로 이동(되돌리기) |
<Ctrl> + b + ! | 현재 나뉜 탭 새 창으로 분리 |
<Ctrl> + b + m | 현재 탭 확인 |
<Ctrl> + b + z | 현재 탭 크게보기 ↔ 원래대로 |
<Ctrl> + b + M | 탭 확인 취소 |
<Ctrl> + b + x | 현재 탭 닫기 |
<Ctrl> + b + : | tmux command line 입력 |
<Ctrl> + b + t | 시계 보기 |
<Ctrl> + b + [ | copy mode |
<Ctrl> + b + q | 탭 인덱스 보기 |
<Ctrl> + b + i | 창 정보 보기 |
Page up / down | copy mode 전환 후 스크롤 |
<Ctrl> + b + f | 열린 창에서 텍스트 검색하기 |
<Ctrl> + b + 방향키 | 창이동 |
<Ctrl> + b + ? | 바인딩 리스트 확인 |
// tmux 실행 > 하단에 ID 정보 표시
$ tmux
[0] 1:sunny@sunnyPC:~*
// tmux 새 창(탭) 만들기(쉘 사용)
// 맨 끝의 * 현재 창, - 이전 창
<Ctrl> + b + c
[0] 0:sunny@sunnyPC:~* 1:sunny@sunnyPC:~-
// tmux 새 창(탭) 한 번 더 <Ctrl> + b + c
// 아래와 같이 하단에 ID 정보 표시 후 창(탭)별로 이름이 적혀있는 것을 볼 수 있음
[0] 0:sunny@sunnyPC:~- 1:sunny@sunnyPC:~ 2:sunny@sunnyPC:~*
// tmux 목록에서 창 선택, 방향키로 선택 후 <Enter>시 변경됨
<Ctrl> + b + w
(0) 0: sunny@sunnyPC:~- "sunnyPC"
(1) 1: sunny@sunnyPC:~ "sunnyPC"
(2) 2: sunny@sunnyPC:~* "sunnyPC"
// 번호로 창 전환
<Ctrl> + b + 0(또는 숫자)
// 현재 창 이름 바꾸기 (0번 창의 이름을 Sunny로 바꿈)
// 창 이름이란 [0] 1:sunny@sunnyPC:~* ← 여기서 sunny@sunnyPC:~ 이 부분을 의미한다
// 기본으로 UserName@기기명:~ 로 들어가는듯
<Ctrl> + b + ,
(rename-window) sunny@sunnyPC:~
[0] 0:sunny1- 1:sunny@sunnyPC:~ 2:sunny@sunnyPC:~*
알아둘만한 tmux 명령어
명령어 | 의미 |
---|---|
<Ctrl> + B + : setw synchronize-panes on(off) |
tmux command line 입력 → 동시 입력 On / Off (자주 사용한다면 단축키로 저장해둘 것) bind-key y set-window-option synchronize-panes |
tmux kill-session [-a] [-t 대상 세션] | -a : 지정된 세션 제외 모든 세션 종료 |
tmux show -g | sed ‘s/^/set-option -g /’ > ~/.tmux.now.conf | 현재 tmux에 설정된 값을 추출하기 |
tmux source-file ~/.tmux.now.conf | tmux conf 적용하기 |
tmux는 conf default file이 없음
-
tmux는 ~/.tmux.conf 파일을 생성해 설정을 저장해둘 경우 시작할 때 자동으로 불러옴
-
.tmux.conf 파일은 자동 생성되진 않음
그 외 tmux 도구는 좋은 게 많으니까 찾아보고 설치하고 사용해 볼 것!
Subscribe via RSS