프린트 하기

OS 환경 : Oracle Linux 8.10 (64bit)

 

방법 : 오라클 리눅스 8 tmux 사용 가이드, 터미널 다중화 작업 수행

리눅스를 사용하다 보면 오래 걸리는 작업을 수행할때 가끔 세션 타임아웃등의 문제로 세션이 끊기는 경우가 있음
이 경우 nohup로 스크립트를 수행하지 않는 이상 스크립트가 종료되어 버리는데
이때 tmux를 사용하면 nohub 없이도 ssh 세션이 끊기더라도 기존 작업을 유지한 채 다시 연결할 수 있고
브라우저의 탭처럼 여러 터미널 세션을 동시에 열거나 화면을 여러 개의 패널로 분할해 관리할 수 있음

 

 

이전 Oracle Linux 버전에서는 screen이라는 유사한 도구를 사용하기도 했지만,
Oracle Linux의 기본 저장소(repository)에는 tmux가 포함되어 있어 이를 권장함

 

 

사용법
1. 기본 사용법
2. tmux 윈도우 관리
3. tmux 패널 관리

 

 

사용법
1. 기본 사용법
tmux 설치

1
# dnf install -y tmux

 

 

설치 확인

1
2
# rpm -qa | grep tmux
tmux-2.7-3.el8.x86_64

정상적으로 설치됨

 

 

세션 열기

1
$ tmux

단순하게 세션을 바로 열고 싶으면 tmux 명령을 이용하면됨

 

 

세션 확인

1
2
$ tmux ls
0: 1 windows (created Fri Oct 24 13:13:30 2025) [153x45] (attached)

현재 0이라는 이름의 세션이 생성됨
0이 아닌 세션에 이름을 붙이고 싶은 경우 아래와 같이 -t 옵션으로 이름을 지정해줄 수 있음

 

 

세션 나가기

1
2
3
4
$ exit
exit 시 메인 창에서 [exited]로 표시됨
$ tmux
[exited]

 

 

이름 지정하여 tmux 세션 열고 확인

1
2
3
$ tmux new -t oracletemp
$ tmux ls
oracletemp-0: 1 windows (created Fri Oct 24 13:30:34 2025) [153x45] (group oracletemp) (attached)

oracletemp라는 이름으로 세션이 열림

 

 

oracletemp tmux 세션에서 반복문 실행

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
i=1
while true; do
  echo "tmux test $i"
  ((i++))
  sleep 1
done
 
tmux test 1
tmux test 2
tmux test 3
tmux test 4
tmux test 5
tmux test 6
...

실행중

 

 

oracletemp 세션 강제로 창 종료

 

 

다시 세션 접속하여 tmux 세션 확인

1
2
$ tmux ls
oracletemp-0: 1 windows (created Fri Oct 24 13:30:34 2025) [153x45] (group oracletemp)

여전히 존재함

 

 

해당 세션으로 재접속

1
2
3
4
5
6
7
8
$ tmux attach -t oracletemp
tmux test 95
tmux test 96
tmux test 97
tmux test 98
tmux test 99
tmux test 100
tmux test 101

정상적으로 해당 세션으로 들어와지고 계속 세션이 진행중임

 

 

Ctrl+C로 while 구문 끊기

1
2
3
4
tmux test 102
tmux test 103
^C
$

 

 

세션 detatch(세션 끊지않고 메인 세션으로 나가기)
Ctrl + b 입력 후 d 입력

1
[detached (from session oracletemp-0)]

나오면 이렇게 표시됨

 

 

세션 이름 rename 후 확인

1
2
3
4
$ tmux rename-session -t oracletemp tmuxtest
no current client
$ tmux ls
tmuxtest: 1 windows (created Fri Oct 24 13:16:22 2025) [153x45] (group oracletemp) (attached)

정상적으로 tmux 세션 이름이 변경됨, 참고로 현재 해당 tmux 세션에 접속한 유저가 없으면 no current client라고 표시됨

 

 

다시 접속

1
2
$ tmux attach -t tmuxtest
(정상 접속됨)

 

 

특정 tmux 세션 종료

1
2
3
4
5
$ tmux ls
tmuxtest: 1 windows (created Fri Oct 24 13:16:22 2025) [153x45] (group oracletemp)
$ tmux kill-session -t tmuxtest
$ tmux ls
no server running on /tmp/tmux-54321/default

정상적으로 종료됨

 

 

모든 tmux 세션 종료

1
$ tmux kill-server

 

 

2. tmux 윈도우 관리
tmux의 윈도우(Window)는 브라우저 탭과 유사함
새 창을 만들거나 전환, 닫기, 이름 변경 등의 작업은 모두 Ctrl+b 조합키로 수행함

 

 

새 윈도우 생성
Ctrl + b, c
shell 창 하단에 아래와 같이 bash*로 표시됨

1
[tmuxtest]0:bash- 1:bash*                                                                                                       "ora19fs" 13:34 24-Oct-25

 

 

윈도우2 에서 echo 입력하여 창 구분 확인

1
2
$ echo "window 2"
window 2

 

 

윈도우 전환
다음 윈도우 : Ctrl + b, n
이전 윈도우 : Ctrl + b, p
특정 윈도우로 이동 (예: 1번): Ctrl + b, 1

 

 

윈도우 종료
Ctrl + b, &
kill-window bash? (y/n) 라고 표시됨
y 입력 후 종료

 

 

윈도우 이름 변경
Ctrl + b, ,
새 이름 입력 후 Enter

1
2
(rename-window) newwin
[tmuxtest]0:bash- 1:newwin*                                                                                                     "ora19fs" 13:38 24-Oct-25

 

 

3. tmux 패널 관리
수직 분할
Ctrl + b, %

 

 

수평 분할
Ctrl + b, "

 

 

패널 전
Ctrl + b 후 방향키(←, ↑, ↓, →)

 

 

패널 종료
Ctrl + b, x 후 y 입력하여 확인

 

 

새 윈도우 생성
Ctrl + b, c
(새 윈도우에서는 이전 분할이 보이지 않음)

 

 

이전 윈도우로 돌아가기
Ctrl + b, p

 

 

참고
tmux 세션에서 또 tmux 명령을 입력하면 사용이 안됨

1
2
$ tmux
sessions should be nested with care, unset $TMUX to force

 

 

참조 : 

https://docs.oracle.com/en/learn/ol-tmux/#manage-multiple-tmux-sessions