无法在远程 debian 8 机器上的 ssh 会话中更改 gnome-terminal 选项卡的标题

无法在远程 debian 8 机器上的 ssh 会话中更改 gnome-terminal 选项卡的标题

当我连接到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,而不是在本地计算机上。

远程计算机上的 shell 可以很好地配置为在开始执行命令或显示新提示时设置远程标题。这通常是通过将标题更改转义序列打印为提示的一部分来完成的,因此请检查变量的内容PS1

printf '%s\n' "$PS1" | cat -v

如果远程 shell 是 bash,还要检查PROMPT_COMMANDDEBUG陷阱:

echo "$PROMPT_COMMAND"
trap -p DEBUG

如果远程 shell 是 zsh,请检查PS1, RPS1(罕见)以及precmdpreexec函数。

打印 -rl $PS1 $RPS1 $functions[precmd] $functions[preexec]

相关内容