Linux에서 tmux를 사용하는 방법(화면보다 나은 이유)

Linux tmux 명령은 screen과 같은 터미널 멀티플렉서입니다. 옹호하는 사람들이 많고 목소리가 높기 때문에 우리는 둘을 비교하기로 결정했습니다. tmux가 정말 더 나은가요? 아니면 그냥 알고 있는 것을 선호하는 경우인가요?

tmux 대 화면

tmux 및 GNU 화면 명령 모두 터미널 멀티플렉서. 단일 터미널 창 내에서 여러 창을 가질 수 있고 창 사이를 앞뒤로 이동할 수 있습니다. 창은 각각 독립적인 명령줄을 제공하는 창으로 나눌 수 있습니다.

세션을 분리하면 백그라운드에서 실행되는 헤드리스 엔터티가 될 수도 있습니다. 세션을 시작한 터미널 창을 닫을 수도 있습니다. 준비가 되면 새 터미널 창을 열고 여전히 실행 중인 세션을 다시 연결할 수 있습니다. SSH 연결을 통해 이 작업을 수행할 수도 있습니다.

한 컴퓨터에서 세션을 분리하고 집으로 돌아가 원격 컴퓨터에 로그인할 수 있습니다. 다시 연결되면 백그라운드 세션을 다시 연결하고 대화식으로 다시 사용할 수 있습니다.

화면 명령은 무엇입니까?

screen 명령은 터미널 멀티플렉서이기도 하며 옵션으로 가득 차 있습니다. 그것으로 할 수 있는 모든 것에 대한 자세한 내용은 심층 기사를 확인하세요.

이번에는 우리가 할 tmux에 집중하다. 계속 진행하면서 화면이 동일한 기능을 처리하는 방법을 언급할 것입니다.

화면에 대해 우리를 짜증나게 한 것은 단 한 가지였습니다. 우리는 그것을 다룰 때 그것을 다룰 것이고 tmux가 더 나은지 확인할 것입니다.

tmux 설치

screen은 일반적으로 인기 있는 Linux 배포판에 기본적으로 설치되지만 tmux는 그렇지 않습니다. Ubuntu에 tmux를 설치하려면 다음을 입력하십시오.

sudo apt-get install tmux

Manjaro에서는 pacman을 사용할 수 있습니다.

sudo pacman -Sy tmux

Fedora 31에는 tmux가 이미 설치되어 있습니다.

tmux 세션 시작

tmux를 시작하려면 입력하고 Enter 키를 누르십시오.

tmux

터미널 창은 tmux 세션에 있을 때 상태 표시줄을 표시합니다.

  Mac을 사용하여 Apple TV에서 스크린샷을 찍는 방법

상태 표시줄의 오른쪽에는 호스트 이름, 시간 및 날짜가 표시됩니다. 왼쪽에는 다음과 같은 세션 관련 정보가 표시됩니다.

[0]: 세션명입니다. 기본적으로 0부터 시작하여 번호가 매겨집니다. 아래에서 세션에 의미 있는 이름을 지정하는 방법을 다룹니다.
0:bash*: 0은 이것이 이 세션의 첫 번째 창임을 나타냅니다. 이 세션에서 실행되는 유일한 프로세스는 bash입니다. 프로그램을 실행하면 프로그램 이름이 여기에 표시됩니다. 별표

이것은 당신이 보고 있는 창임을 의미합니다. tmux 세션에서 새 창을 만들 때마다 창 번호와 이 창에서 실행 중인 프로그램 이름이 상태 표시줄에 추가됩니다.

screen 명령은 상태 표시줄을 제공하지 않습니다. 무슨 일이 일어나고 있는지 알기 위해서는 눈을 멀게 하고 재치에 의존해야 합니다. 이는 약간의 연습이 필요합니다.

플러스 측면에서 터미널 창 부동산 라인을 잃지 않을 것입니다. 물론 터미널 멀티플렉서를 사용할 가치가 있도록 일반적으로 터미널 창을 확장합니다. 이 경우 상태 표시줄에 대한 한 줄의 손실은 큰 문제가 되지 않습니다. 정보를 볼 수 있도록 터미널 창의 이미지를 기본 크기로 두었습니다.

명령은 키 입력을 사용하여 tmux에 제공되며 여기에는 두 부분이 있습니다. 먼저 Ctrl+B를 눌러 tmux의 주의를 끕니다. 그런 다음 빠르게 다음 키를 눌러 totmux 명령을 보냅니다. 명령은 문자, 숫자, 구두점 또는 화살표 키를 눌러 제공됩니다.

주의를 끌기 위해 Ctrl+A를 누르는 것을 제외하고는 화면에서 동일합니다.

창을 닫으려면 Ctrl+B를 누른 다음 빠르게 X를 누르십시오. 상태 표시줄이 황색으로 바뀝니다. 그런 다음 창을 종료할 것인지 확인하는 메시지가 표시됩니다.

창을 닫으려면 Y를 누르고 마음이 바뀌면 N을 누르십시오. 나중에 Enter 키를 누를 필요가 없습니다. Y 또는 N은 선택을 등록하기에 충분합니다.

Y를 누르면 창이 닫힙니다. 이 세션의 유일한 창이므로 세션이 종료됩니다.[exited]tmux 세션이 닫히고 tmux를 시작한 명령줄로 돌아갑니다. 당신은 볼 수 “

” 터미널 창에서.

이것은 명백한 것을 말하는 것처럼 보일 수 있지만 세션을 닫고 분리되어 실행 중인 상태로 두지 않았음을 확인하는 것입니다. 세션 분리에 대해서는 아래에서 논의할 것입니다.

명명된 tmux 세션 시작

여러 tmux 세션을 정기적으로 시작하는 경우 각 세션에 의미 있는 이름을 지정하는 기능을 빠르게 이해할 수 있습니다. 화면에서도 세션의 이름을 지정할 수 있지만 세션 창에는 표시되지 않습니다.

tmux new -s geek-1

세션 이름으로 tmux를 시작하려면 new(새 세션) 명령과 -s(세션 이름) 옵션을 사용합니다. 세션의 이름은 “geek-1″이므로 다음을 입력합니다.

tmux 세션이 로드되면 맨 왼쪽에 있는 상태 표시줄의 첫 번째 항목으로

이름이 있는 tmux 세션

더 많은 창 추가 현재 세션에서 새 창을 만들려면 Ctrl+B를 누른 다음 C를 누릅니다. 현재 세션에서 빈 터미널 창이 나타납니다. 이 새 창에서 실행 중인 항목이 있으므로 시작하겠습니다. dmesg 명령

dmesg -w

-w(팔로우) 옵션 사용:

  Linux에서 Just Cause 3를 플레이하는 방법

이제 세션에 두 개의 창이 있습니다. 하나는 실행 중이고 다른 하나는 dmesg입니다. 그러나 한 번에 하나씩만 볼 수 있습니다(잠시 후에 자세히 설명).

상태 표시줄의 왼쪽을 살펴보십시오. 우리는 여전히 “geek-1” tmux 세션에 있습니다. 0번 창에서 top이 실행 중이고 1번 창에서 dmesg가 실행 중입니다. 별표

dmesg가 표시되는 창을 알려준 후.
창 사이를 이동하려면 Ctrl+B를 누르고 다음 키 중 하나를 누릅니다.
N: 다음 창을 표시합니다.

P: 이전 창을 표시합니다.

0 ~ 9: 0 ~ 9의 창을 표시합니다.

목록에서 창을 선택할 수도 있습니다. Ctrl+B를 누른 다음 W를 누르면 창 목록이 나타납니다.

황색 강조 표시줄을 이동하려면 위쪽 또는 아래쪽 화살표, Home 또는 End를 누릅니다. 디스플레이의 하단 섹션에는 강조 표시된 창의 콘텐츠 미리보기가 표시됩니다.

Enter 키를 눌러 강조 표시된 창으로 이동하거나 Esc 키를 눌러 전환하지 않고 창 목록을 종료합니다.

세션 분리 및 연결

Ctrl+B를 누른 다음 D를 누르면 세션이 분리됩니다. 백그라운드에서 계속 실행되지만 보거나 상호 작용할 수 없습니다.

세션의 맨 위에서 시작했으므로 시연할 실행 중인 프로세스가 있습니다. 그런 다음 Ctrl+B를 누른 다음 D를 누릅니다. 세션이 사라지고 백그라운드 세션이 됩니다.

원래 터미널 창으로 돌아갑니다. 세션이 분리되었다는 tmux의 메시지가 있습니다. 그것은 또한 우리가 세션에 부여한 이름을 생각나게 합니다. 이는 백그라운드 세션에 연결한 다음 대화형 세션으로 복원하는 데 사용하기 때문에 편리합니다.

tmux attach-session -t geek-1

분리된 세션을 연결하기 위해 -t(대상 세션) 옵션과 함께 자명한 attach-session 명령을 사용합니다. 또한 기억할 세션의 이름도 제공합니다.

다음을 입력합니다.

세션이 반환되고 다시 표시되는 대화형 세션이 됩니다.

세션을 분리하기 전에 실행한 장기 실행 또는 연속 프로세스는 세션을 연결할 때 완료되지 않는 한 백그라운드에서 계속 실행됩니다.

screen은 이것을 할 수 있지만 직관적으로 그렇게 할 수는 없습니다.

tmux new -s geek-2

다중 세션 처리

dmesg -w

다른 터미널 창을 열고 “geek-2″라는 새 tmux 세션을 시작하겠습니다.

그 세션에서 우리는 dmesg를 시작할 것입니다:

이제 원래 “geek-1” tmux 세션과 “geek-2″라는 새 세션이 있습니다.

상태 표시줄은 이 세션이 “geek-2″라는 것을 보여주며 dmesg를 실행하는 창이 하나 있습니다.

Ctrl+B를 누른 다음 D를 누르면 해당 세션이 분리됩니다.

“geek-1” tmux 세션으로 돌아가서 Ctrl+B를 누른 다음 S를 눌러 tmux 세션 목록을 봅니다.

분명히 하자면 이것은 세션 목록입니다. 이전에 본 유사한 디스플레이는 단일 세션의 창 목록이었습니다.

위쪽 및 아래쪽 화살표, 홈 및 종료를 눌러 황색 강조 표시줄을 이동할 수 있습니다. 하단 섹션에는 강조 표시된 세션의 콘텐츠 미리보기가 표시됩니다.

  PowerPoint 애니메이션을 비활성화하거나 삭제하는 방법

오른쪽 화살표를 누르면 강조 표시된 세션의 창이 표시됩니다.

Enter 키를 눌러 강조 표시된 세션이나 창으로 이동하거나 Esc를 눌러 세션을 변경하지 않고 세션 목록을 종료합니다. 새 세션을 선택하면 현재 세션이 분리되고 선택한 세션이 연결됩니다.

이 작업을 수행하기 전에 “geek-2” 세션을 분리했습니다. 그러나 원래 터미널 창에 여전히 연결된 세션에서 이 작업을 수행할 수 있습니다. 그렇게하면 화면 변경 사항이 두 tmux 세션에서 동시에 나타납니다.

screen 명령도 유사한 명령 집합을 통해 이 작업을 수행할 수 있습니다.

창으로 작업하기

Ctrl+B를 누른 다음 큰따옴표(“”)를 누르면 창을 가로로 두 개의 창으로 분할합니다.

이것은 현재 창에만 영향을 줍니다. 세션의 다른 항목은 변경되지 않습니다. 이 세션의 창을 나열하기 위해 상단 창에서 tmux ls 명령을 사용했습니다. 두 가지가 있으며 상태 표시줄은 우리가 창 1에 있음을 알려줍니다. Ctrl+B를 누른 다음 0(영)을 눌러 창 0으로 건너뛰면 우리가 그대로 둔 것을 볼 수 있습니다.

이것은 하나의 창에 두 개의 보기가 아니라 두 개의 독립적인 명령줄입니다. 그것들은 뚜렷하고 분리된 껍질입니다. 각 창에서 다른 명령을 실행하여 이를 표시할 수 있습니다.

다음을 입력합니다.

우나메 -a

ls -hl

한 창에서 다른 창으로 이동하려면 Ctrl+B를 누른 다음 위쪽, 아래쪽, 왼쪽 또는 오른쪽 화살표를 누릅니다.

Ctrl+B를 누른 다음 백분율 기호(%)를 누르면 현재 창을 세로로 분할합니다.

Ctrl+B를 누른 다음 Q를 눌러 tmux가 각 창의 번호를 짧게 깜박이게 합니다.

이 번호는 tmux의 프롬프트 및 메시지에 사용됩니다. Ctrl+B를 누른 다음 X를 눌러 현재 창을 닫습니다. 상태 표시줄이 황색으로 바뀌고 해당 창 번호를 닫을 것인지 확인하는 메시지가 표시됩니다. Y를 눌러 창을 제거하거나 N을 눌러 그대로 두십시오.

Y를 누르면 창이 제거됩니다.

screen 명령에도 창이 있지만 사용하기가 덜 직관적입니다. 화면에 대해 우리를 짜증나게 하는 것은 창이 있는 세션을 분리하는 경우 해당 세션을 다시 연결하면 창이 사라집니다. 이것은 매우 빨리 늙습니다.

A Ctrl+B 치트 시트

아래에 tmux에서 사용할 수 있는 다양한 명령의 치트 시트가 포함되어 있습니다.
세션 명령
S: 세션을 나열합니다.
$: 현재 세션의 이름을 바꿉니다.

D: 현재 세션을 분리합니다.

Ctrl+B를 누른 다음 ?: tmux에 도움말 페이지를 표시합니다.
창 명령
C: 새 창을 만듭니다.
,: 현재 창의 이름을 바꿉니다.
여: 창문을 나열해.
N: 다음 창으로 이동합니다.

P: 이전 창으로 이동합니다.

0 ~ 9: 지정한 윈도우 번호로 이동합니다.
창 명령
%: 가로 분할을 만듭니다.
“: 세로 분할을 만듭니다.
H 또는 왼쪽 화살표: 왼쪽 창으로 이동합니다.
I 또는 오른쪽 화살표: 오른쪽 창으로 이동합니다.
J 또는 아래쪽 화살표: 아래 창으로 이동합니다.
K 또는 위쪽 화살표: 위의 창으로 이동합니다.
Q: 창 번호를 간략하게 표시합니다.
O: 창을 순서대로 이동합니다. 누를 때마다 모든 항목을 반복할 때까지 다음 항목으로 이동합니다.
}: 현재 창의 위치를 ​​다음 창으로 바꿉니다.

{: 현재 창의 위치를 ​​이전 창으로 바꿉니다.

X: 현재 창을 닫습니다.

비교 방법

기능면에서 screen과 tmux는 모두 유사하게 작동하며 동일한 주요 기능을 제공합니다. 이는 현저하게 다른 기능에 액세스하는 방법입니다. tmux는 다양한 기능을 사용할 수 있는 더 매끄럽고 편안한 방법을 제공합니다. 그러나 그것만이 유일한 차이점은 아닙니다.

tmux에서 세션과 창의 이름을 바꾸는 기능은 깔끔하고 세션을 다시 연결할 때 창을 유지한다는 사실은 게임 체인저입니다.

반면에 세션을 분리했다가 다시 연결하면 화면이 완전히 사라집니다. 이것은 처음부터 분리를 방지할 만큼 충분히 성가신 일입니다.

엄청나게 유연한 스크립팅 기능을 포함하여 tmux에는 훨씬 더 많은 것이 있습니다. 당신은 그것을 확인하기 위해 자신에게 빚지고 있습니다.