在 PuTTY 配置中,终端 → 功能中有一个名为禁用远程控制窗口标题更改如果不启用该功能,每次我在控制台中按回车键时,PuTTY 的标题栏都会发生变化。
我认为从 Linux 设置标题栏文本比为每个我现有的 PuTTY 客户端指定一个标题栏文本更干净。那么我可以在哪里修改 Linux 设置的窗口标题呢?
$ uname -a Linux drevo 2.6.32-5-amd64 #1 SMP 星期一 1 月 16 日 16:22:28 UTC 2012 x86_64 GNU/Linux $ cat /etc/debian_version 6.0.4
答案1
大多数终端程序(包括 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"'
您可以将其放在您的 ~/.bashrc 中
您可以对终端进行许多自定义。我喜欢在提示符中使用粗体,以便更容易看到提示符的结尾。这会将其设置为黄色粗体,与我的默认黑色背景形成鲜明对比:
PS1="\[\e[33;1m\]\h:\$\[\e[0m\] "
查找 Linux Prompt Customization,您将找到比您知道如何操作的更多的 HowTo。选择您认为最容易阅读的那个。
答案2
终端标题是使用控制台输出中的特殊转义序列设置的。默认情况下,bash 提示符包含这些转义序列,并将标题设置为当前工作目录。
因此,您必须编辑您的 PS1 变量(大多数情况下它设置在~/.bashrc
),否则每次显示提示时,bash 都会覆盖您的标题。
然后,您可以通过将以下内容放入登录时执行的脚本中来设置标题,例如~/.profile
:
echo -e "\033]0;<your string>\007"
答案3
我搜索过许多论坛,但没有找到该问题的答案:
如何将所有命令输出到Putty标题?
需要它让其他程序知道服务器上的某些作业何时完成以及是否正确完成。Plink stdout 和 stdin 无法正常工作。我对等待延迟进行了许多调整,对于某些命令有效,对于其他命令无效。无法在该服务器上安装 XSEL 和 XCLIP。
解决方案如下:
- 在文件中获取命令输出。
- 将该文件回显到标题。
在 Putty 客户端和 SUSE 服务器上它看起来像这样:
ls /home | grep domagaja > logutoit.txt
echo -e "\033]0\\;$(cat logutoit.txt)\\007\\c"
希望有人能用这个。当然,它不适用于所有服务器类型和 putty 客户端设置,但这个想法应该可以很好地发挥作用。