리눅스2023. 9. 19. 08:58

 

반달가면 이글루에서 백업 - http://bahndal.egloos.com/647179 (2021.3.25)

tmux는 리눅스 터미널창을 여러개의 화면(pane)으로 분할하여 하나의 터미널창에서 여러 작업을 동시에 보면서 진행할 수 있게 해 준다. 터미널 다중화기(terminal multiplexer)를 줄여서 tmux이다. 특히 원격에서 ssh 접속하여 작업할 때 서버쪽에 tmux가 설치되어 있으면 대단히 편리하다.

우선 tmux 패키지를 설치해 주자. 터미널창에서 아래와 같이 작업한다. 데비안/우분투 계열 배포판 기준이다.

# S/W 저장소 정보 갱신
sudo apt-get update

# tmux 설치
sudo apt-get install tmux

# 도움말 확인
man tmux

# 실행 (새로운 세션 생성)
tmux

tmux 세션(session)이 생성되면 터미널창 아래쪽에 초록색으로 상태표시줄이 나타나고 세션 명칭을 확인할 수 있다. 예를 들어 세션 0이라면 "[0]" 이렇게 나올 것이다.

화면 분할, 이동 등의 조작은 ctrl+b를 누른 후 특정 키보드를 누르는 방식으로 진행. 엄청나게 많은 종류가 있지만(도움말을 참고하자) 자주 사용하는 몇가지 단축키 입력을 적어보자면 아래와 같다.

ctrl+b % - 좌우로 화면 분할

ctrl+b " - 상하로 화면 분할

ctrl+b [화살표키] - 화면(pane)간 상/하/좌/우 이동

ctrl+b o - 다음 화면으로 이동

ctrl+b x - 현재 선택된 화면을 제거(정말로 제거할 것인지 묻는 메시지가 나오면 y를 누름)

ctrl+b d - 현재 세션에서 이탈(detach)

ctrl+b & - 현재 세션 강제종료

이탈한 세션은 나중에 다시 연결해서 이전 상태 그대로 다시 작업 가능하다. 세션 목록을 확인한 후 연결(attach)하면 된다. ls 옵션으로 목록을 확인하고 attach-session 옵션으로 연결한다.

# 세션 목록 출력
tmux ls

# 세션 0에 연결
tmux attach-session -t 0

세션 명칭은 기본적으로 0, 1, 2 이렇게 순서대로 설정되는데, 특정 세션의 이름을 바꿀 수도 있다. 세션에서 이탈한 후에 아래와 같이 세션 명칭을 바꿀 수 있다. 세션 "0"을 "test"로 바꾸려면 아래와 같이 rename-session 옵션을 사용한다.

# 세션 0을 test로 명칭 변경
tmux rename-session -t0 test

위의 예시에서 -t와 기존 세션 명칭 사이에 공백이 없음에 유의하자. attach-session에서는 -t와 세션 명칭 사이에 공백이 있어야 한다.

# 세션 test에 연결
tmux attach-session -t test

원격에서 ssh 접속을 해서 작업을 할 때 tmux 세션으로 작업을 하다가 이탈했다가 나중에 다시 접속해서 하던 작업을 그대로 진행할 수 있어서 매우 편리하다. tmux를 사용하지 않고 disown 명령으로 작업을 유지할 수도 있지만 tmux를 활용하는 방식이 더 편리하다.

현재 연결해서 작업중인 화면을 종료하려면 터미널창을 종료하듯이 exit 명령을 입력하면 되겠다. 모든 화면을 종료하면 해당 세션도 종료된다.

728x90
Posted by 반달가면