아시다시피, 기본적으로 AWS 인스턴스의 호스트 이름은 ip-12-34-56-78.us-west-2.compute.internal
해당 호스트에 ssh하면 탭 이름이 다음과 같이 변경됩니다 root@ip-12-34-56-78
(어느 것이 어느 것인지 식별하기가 약간 어렵습니다).
나는 다음을 가지고 있기 때문에 ~/.ssh/config
:
Host mail.domain.com
Hostname 1.2.3.4
User root
Host web.domain.com
Hostname 5.6.7.8
User root
탭 이름을 ("실제" 호스트 이름 대신) 내가 연결된 원격 호스트의 "별칭" 호스트 이름으로 변경할 수 있는 방법이 있는지 궁금합니다.
내 현재 PS1
설정:
PS1='[\u@\h \W$(__git_ps1 " (%s)")]\$ '
SSH 래퍼를 다음에 추가해 보았습니다 ~/.bashrc
.
ssh() {
echo -ne "\033]0;${@: -1}\007"
exec ssh $@
}
그런 다음 . ~/.bashrc
다음을 실행하여 테스트합니다 ssh web.domain.com
.
- 하지만연결하다:탭 이름이
web.domain.com
예상대로 로 변경되었습니다. - 언제연결됨: 덮어씌워졌습니다
root@ip-5-6-7-8
왜? 여기에 관련된 내용이 있나요 PS1
?
업데이트 날짜: 6월 6일 금요일 21:58:04 ICT 2014
매우 이상한 일이 일어나고 있습니다. AWS 인스턴스에서만 발생하는 것 같습니다. 다른 호스트의 경우 로그인 후에도 탭 이름이 유지됩니다.
PS1
AWS 인스턴스에서:
# echo $PS1
[\u@\h \W]\$
PS1
다른 호스트에서:
~ echo $PS1
\[\]\[\][\[\]\t\[\]] \u\[\]@\[\]\h\[\]\[\]:\[\]\w\[\] \[\]
PS1
또한 AWS의 변수를 작업 호스트의 값으로 설정하려고 시도했지만 도움이 되지 않았습니다.
답변1
이는 원격 셸 세션에 로그인한 후 서버의 PS1이 동일한 \033]0;title\007
명령 시퀀스를 사용자에게 다시 보내 터미널 프로그램이 이를 가로채서 그에 따라 표시하기 때문입니다. 로컬 워크스테이션에서 PS1을 편집하는 것은 실제로 아무런 효과가 없습니다.
비슷한 요구 사항이 있었는데, 원격 셸의 bashrc에서 다음과 같은 내용을 입력했습니다.
PS1="\033]0;(tools)\007\015[\u@\h \W]# "
이 도구는 제목을 식별하는 데 사용하고 싶은 지정된 이름입니다. 실제로 터미널에서는 제목이 정확하게 표시되는데, 명령 프롬프트는 제가 주로 사용하는 것입니다.