答案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\\
) 来设置单个虚拟窗口的内部标题。