터미널에 정적 텍스트 레이어/열 추가

터미널에 정적 텍스트 레이어/열 추가

SSH에 대한 포트 전달을 자동으로 생성하는 스크립트가 있습니다. 하루 종일 서로 다른 서버의 여러 터미널 창에서 작업하기 때문에 포트가 내 끝에 매핑되어 있는지 확인하고 그렇다면 포트가 +1로 변경됩니다. 사용 가능한 포트를 찾았습니다. 그런 다음 포트 전달 정보를 에코하고 실행됩니다 ssh -L<port1>:localhost:<port2> <server>. 단순한.

출력이 많고 포트가 원래 무엇에 매핑되었는지 기억할 수 없으면 끝까지 스크롤하여 찾아야 합니다. 이로 인해 상단에 한 줄 또는 여러 줄의 텍스트를 추가한 다음 그 아래에 SSH 세션을 추가하는 일종의 래퍼가 있을 수 있다는 생각이 들었습니다. 나는 기본 스케치를 자유롭게 그렸습니다.

스케치

인터넷 검색을 시도했지만 아무것도 찾는 데 어려움을 겪고 있습니다. 존재하는 경우 명령은 다음과 같습니다.wrapper --text="Port forwards: L5901:localhost:5900, L8080:localhost:80" --command="ssh -L<port1>:localhost:<port2> <server>"

아마도 screen을 사용하는 것도 해결책일 수 있지만 하나의 명령으로 "모든 것"을 실행할 수 있기를 바랍니다(텍스트 줄 추가 + 그 아래에서 SSH 세션 시작).

답변1

방금 Gnome 제목 표시줄을 설정했는데 창 상단에 설정한 내용이 표시됩니다.

Bash가 헤더를 변경하는 것을 방지하려면 다음을 사용하십시오.

PROMPT_COMMAND=''
PS1='$ '

(PROMPT_COMMAND 또는 PS1이 제목 표시줄을 변경하려고 시도할 수 있음) 다음을 사용하여 제목을 설정합니다.

echo -ne "\033]0;new title with port number found\007"

서버의 PS1에도 타이틀이 설정되어 있지 않은지 확인하세요. 다음에서 이 작업을 수행할 수 있습니다 ~/.bashrc.

if [ ! -z "$SSH_CLIENT" ] ; then
   PS1='$ '
fi

(위 내용은 Ubuntu 12.04를 실행하는 서버에 필요합니다.)

명령 을 실행하세요 ssh.

ssh -t user@server "PROMPT_COMMAND='' bash -l"

PS1 및 PROMPT_COMMAND는 일부 이스케이프 시퀀스를 통해 제목 표시줄을 설정하려고 시도하지 않는 한 더 복잡할 수 있습니다( \033]0;또는\e]0;

관련된 모든 솔루션 tmuxscreen저주 기반 화면 행 유지로 인해 Gnome 터미널 스크롤 막대의 적절한 스크롤이 비활성화됩니다.

관련 정보