실제 실행 작업에 대한 모범 사례를 필터링하기 위해 더 많은 IQ를 제공합니다.

실제 실행 작업에 대한 모범 사례를 필터링하기 위해 더 많은 IQ를 제공합니다.

내가 체크인하면화면현재 실행 중인 작업(ctrl/a + ")에 대해 다음을 얻습니다.

 Num Name                                                                                                                
   0 -bash  
   1 -bash  
   2 -bash  

...이것은 정확합니다. 일반적으로 내 모든 화면 창에서 bash가 실행 중입니다. 그러나 이것은 내가 보고 싶은 것이 아니다. 이 창에서 실제 실행된 명령을 보고 싶습니다. ssh-ing, rsync-ing 또는 빌드 스크립트 실행 등 무엇이든 될 수 있습니다.

 Num Name                                                                                                                
   0 ssh to@this 
   1 rsync this./ [email protected]:/path
   2 make world

지금 내가 생각하는 가장 좋은 생각은 새로운 명령을 실행할 때마다 bash가 어떻게든 화면 프로세스와 대화하고 그 순간에 무슨 일이 일어나고 있는지 이해해야 한다는 것입니다. 예를 들어 Unix 파이프의 데이터그램 메시지입니다. 아마도 이것은 달성하기 쉽지 않을 것입니다.

적어도 비슷한 것을 얻을 수 있는 것이 있나요?

답변1

짧은 답변:

  • 다음 줄을 추가하십시오.$HOME/.bashrc4

    case "$TERM" in
        screen*) PROMPT_COMMAND='printf "\ek\e\\\\"'
    esac
    
  • 다음 줄을 추가하세요$HOME/.screenrc

    shelltitle '$ | bash'
    

설명하다:

screen"<search pattern>|<window name>"창 이름 과 <ESC>k<ESC>\프롬프트의 일부로 시퀀스를 설정하여 활성화되는 쉘별 경험적 방법이 있습니다.2.

<ESC>k<ESC>\화면은 이전 명령 이름을 지우고 다음 명령을 준비하는 데 사용됩니다 . 셸에서 개행 문자를 받으면 프롬프트의 끝을 검색합니다. screen일치하는 문자열 뒤의 첫 번째 단어를 가져와 명령 이름으로 사용합니다.

프롬프트의 일부로 PROMPT_COMMAND='printf "\ek\e\\\\"'설정하는 데 사용됩니다 . 하위 명령( 여기에서는 작동하지 않음) 을 <ESC>k<ESC>\사용하여 추가하여 기본 창 제목을 설정합니다.shelltitletitle

shelltitle '<end of prompt>|<default window name>'

도착하다$HOME/.screenrc2 5.

새 구성을 로드한 후에는 windowlist실행 중인 명령이 표시되어야 합니다 .


2. screen동적 제목:https://www.gnu.org/software/screen/manual/html_node/Dynamic-Titles.html#Dynamic-Titles
4. 유사한 게시물:https://superuser.com/questions/244299/gnu-screen-how-to-update-dynamically-the-title-of-a-window
5.예 shelltitle:https://www.gnu.org/software/screen/manual/html_node/Title-Screenrc.html
추가:
3. 정보 PROMPT_COMMAND:https://www.gnu.org/software/bash/manual/html_node/Controlling-the-Prompt.html

관련 정보