다른 컴퓨터에 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우선 순위를 갖는 실행 가능한 쉘 스크립트를 작성합니다. 이를 통해 효과적인 ssh 바이너리가 실행되기 전후에 쉘이 몇 가지 작업을 수행하도록 하면서 오버헤드를 최소화할 수 있습니다./usr/bin/sshexec /usr/bin/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
}

관련 정보