서버 에 연결되어 있으면 탭 제목을 debian 8
변경할 수 없습니다 . 직접 확인해 보세요.gnome-terminal
$ ssh deb6-server
$ echo -en '\e]0;test\a'
# title changes
$ echo $TERM
xterm-256color
$ cat /etc/issue
Debian GNU/Linux 6.0 \n \l
$ exit
$ ssh deb8-server
# here the title changes to USER@HOST: CWD
$ echo -en '\e]0;test\a'
# title doesn't change
$ echo $PROMPT_COMMAND
$ echo -en '\e[0;34mtest\e[0m\n'
test # written in blue
$ echo $TERM
xterm-256color
$ cat /etc/issue
Debian GNU/Linux jessie/sid \n \l
정말 다른 곳을 봐야할지 모르겠습니다. 어떤 아이디어가 있나요?
답변1
ESC ] 0
로컬에서 사용할 때 이스케이프 시퀀스가 터미널 제목을 변경하는 경우 SSH를 통해서도 작동합니다. SSH는 애플리케이션과 터미널 간의 트래픽을 변경하지 않습니다.
스크린 멀티플렉서(예: screen 또는 tmux)에서 애플리케이션을 실행하면 이스케이프 시퀀스 자체를 해석하고 다른 시퀀스를 터미널로 보냅니다. 이는 SSH와 아무 관련이 없지만 로컬 시스템보다는 원격 시스템에서 screen을 사용하는 것이 더 나을 수도 있습니다.
원격 시스템의 셸은 명령을 시작하거나 새 프롬프트를 표시할 때 원격 헤더를 설정하도록 훌륭하게 구성할 수 있습니다. 이는 일반적으로 프롬프트의 일부로 제목 변경 이스케이프 시퀀스를 인쇄하여 수행되므로 변수의 내용을 확인하십시오 PS1
.
printf '%s\n' "$PS1" | cat -v
원격 쉘이 bash인 경우에도 확인 PROMPT_COMMAND
하고DEBUG
덫:
echo "$PROMPT_COMMAND"
trap -p DEBUG
원격 셸이 zsh인 경우 , PS1
( RPS1
드물게) 및 precmd
및 preexec
기능을 확인하세요.
인쇄 -rl $PS1 $RPS1 $functions[precmd] $functions[preexec]