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

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

쉘 제목을 현재 로그인한 호스트 이름으로 설정하는 방법을 알고 싶습니다. 내 시나리오는 이렇습니다. 호스트 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\\)를 사용하여 단일 가상 창의 내부 제목을 설정할 수 있습니다.

관련 정보