"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>
# 세션 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
# 윈도우 이름 변경
[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 |
댓글