如何从 Linux 中选择 PuTTY 标题栏中显示的内容?

Hub*_*bro 8 linux debian putty kitty

在 PuTTY 配置中,有一个名为“禁用远程控制窗口标题更改”的“终端”→“功能”选项。如果没有启用,每次我在控制台中按回车键时,PuTTY 的标题栏都会改变。

我认为从 Linux 设置标题栏文本比为我放置的每个 PuTTY 客户端指定一个更干净的解决方案。那么我在哪里可以修改 Linux 设置为窗口标题的内容?


$ uname -a
Linux drevo 2.6.32-5-amd64 #1 SMP Mon Jan 16 16:22:28 UTC 2012 x86_64 GNU/Linux

$ cat /etc/debian_version
6.0.4

jhe*_*ger 14

终端标题是通过在控制台输出中使用特殊转义序列来设置的。默认情况下,bash 提示符包含这些转义序列并将标题设置为当前工作目录。

所以你必须编辑你的 PS1 变量(大部分时间它是在 中设置的~/.bashrc),否则每次显示提示时 bash 都会覆盖你的标题。

然后,您可以通过将以下内容放入登录时执行的脚本中来设置标题,例如~/.profile

echo -e "\033]0;<your string>\007"
Run Code Online (Sandbox Code Playgroud)


Ric*_*lka 6

大多数终端程序——包括 konsole、putty 和 xterm——模拟旧的 VT100 终端。此终端允许您使用称为转义序列的特殊字符序列来设置某些内容,包括粗体、颜色、设置终端标题等。

bash shell 有一个名为 PROMPT_COMMAND 的变量,如果设置了该变量,则会在您打印出每个提示之前对其进行评估(我相信 zsh 有类似的东西,实际上我认为 bash 从它们那里获取了代码)。您可以在 PROMPT_COMMAND 中输出转义序列,它将设置您的标题栏。

这就是我的(Linux/bash):

USER=$(/usr/bin/id -un)
HOSTNAME=$(uname -n)
HOSTNAME=${HOSTNAME%%.*}
PROMPT_COMMAND='echo -ne "\e]0;$USER@${HOSTNAME}: $(pwd -P)\a"'
Run Code Online (Sandbox Code Playgroud)

你可以把它放在你的 ~/.bashrc 中

您可以对终端进行很多自定义。我喜欢在提示中加粗,以便更容易看到提示的结尾。这使它成为粗体黄色,与我默认的黑色背景相映成趣:

PS1="\[\e[33;1m\]\h:\$\[\e[0m\] "
Run Code Online (Sandbox Code Playgroud)

环顾 Linux Prompt Customization,你会发现更多的 HowTos,你不知道该怎么做。选择您认为最容易阅读的一本。