이미 TMUX에있는 TMUX 세션을 분리하는 방법은 무엇입니까?


118

로컬 컴퓨터에서 tmux 세션을 열고 원격 컴퓨터로 ssh했습니다. 그런 다음 원격 컴퓨터에서 "tmux attach"명령을 입력 한 다음 로컬 tmux 세션에서 원격 tmux 세션을 얻었습니다.

이제 원격 TMux 세션을 분리하고 싶습니다.

C-b d

하지만 원격 세션 대신 로컬 tmux 세션을 분리했습니다.

원격 TMUX 세션을 분리하려면 어떻게해야합니까?

답변:


162
C-b C-b d

(기본 바인딩 가정)

첫 번째 Cb 는 로컬 tmux에 의해 해석됩니다 (모든 키 입력을 가장 먼저 볼 수 있기 때문에). 두 번째 Cb 는 로컬 tmux가 활성 창으로 Cb 를 보내도록하는 명령입니다 . 이 생성 된 Cb 는 원격 tmux에 도착합니다 . D는 로컬 통과 TMUX 변경; 원격 tmux에 도달 하면 detach명령 이 트리거됩니다 .

  1. Cb를 입력하십시오 .
    지역 tmux 는이를 접두사 키로 해석합니다. 로컬 tmux 에서 실행되는 프로세스에는 아무것도 전송되지 않습니다 .
  2. Cb를 입력하십시오 .
    로컬 tmuxsend-prefix명령에 바인딩했습니다 .
    1. 로컬 tmux 는 활성 분할 창 ( ssh ) 에서 실행중인 프로세스 로 Cb 를 보냅니다 .
    2. ssh 는 ( sshd 등을 통해 ) 원격 끝에서 실행되는 프로세스 (원격 tmux )로 전달합니다.
      원격 tmux 는이를 접두사 키로 해석합니다. 원격 tmux 에서 실행중인 프로세스에는 아무것도 전송되지 않습니다 .
  3. d를 입력하십시오 .
    로컬 tmux 는 정상적으로 통과합니다 (두 번째 Cb 가 로컬 tmux에 대한 전체 명령 키 시퀀스를 완료 했기 때문에 ).
    당신의 원격 tmux 는 그것에 묶여있다 detach-client; 활성 클라이언트를 분리합니다.

이것은 tmux 세션 내에서 실행되는 모든 프로그램에 Cb 를 보내야 할 때와 동일 합니다. Cb 를 일반 쉘로 보내 려면 (예를 들어 쉘이 Cb 가 있는 곳에서 Emacs 스타일 편집을 사용하고 (화살표 키를 사용하지 않는 경우)) Cb Cb 를 사용 하여 쉘에 단일 Cb가져와야 합니다.backward-char


8
또는 C-a C-a마지막 활성 창 으로 이동 하는 사용법을 자주 보았습니다 . 이러한 상황에서는 C-a a d분리를 시도 하십시오. 감사!
mkelley33

2
참고 : 위에서 언급 한 콤보 는 사용자의 tmux.conf a대신 키가 바인딩 된 경우에만 사용할 수 있습니다 b.
mkelley33

내 외부 TMUX는 사용 C-a과 내부 하나 C-b, 나를 위해 작동하는 유일한 방법은 내부 하나에서 분리 할 수 C-a C-b-b d있지만 두 번째 필요합니까 왜하지 않습니다b
기옘 Cucurull

사람들이 기본 키 바인딩이없는 경우이 옵션을 활성화 할 수 있도록하기위한 알림 : :명령을 실행하여 tmux 명령을 대화식으로 실행 한 다음 bind-key -n j send-prefix명령을 통해 바인딩을 설정할 수 있습니다. 이 예제에서는 j접두사를 보내도록 바인딩 하고 싶었습니다 . 그렇지 않으면 Dave의 답변을 사용하십시오 tmux detach. 명령을 사용하십시오 .
nealmcb

46

올바른 tmux 인스턴스에 대한 키 바인딩에 대해 걱정하지 않고이를 수행하는 다른 방법 tmux detach은 원격 tmux 세션 을 입력 하는 것입니다.


8

나는 첫 번째 대답을 성공하지 못했습니다.

다음을 수행하여 원하는 결과를 얻을 수있었습니다.

tmux attach

나는 tmux에 들어가서 다른 세션이 여전히 연결되어 있음을 보았다

그래서 나는 현재 세션을 분리하여 쉘로 돌아왔다. Ctrl + b; d

그런 다음 다음을 발행했습니다. tmux attach -d

기본 세션에 연결하고 현재 연결된 다른 모든 세션을 분리하라는 메시지가 표시됩니다. 클라이언트 및 세션 의 매뉴얼 페이지를 참조하십시오

attach-session [-dr] [-t target-session] (별칭 : attach) tmux 외부에서 실행되는 경우 현재 터미널에서 새 클라이언트를 작성하여 대상 세션에 연결하십시오. 내부에서 사용하는 경우 현재 클라이언트를 전환하십시오. -d를 지정하면 세션에 연결된 다른 클라이언트가 분리됩니다. -r은 클라이언트가 읽기 전용임을 나타냅니다 (detach-client 명령에 바인드 된 키만 영향을 미칩니다)


0

다른 옵션을 시도하려면 아래 단계를 따르십시오

  1. 으로 현재 tmux 세션을 분리하십시오 Ctrl+b d. 이제 일반 터미널 명령 줄 프롬프트로 이동합니다.
  2. 을 수행하십시오 tmux ls. 현재 연결된 세션을 찾으십시오
  3. 이미 연결된 세션을 분리하려면이 명령을 실행하십시오. tmux detach-client -s <attached_session_name>
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.