tmux는 하나의 터미널 내에서 다중 창을 쓸 수 있게 해주는 좋은 툴이다.

터미널이 갑자기 꺼지더라도 언제든 tmux에 다시 접속할 수 있다.

screen도 비슷한 프로그램인듯.

 

tmux를 통해 세션을 만들고 세션 안에서 다양한 윈도우(쉘)을 띄울 수 있다.

 

sudo apt install tmux를 통해 설치할 수 있고,

 

tmux밖에서는 다음과 같은 명령어가 있다.

tmux new -s [세션이름] 세션 생성
tmux ls 세션 목록 확인
tmux a -t [세션이름] 세션에 attach, 세션이 1개일 경우 tmux a 가능, 세션이름을 쓰다 말아도 알아서 붙어줌

 

tmux안에서의 명령어는 기본적으로 ctrl+b와 함께 쓰인다.

ctrl+b + c window 생성
ctrl+b + d detach 세션 밖으로 나가기, 세션을 끄는게 아니다
ctrl+b + n 다음 window로 이동
ctrl+b + p 이전 windwo로 이동
ctrl+b + 12345 12345번째 window로 이동
ctrl+b + pageup 오른쪽위에 [0/1234]가 생기며 화면의 위 아래로 움직일 수 있다. q를 통해 빠져나올 수 있다
ctrl+b + % 세로로 분할
ctrl+b + alt + 방향기 분할된 창의 크기를 조절
ctrl+b + 방향기 분할된 창 사이 커서로 이동

 

tmux를 실행할 때 직접 들어가서 ctrl+b 누르면서 작업을 할 수도 있지만, 밖에서 해당 명령어들을 수행할 수 있다.

tmux new -d -s [세션이름] 새로운 세션을 생성하지만 바로 attach하지 않는다
tmux send-keys -t [세션이름] 'ls' C-m 세션이름에 ls 엔터를 전송한다. 
tmux new-window -t [세션이름] 세션이름에 새로운 윈도우를 생성한다
tmux next-window -t [세션이름] 세션이름에 다음 윈도우를 현재 window로 지정한다
tmux select-window -npl -t [세션이름] 세션이름에 대해서 n(다음) p(이전) l(가장최근에접근한) window로 이동한다

tmux new-session -d 'vi /etc/passwd' \; split-window -d \; attach

위와같은 것도 가능하다.

 

 

아래의 페이지에 자세히 나와있다.

https://docs.oracle.com/cd/E86824_01/html/E54763/tmux-1.html

 

tmux - man pages section 1: User Commands

tmux (1) Name tmux - terminal multiplexer Synopsis tmux [-2lCquvV] [-c shell-command] [-f file] [-L socket-name] [-S socket-path] [command [flags] Description TMUX(1) General Commands Manual TMUX(1) NAME tmux - terminal multiplexer SYNOPSIS tmux [-2lCquvV]

docs.oracle.com