화면 명령은 쉘 제목을 현재 호스트 이름으로 설정합니다.

화면 명령은 쉘 제목을 현재 호스트 이름으로 설정합니다.

쉘 제목을 현재 로그인한 호스트 이름으로 설정하는 방법을 알고 싶습니다. 내 시나리오는 이렇습니다. 호스트 A에 로그인한 다음 화면을 열고 여러 개의 새 창을 만들고 SSH를 통해 이 창의 다른 호스트에 연결했습니다. 그래서 하단의 화면 제목에 현재 호스트가 표시되도록 하고 싶습니다. 나는 맨 아래에 있는 이 특정 문자열에 대해 이야기하고 있습니다.

답변1

이를 달성하는 한 가지 방법은 LocalCommand함수를 사용하는 것입니다 ssh. 이 방법을 사용하면 원격 호스트에 성공적으로 연결한 후 터미널 제목을 변경하는 데 사용되는 이스케이프 문자열이 인쇄됩니다.

~/.ssh/config다음을 포함하도록 편집하거나 생성하십시오 .

Host *
    PermitLocalCommand yes
    LocalCommand printf '\033]0;%%s\007' '%h'

이 방법의 단점은 원격 서버에서 로그아웃한 후에도 헤더가 변경된 상태로 유지된다는 것입니다. 다음을 통해 이 문제를 해결할 수 있습니다.

printf '\033]0;%s\007' "$(uname -n)"

이를 자동화하려면 다음 기능을 사용할 수 있습니다.

lssh () {
    /path/to/ssh "$@"
    printf '\033]0;%s\007' "$(uname -n)"
}

이 답변은 터미널 에뮬레이터가 다음을 사용한다고 가정합니다.동일한 이스케이프 시퀀스XTerm으로. 그렇지 않은 경우 특정 터미널 에뮬레이터에 대한 설명서를 확인해야 합니다.

GNU 화면의 경우 단일 터미널 창에 여러 개의 가상 창이 포함될 수 있다는 점에 유의하세요. 이 경우 다른 이스케이프 시퀀스( \033k%s\033\\)를 사용하여 단일 가상 창의 내부 제목을 설정할 수 있습니다.

관련 정보