화면의 'at'명령에 해당하는 tmux?


3

암소 비슷한 일종의 영양 screen 명령이있다. at,이를 통해 다른 세션을 보낼 수 있습니다. 화면 그들에게 명령. 그렇다 tmux 그런 게 있니? 나는 노력했다. send-prefixsend-keys, 그러나 이들은 실행중인 프로세스에 키를 보낸다. 내부 tmux; tmux 자체를 제어하는 ​​데 이들을 사용할 수 없습니다.

다음과 같은 방법으로 제어 명령을 보내려고합니다 :

send-keys -t main:1 "tmux select-window -t :1" ENTER

내부 프로세스가 셸이 아닌 다른 것이면 작동하지 않습니다. 또한 내부 프로세스가 셸 인 경우에도 연결된 세션에서 키를 보내는 경우 오류가 발생합니다. (이 경우 현재 세션이 영향을받습니다.)


1
일반적으로 "스크립트 작성" tmux 호출을 통해 명령을 내리는 것입니다. tmux 이진; 명령이 외부에서 실행되는 경우에도 작동합니다. tmux 세션 (기본값 이외의 값을 제공하는 한 -L 또는 -S 올바른 서버를 찾을 수있는 값). 사용할 필요가 없다. send-keys 수신 창에 적절한 셸 수신이 이루어지기를 바랍니다. 네가 너를 도울 수없는 이유가 있니? tmux select-window -t main:1 직접? 대안 적으로, bind-key C-n select-window -t main:1 바인딩으로 작동해야합니다 (원하는대로 키 조정).
Chris Johnsen

아, 네, 그게 내가 원하는대로 작동합니다. 나는 무엇인가의 이유로 select-window 명령은 현재 세션의 컨텍스트에서 수행되고 대상 세션에 별도로 영향을주지 않고 해당 대상 창에 연결됩니다. 나는 모든 것을 시도했지만 가장 직접적인 방법을 시도했다고 생각합니다. 감사. :) 답변에 대한 귀하의 의견을 홍보 해 주시겠습니까? 그러면 같은 질문을 가진 다른 사람들이 받아 들인 대답을 찾을 것입니다.
Kurt Hutchinson

답변:


2

선택 사항이지만 대상 창 지정자는 tmux 창 명령은 수락합니다 (즉, -t-s 옵션)은 모든 세션에서 직접 창을 지정할 수 있습니다. 대상 창의 구문은 다음과 같이 작동합니다.

  • 세션 : 창문 어디에
    • 세션 ~이다.
      • 클라이언트에 대한 지정자 (해당 클라이언트의 현재 세션 지정) 또는
      • 정확한 접두사 또는 fnmatch (3) (예 : "glob")이 세션 이름과 일치하는지
    • 창문 ~이다.
      • 창 인덱스 또는
      • 정확한 접두사 또는 fnmatch (3) 아래 창 이름 세션 .
  • 창문 (지정자에 콜론이없는 경우에만) 어디에서
    • 창문 그것은 현재 세션으로 제한된다는 점을 제외하고는 위와 같습니다.

두 번째 양식은 아마도 가장 일반적으로 사용되는 양식이지만, 귀하의 경우에 첫 번째 양식을 원하는 것처럼 들립니다.

이 명령을 실행할 수 있어야합니다 :

tmux select-window -t main:1

어디서든 목표를 달성 할 수 있습니다. 예를 들어, 쉘 스크립트가 문맥 밖에서 완전히 실행되면 tmux 세션 (예 : 크론 ) - 기본값이 아닌 값을 제공하는 한 -L 또는 -S tmux 옵션 값을 사용하여 명령이 서버의 소켓을 찾을 수 있도록합니다.

바인딩으로 할 수도 있습니다 (예 : ~/.tmux.conf 파일이나 tmux : 신속한; 키 지정자를 원하는대로 조정하십시오.)

bind-key C-m select-window -t main:1

그런 다음이 바인딩이있는 서버의 세션에 연결된 모든 클라이언트에 Prefix 및 C-m을 입력하면 세션 일치를 전환합니다 main 인덱스 1의 윈도우로 이동합니다.


"대상 지정자"구문은 해당 명령의 "명령"섹션에 설명되어 있습니다. tmux 맨 페이지 (첫 번째 항목 검색 target-client, target-session, target-window, 또는 target-pane 관련 설명을 찾으십시오).

나는 결코 사용한 적이 없다. 화면 '에스 at 명령이지만 반복 기능이있는 것처럼 보입니다. 현재로서는 직접적인 일치는 없습니다. tmux ,하지만 출력을 파싱하여 "스크립트"를 작성하는 것이 매우 쉽습니다. list-clients, list-sessions, list-windows, 및 list-panes (최신 버전의 tmux ~을 가지다 -F 옵션을 사용하면 구문 분석이 더 쉬운 출력을 생성 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.