Linux 시스템에 SSH로 연결하면 Terminator의 제목 표시줄에 user@hostname이 표시됩니다. 여기서 호스트 이름은 SSH로 연결하는 컴퓨터입니다.~에서, SSH를 통해 연결하는 컴퓨터 대신입력하다(즉, 제목 표시줄은 원격 장치 $PS1 대신 로컬 장치에서 미러링됩니다.) 동시에 4개의 컴퓨터 모두에 SSH로 접속하여 프롬프트를 볼 수 없으면 매우 혼란스럽습니다(모든 컴퓨터의 제목 표시줄이 동일하기 때문입니다!).
Terminator가 올바른 호스트 이름을 표시하도록 하려면 어떻게 해야 합니까?
답변1
사용자는 확실히 프롬프트를 사용자 정의하고 터미널 제목을 업데이트하도록 할 수 있지만 대부분은 기본 셸 동작을 사용합니다.
로컬 컴퓨터가 프롬프트의 부작용으로 제목 문자열을 설정하고 원격 컴퓨터가 제목을 변경하지 않는 것 같습니다.
이를 고려하면 예를 들어 다음과 같은 래퍼 스크립트를 사용하여 원격 시스템의 간섭 없이 헤더를 업데이트할 수 있습니다 ssh
.
#!/bin/bash
# trim parameters, leaving just the last (user@hostname or just hostname)
title=$(echo "$*" | sed -e 's/^.* //')
printf '\033]0;%s\007' "$title"
/usr/bin/ssh "$@"
실행 파일 경로 앞에 넣으면 /usr/bin
호출할 수 있습니다.저것"ssh"를 사용하여 각 원격 시스템에 액세스할 때 헤더 문자열을 설정하도록 합니다. SSH를 종료한 후 로컬 프롬프트는 헤더 문자열을 로컬 시스템으로 다시 재설정합니다.
후속 댓글에서 OP는 연결이 IP 주소에 대해 이루어졌다고 언급했습니다. 원격 컴퓨터인 경우가지다호스트 이름을 사용하면 프로세스가 더 명확해지거나 (DNS가 아닌 경우) 로컬 컴퓨터의 호스트 이름을 수집할 수 있습니다 /etc/hosts
.
참고로:
- 운영 체제 제어(XTerm 제어 순서)
- 6.3.Xterm 타이틀바 동작(Bash 프롬프트 HOWTO)