티스토리 뷰

반응형

Linux 환경에서는 터미널을 사용하여 시스템에 접근한다. 터미널의 특성 상 백그라운드 프로세스로 프로그램을 실행시키지 않으면 터미널을 종료했을 때 실행되고 있던 모든 프로그램이 종료된다. 또 다른 터미널의 특성으로 발생하는 문제는 동시에 여러 프로그램을 실행시키기 힘들다는 점이다. 로컬 터미널의 경우 탭을 여러개 만들거나 여러 터미널 창을 띄울 수 있으나 원격 터미널의 경우 여러 터미널을 띄우기 위해서는 터미널 갯수만큼의 연결이 필요하다. 위와 같은 다양한 문제점들은 모두 tmux를 사용한다면 손쉽게 해결이 가능하다. tmux는 과연 무엇이며, 어떻게 사용하는지 자세히 알아보도록 하자.

tmux란 무엇인가

tmux란 terminal multiplexer의 약자로 하나의 터미널을 분할하는 방식을 사용하여 여러 프로그램들을 손쉽게 실행하고, 실행한 프로그램을 백그라운드 모드로 전환/복귀할 수 있도록 도와주는 프로그램이다.

tmux 설치 방법

tmux는 대부분의 패키지 관리자를 통해서 설치할 수 있다. Debian 계열 Linux는 apt, Redhat 계열 Linux는 yum을 사용하여 설치할 수 있다.

# Debian 계열(Ubuntu, Mint, ...)
sudo apt-get install tmux

# Redhat 계열(Redhat, CentOS, Fedora, ...)
sudo yum install tmux

tmux를 설치하였다면 new-session 옵션을 사용하여 새로운 세션을 생성하여 화면 분할, 백그라운드 프로세스로 전환/복귀 기능을 사용해 보자.

# 새 tmux 세션 생성하고 해당 세션으로 이동하기
tmux new-session -s <세션이름>

위의 명령어를 사용하면 세로운 세션이 만들어지며 아래과 같이 tmux 세션으로 터미널이 이동하게 된다. 해당 세션을 백그라운드 프로세스로 전환하고 처음 로그인한 shell로 이동하려면 ctrl+b 키를 누르고 손을 떼었다가 d 키를 누른다.

tmux 100% 활용하기

1. tmux를 사용하여 화면 분할하기

tmux new-session 명령어로 새 세션을 생성하였다면 이제 화면을 분할할 수 있다.

ctrl+b 키를 누른 후 손을 떼었다가 %를 입력(shift+5)하면 가로로 터미널 화면을 분할할 수 있고,

ctrl+b 키를 누른 후 손을 떼었다가 "를 입력(shift+')하면 세로로 터미널 화면을 분할할 수 있다.

분할 후에는 위의 이미지와 같이 분할된다.

분할된 창 끼리 커서 전환을 하려면 ctrl+b 키를 누른 후 손을 뗀 후 이동하려는 방향으로 방향키를 누르면 된다.

2. tmux를 사용하여 백그라운드 프로세스 전환/복귀

생성한 세션을 백그라운드 프로세스로 전환하고 처음 로그인한 shell로 이동하려면 ctrl+b 키를 누르고 손을 떼었다가 d 키를 누른다. 처음 로그인한 shell로 이동이 완료되면 [detached (from session <세션이름>)]이라는 문구를 확인할 수 있다.

현재 동작중인 백그라운드 세션 목록을 확인하려면 tmux ls 명령을 사용해야 한다.

백그라운드에서 동작중인 tmux 세션으로 다시 복귀하려면 attach 옵션을 사용하면 된다.

# 현재 동작중인 세션 목록 확인
tmux ls
# <세션이름>이라는 이름을 가진 백그라운드 tmux 세션으로 복귀
tmux attach -t <세션이름>

3. 마우스로 tmux 세션 창 크기조절 및 커서 이동 가능하도록 설정 변경하기

tmux로 세션의 창을 나누고 나면 일일이 키를 입력하여 창을 이동하여야 하며 창 크기조절도 어렵다. 따라서 마우스로 tmux 터미널 창의 크기를 변경할 수 있도록 tmux 설정을 변경하면 무척 편리하다. 리눅스 홈 디렉토리에 .tmux.conf 파일을 생성하여 아래의 내용을 작성하여 저장하자.

set -g mouse on

그 후 새 세션을 생성하면 마우스로 창 크기를 변경할 수 있으며, 파일을 생성하기 전에 생성된 세션의 경우 세션 내에서 ctrl+b 키를 누른 후 source-file ~/.tmux.conf 명령을 입력하면 변경된 설정을 적용할 수 있다.

유용한 tmux 단축키

대부분의 단축키는 기본 명령 키인 ctrl+b를 먼저 누르고 다음 단축키를 누르는 방식으로 동작한다. 예를 들어 ctrl+b, x 라고 적혀있는 단축키는 ctrl+b 키를 눌렀다가 손을 뗀 후 곧바로 x 키를 누르는 식이다. 아래에 더 다양한 단축키들을 정리해 보았다.

  • 세션 내 활성 창 종료 : ctrl+b, x
  • 세션 내 전체 창 종료 : ctrl+b, &
  • 세션 내 창 회전 : ctrl+b, ctrl+o
  • 세션 이름 변경 : ctrl+b, ,(컴마)
  • 세션 내 스크롤 올리기/내리기 : ctrl+b, Page Up/Page Down
    • 명령어 입력 상태로 복귀하려면 ctrl+c 키를 누르면 됨
  • 세션 내 활성 창에서 복사 모드로 전환 : ctrl+b, [
    • 복사 모드로 전환된 뒤 마우스로 복사할 텍스트를 드래그하면 해당 텍스트가 복사된다.
  • 세션 내 활성 창에서 복사된 텍스트 붙여넣기 : ctrl+b, ]
반응형
댓글