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


8

在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

Answers:


6

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

bash外壳程序有一个名为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"'

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

您可以使用终端进行很多自定义。我喜欢提示中的粗体,以便更轻松地看到提示的结尾。这使其变为黄色,在我的默认黑色背景下效果很好:

PS1="\[\e[33;1m\]\h:\$\[\e[0m\] "

环顾Linux Prompt Customization,您会发现更多的HowTos,而不是该怎么做。选择最容易阅读的一种。


14

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

因此,您将必须编辑PS1变量(大多数情况下是在设置~/.bashrc),否则bash每次显示提示时都会覆盖您的标题。

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

echo -e "\033]0;<your string>\007"

注意,这是唯一回答问题的人。
Erik Aronesty

如果要避免echo命令输出的多余空白行,请更改-e-en
ADTC

2

我搜索了很多论坛,但没有找到以下问题的答案:
如何将所有命令输出输出到Putty title?

其他程序需要它知道服务器上的某些作业何时完成以及它是对还是错。Plink stdout和stdin无法正常工作。我使用了许多带有等待延迟的调整,对于某些有效的命令,对于其他无效的。无法在该服务器上安装XSEL和XCLIP。

所以这是解决方案:

  1. 获取文件中的命令输出。
  2. 将文件回显为标题。

在Putty客户端和SUSE服务器上,它看起来像这样:

ls /home | grep domagaja > logutoit.txt 
echo -e "\033]0\\;$(cat logutoit.txt)\\007\\c"

希望有人能够使用它。当然,它不适用于所有服务器类型和腻子客户端设置,但是这个想法应该很好用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.