본문 바로가기
Server

[Linux] tmux

by 동기 2021. 11. 2.
반응형

"tmux"라는 소프트웨어는 "Terminal multiplexer" 소프트웨어 중 하나이다. 멀티 윈도우를 통해 작업하여 생산성이 높다.

하나의 tmux 서버가 세션을 관리하고, tmux 클라이언트는 tmux 서버와 소켓으로 통신하며 그 세션의 pseudoterminal들을 사용자가 원하는 방식대로 보여준다고 한다.

 

나 같은 경우 타사의 서버에 원격 접속하여 py를 돌릴때가 있었는데, 무거워서 중간에 vpn연결이 끊기면 처음부터 다시 해야 했다.

nohup으로 할까 했지만, 수석님께서 tmux를 추천해 주셨다.  

 

tmux 설치

리눅스 환경에서 

$ sudo apt-get install tmux

 

실행

$ tmux

 

 

tmux 용어

 

session(세션) : tmux가 관리하는 가장 큰 실행 단위다. tmux는 세션에 attach/detach 할 수 있다. tmux가 detach 한 세션은 종료되지 않고 백그라운드에서 실행을 계속 할 수 있다. 세션은 여러 윈도우(Window)로 구성된다. 

window(윈도우) : 사용자가 보는 터미널 화면, 세션에서 여러 개의 윈도우가 탭처럼 존재한다. 세션에서 윈도우를 전환하면 새로운 윈도우로 화면이 전환된다. 

pane (팬) : 하나의 윈도우를 분할한 단위. 윈도우 하나를 여러번 분할해서 여러개의 팬을 갖게 할 수 있다. 가로 혹은 세로로 화면을 분할해가면서 팬을 생성한다. 윈도우를 전환하면 팬 구성도 새로운 윈도우의 구성으로 전환된다.

 

 

하나의 윈도우는 여러개의 팬(Pane)으로 분할해서 사용할 수 있다. 각각의 팬은 별도의 터미널처럼 동작할 수 있다. 즉, 1번 팬에서 vi를 열어서 소스코드를 보는 동시에 2번 팬에서 컴파일을 하고, 3번 팬에서 로그를 열어볼 수 있다.

 

Session 관련 tmux 명령어

세션과 관련된 tmux 명령어들을 알아보자.

기본값으로 <CTRL-B>가 tmux의 기능을 발동시키는 trigger의 역할을 한다. 

# 세션 생성

$ tmux

$ tmux new -s <session_name>

$ tmux new-session -s <session_name>

ex1 이름으로 생성

 

 

생성후 세션 창

 

# 세션 detach - 세션에서 나오기 - 세션 종료 아님!

[Ctrl] + b,  d

 

# 세션 리스트보기

$ tmux ls

 

# 세션 attach - 세션에 들어가기

$ tmux attach -t <session number 혹은 session name>

 

# 세션 종료, 세션의 마지막 윈도우, 마지막 팬에서 실행

$ exit 

 

# 세션 종료, 세션 밖에서 실행

$ tmux kill-session -t session_name

 

Window 관련 tmux 명령어

윈도우와 관련된 tmux 명령어들을 알아보자

 

# 윈도우 생성

[Ctrl] + b, c

Ctlr + b ,c 입력시 1:bach 가 새로 생겼다

 

 

# 윈도우 이름 변경

[Ctrl] + b, ,

 

# 윈도우 종료

[Ctrl] + b, &

[Ctrl] + d

 

# 다음 윈도우(Next Window)로 이동

[Ctrl] + b, n

 

# 이전 윈도우(Previous Window)로 이동

[Ctrl] + b, p

 

# 마지막 윈도우(Last Window)로 이동

[Ctrl] + b, l

 

# 특정 윈도우로 이동 (몇 번째 윈도우인지)

[Ctrl] + b, 0-9 

 

# 특정 윈도우로 이동 (이름으로 이동)

[Ctrl] + b, f

 

# 윈도우 리스트 보기

[Ctrl] + b, w

 

 

Pane 관련 tmux 명령어

팬 관련 tmux 명령어를 알아보자

 

# 세로 화면 분할

[Ctrl] + b, %

 

 

# 가로 화면 분할

[Ctrl] + b, "

 

 

# 팬 이동 - 화면에 나오는 숫자로 이동

[Ctrl] + b, q 

 

 

# 팬 이동 - 순서대로 이동

[Ctrl] + b, o

 

# 팬 이동 - 방향키로 이동

[Ctrl] + b, <방향키>

 

# 팬 삭제

[Ctrl] + d

[Ctrl] + b, x

 

# 팬 사이즈 조절 - 현재 포커스된 팬 전체화면(한번 더 실행하면 윈상복구)

[Ctrl] + b, z

 

# 팬 사이즈 조절

[Ctrl] + b, :

resize-pane -L <Size> or -R <Size> or -U <Size> -D <Size>                  

 

# 팬 레이아웃 변경 (다양한 레이아웃으로 자동 전환)

[Ctrl] + b, spacebar

 

 

 

아래 분들의 글을 재구성하여 작성하였습니다.

https://soft.plusblog.co.kr/19

https://dgkim5360.tistory.com/entry/the-first-steps-for-tmux-terminal-multiplexer

 

반응형

'Server' 카테고리의 다른 글

톰캣 다중 설정  (0) 2022.08.31
git 글로벌, 로컬 유저 변경하기  (0) 2022.08.07
리눅스 명령어  (0) 2021.09.14
AWS 서버 환경을 만들어보자  (3) 2021.07.10
VM bridge 설정  (0) 2021.06.20

댓글