SSH 텔넷 후 다른 시스템으로의 터미널 제목 수정

SSH 텔넷 후 다른 시스템으로의 터미널 제목 수정

이제 Perl 코드 줄을 사용하여 터미널 표시줄의 제목을 변경하고 있습니다.

print("\e]0;@ARGV\7");

그러나 다른 원격 시스템으로 SSH를 연결할 때마다 호스트에 의해 헤더가 수정됩니다(이 점에 대해서는 특별히 걱정하지 않습니다). 하지만 연결을 종료한 후에도 수정된 제목이 여전히 존재합니다. 이 문제를 해결할 방법이 있나요? 기본적으로 로컬에서 작동할 때 터미널에 대한 고정된 제목을 갖고 싶습니다.

저는 주로 CentOS나 Debian에서 xfce 터미널과 터미네이터를 사용합니다. 감사해요.

편집하다

또 다른 미묘한 점은 모든 터미널의 이름을 동일하게 하는 것보다 제목을 즉석에서 자유롭게 편집할 수 있지만 편집 내용을 수정하는 SSH 세션만 비활성화하고 싶다는 것입니다.

답변1

해결 방법: ~/.bashrc에 몇 가지 기능을 추가하여 작업을 수행하세요.뒤쪽에ssh 및 su 명령

function title()
{
   # change the title of the current window or tab
   echo -ne "\033]0;$*\007"
}

function ssh()
{
   /usr/bin/ssh "$@"
   # revert the window title after the ssh command
   title $USER@$HOST
}

function su()
{
   /bin/su "$@"
   # revert the window title after the su command
   title $USER@$HOST
}

참고: ~/.bashrc를 편집한 후 bash를 다시 시작하세요.

예:

# title is "user1@boxA"
ssh boxB  # auto changes title while on boxB to "user1@boxB"
exit
# title returns back to "user1@boxA" because of our title call in ssh()
su - user2 # auto changes title while switched user to user2: "user2@boxA"
exit
# title returns back to "user1@boxA" because of our title call in su()

도움이 되길 바랍니다.

답변2

창 제목은 모르지만 ssh 세션이 종료될 때 시스템이 작업을 수행하도록 하려고 노력해 왔습니다. 실제로는 ssh 세션이 종료된 후입니다. 간단히 말해서, 그런 식으로는 작동하지 않습니다. 기본적으로 세 가지 옵션이 있습니다.

  1. ssh$PATH보다 우선하고 중간 어딘가에 줄을 포함 하는 실행 가능한 쉘 스크립트인 ssh 주위에 래퍼를 작성합니다 /usr/bin/ssh. exec /usr/bin/ssh $@이를 통해 오버헤드를 최소로 유지하면서 유효한 SSH 바이너리가 실행되기 전후에 쉘이 일부 작업을 수행하도록 할 수 있습니다.

  2. 명령줄이나 일부 구성 설정을 통해 전달된 셸 명령을 실행하는 정리 후크를 제공하는 원하는 SSH 소스에 대한 패치를 작성하세요. 이것이 우리가 원하는 것입니다.

  3. 평가 PROMPT_COMMAND결과 history. 기본적으로 더 일반적이고 추악한 접근 방식 1.

답변3

동일한 메커니즘을 사용하여 로컬 셸 도트 파일(예: $PROMPT_COMMAND)을 구성하여 터미널 제목을 적절하게 설정합니다.~/.bashrc

예를 들어:

export PROMPT_COMMAND="printf '\e]0;bash\7\n'"

답변4

SSH를 종료했을 때 다른 답변이 작동하지 않았지만 가까워졌습니다. setw 자동 이름 바꾸기를 추가하면 원격 SSH 세션을 종료할 때 작동하므로 자동으로 이름이 바뀌므로 재설정하기 위해 창을 종료할 필요가 없습니다. [1월. 2018 - 데비안 9]

ssh() {
tmux rename-window "$*"
command ssh "$@"
tmux setw automatic-rename
}

관련 정보