![如何将 PuTTY 的窗口标题设置为已加载会话的名称?](https://linux22.com/image/523718/%E5%A6%82%E4%BD%95%E5%B0%86%20PuTTY%20%E7%9A%84%E7%AA%97%E5%8F%A3%E6%A0%87%E9%A2%98%E8%AE%BE%E7%BD%AE%E4%B8%BA%E5%B7%B2%E5%8A%A0%E8%BD%BD%E4%BC%9A%E8%AF%9D%E7%9A%84%E5%90%8D%E7%A7%B0%EF%BC%9F.png)
通常,当您在 PuTTY 中加载已保存的会话并连接到它时,PuTTY 会将窗口标题设置为您连接到的系统的主机名(加上字符串“PuTTY”)。
现在我有许多不同的会话,它们都连接到同一台主机,但使用不同的端口(因为主机在不同的端口上运行多个 SSH 隧道)。因此,查看主机名并不是很有帮助,因为它总是相同的。
因此,我希望 PuTTY 在窗口标题中显示已加载会话的名称。有办法吗?
我能找到的唯一方法是手动设置窗口标题(窗口/行为/窗口标题)。但我认为我必须为每个会话手动执行此操作,这相当繁琐。
答案1
要更改 PuTTY SSH 会话窗口标题(通过 PuTTY GUI 手动逐个更改):
对于 Windows 和 Debian
Load
来自 PuTTY 的会话。- 在左侧树形菜单中,单击:
Window
→Behaviour
。- 在右侧面板的
Window title
文本框中输入标题。Save
会话。
要更改 PuTTY SSH 会话窗口标题(通过命令行更改所有会话):
对于 Debian 8(Jessie)
进入PuTTY存储会话的文件夹:
/home/nolwennig/.putty/sessions
注意:更换
nolwennig
使用您的用户名
WinTitle
使用如下命令将每个已保存会话文件的已保存会话文件名分配给参数:
find . -type f -exec sed -e 's/^WinTitle=/WinTitle=%f/g' {} \;
如果没有记录 WinTitle,则可正常工作
对于 Windows
PuTTY 将会话存储在 Windows 注册表中
HKEY_CURRENT_USER\Software\Simontatham\PuTTY\Sessions
笔记:不是代替
SimonTatham
使用您的用户名。您可以使用如下命令导出此部分:
C:> regedit /e "%userprofile%\desktop\putty-registry-sessions.reg" HKEY_CURRENT_USER\Software\Simontatham\PuTTY\Sessions
必须能够编写一个脚本来更新文件
putty-registry-sessions.reg
以更改每个已保存会话的 WinTitle 值。
来源与灵感:
答案2
下面的解决方案似乎可以解决这个问题。
1)转到前面提到的窗口/行为/窗口标题设置并输入一个对您有意义的标题。
2)进入终端/功能设置并勾选禁用远程控制窗口标题更衣箱。
答案3
此函数将把 PuTTY 窗口的标题设置为给定的字符串:
# Set title
title() {
echo -ne "\033]0;"$1"\007"
}
您可以使用它从命令行或脚本(例如在 .bashrc 中)设置标题。
答案4
我知道的唯一其他途径是使用 xterm 仿真功能从您登录的系统中设置标题(在 Red Hat Linux 和 SUSE Linux 上,Bash 提示符默认写入标题栏)。
看这一页了解该过程和相关转义序列的描述。