问题描述
我有几个终端在我的工作环境中运行,我希望为每个终端设置一个特定的标题,以便清楚地了解特定终端的用途,例如Apache,editing_ini,postgres等。
当然从命令行。
最佳解决思路
-
用户最友好的方式是从菜单中选择终端 – > “设置标题…”。
-
还有其他方法,但你也可以发布
gnome-terminal --title="SOME TITLE HERE"
这可能不会产生预期的效果,因为您的
.bashrc
极有可能会覆盖该行为。 -
把我们带到最后一个方法,我无耻地从我的
.bashrc
中剔除。PROMPT_COMMAND='echo -ne "\033]0;SOME TITLE HERE\007"'
作为一个额外的参考,这是我.bashrc
中的特定行
PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD/$HOME/~}\007"'
您可能还需要在〜/.bashrc中注释该代码
case "$TERM" in
xterm*|rxvt*)
# JEFFYEE REMOVED because it makes commands to title() not work
#PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
;;
*)
;;
esac
次佳解决思路
如果你想在每次打开终端时根据你所在的主机来设置你的标题,Ward的答案是非常好的。如果你只是想快速设置一个标题,你可以直接运行echo:
echo -ne "\033]0;SOME TITLE HERE\007"
或者制作一个简单的bash脚本,比如说termtitle
#!/bin/bash
echo -ne "\033]0;${1}\007"
您可以使用termtitle "some title here"
运行
第三种解决思路
如果你使用Vim编辑器,你也可以在你的vimrc中启用这个选项:
:set title
这是默认禁用的。它会设置很酷的终端标题,显示当前正在编辑的文件名以及其他一些内容。
第四种思路
为了完整起见,我想补充一点,您还可以使用以下命令设置gnome-terminal
标题:
wmctrl -r :ACTIVE: -N "MyWindowTitle"
您需要首先安装包wmctrl。
第五种思路
啊,很多答案…
我尝试了wmctrl,几乎可以工作,除非我不能改变图标标题,至少不是永久性的。
解决方案是在Ubuntu的PS1设置标题。
默认PS1是
\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$
…在第一个转义序列中设置标题。
因此,有两种解决方案:
解决方案1:简化PS1,然后使用PROMPT_COMMAND
将PS1更改为更简单:
PS1="\u@\h:\w\$ "
…然后使用PROMPT_COMMAND:
PROMPT_COMMAND='echo -ne "\033]0;SOME TITLE HERE\007"'
解决方案2:直接修改PS1
只需使用新标题修改PS1:
PS1='\[\e]0;newtitle\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
第六种思路
如果您是Ubuntu用户,则可以使用HUD更改gnome-terminal选项卡的标题。
在gnome-terminal中,按住Alt打开HUD,键入前几个字母,例如”tit”,回车并输入新的标题。
这是一个非常快速的方法,避免使用鼠标。
第七种思路
改变gnome-terminal
标题的另一种方法是使用gconftool-2
;这将更改所选配置文件的初始终端标题,因此您可以使用与’Apache’,’Editing’等标题相关的不同配置文件。然后,您将启动具有适当配置文件的gnome-terminal
以获取您指定的终端标题。这与gnome-terminal --title "name"
形成鲜明对比,gnome-terminal --title "name"
更改每个终端的标题,但不影响配置文件中指定的初始标题。
您可以在脚本中使用以下命令来设置配置文件的终端名称,并且您可以在一天中的某些时间更改终端的名称以提醒您:
gconftool-2 --set /apps/gnome-terminal/profiles/Default/title --type=string "Apache"
这是用于默认配置文件,但您可以为其他配置文件设置标题,例如,将Default
更改为另一个配置文件,如Profile0
:
gconftool-2 --set /apps/gnome-terminal/profiles/Profile0/title --type=string "Editing"
我认为这种改变标题的方法是有用的,因为它可以用于脚本编写,或者就像一个快速的命令行方法来为配置文件设置标题。请注意,有时您必须重新启动具有指定配置文件的终端才能使gconftool-2
设置生效。可用于gnome-terminal
的完整设置可以用gconftool-2 -R /apps/gnome-terminal
列出。
第八种思路
另一种解决方案是使用xdotool模拟击键,在脚本中可能很有用:
-
在gnome-terminal中设置键盘快捷键:
Edit > Keyboard Shortcuts... > Terminal > Set Title
例如分配
Shift+Ctrl+Y
。 -
如果您尚未安装
xdotool
,请安装:sudo apt-get install xdotool
-
以下命令序列(也可以在bash脚本中使用)将设置终端/选项卡标题(使用
\
转义空格):xdotool key ctrl+shift+y xdotool type My\ new\ fabulous\ title xdotool key Return
-
[可选]您也可以使用xdotool来例如使用以下命令打开一个新选项卡并设置标题:
xdotool key ctrl+shift+t
考虑在打开新标签之前和之后添加休眠时间,例如
sleep 1
(等待1秒)。
这不是最优雅的解决方案,但它对我很有用!以前的答案在我的情况下不起作用。我在Ubuntu 14.04中使用gnome-terminal,并且我想创建一个bash脚本。
第九种思路
要仅显示标题中的当前工作目录,请在’.bashrc’中尝试以下操作:
PROMPT_COMMAND='echo -ne "\033]0; ${PWD##*/}\007"'
要么
PROMPT_COMMAND='echo -ne "\033]0;$(basename ${PWD})\007"'