我有几个在我的工作环境中运行的终端实例,我想为每个终端设置一个特定的标题,以便清楚地知道特定终端的用途,例如Apache,editing_ini,postgres等。 br />
当然可以从命令行开始。

评论

除了Ward的评论:不要忘记在发送标题更改转义序列之前先“取消设置PROMPT_COMMAND”,否则您所做的任何更改都会在下一个shell提示后立即丢失。

有关KDE的类似问题,请参见stackoverflow.com/questions/8782159/…

从OS X切换到Ubuntu时遇到了这个问题。为了在多选项卡设置中获取自定义标题,我将gnome-terminal --load-config与我编写的此脚本一起使用。

在主目录中的.bashrc文件中添加以下内容。#设置当前终端的名称setTerminalTitle(){echo -ne“ \ 033] 0; $ {1} \ 007”}别名termttl = setTerminalTitle现在您可以使用termttl别名进行设置标题,例如termttl askubuntu

“受保护”,因此我无法提供答案。 Gnome3 gnome终端的缺省值为PROMPT_COMMAND = __ vte_prompt_command。这将使用首选项中的“个人档案”中的值。存在多个配置文件时,“新建选项卡”和“新窗口”菜单项为每个配置文件都有一个子菜单项。手动方法是打开一个新的终端选项卡,右键单击选项卡标题,然后选择“设置标题...”。(这在单独的答案中会更容易阅读,但是...)

#1 楼

替代方法:



但是还有其他方法,您也可以发布

gnome-terminal --title="SOME TITLE HERE"


效果很理想,因为您的.bashrc很有可能会覆盖该行为。 >
PROMPT_COMMAND='echo -ne "3]0;SOME TITLE HERE
PROMPT_COMMAND='echo -ne "3]0;${USER}@${HOSTNAME}: ${PWD/$HOME/~}q4312078q7"'
7"'



作为补充参考,这是我的.bashrc中的特殊行

q4312078q

您可能还需要评论此代码在您的.bashrc

 ~/.bashrc 


评论


需要注释掉或删除您提到的内容才能生效!

–裸照
2011-1-20 15:49

GNOME Terminal 3.16.2说,此版本的gnome-terminal不再支持选项“ --title”。

–伊万·科兹克(Ivan Kozik)
15年11月18日在21:23

在Gnome 3.18.3上,菜单中没有“设置标题”条目:/

– shadi
16-09-26在4:46

对于上面字符串中的gobbledegook所迷惑的其他任何人,它们都是ANSI转义字符-参见例如lihaoyi.com/post/…

– WillC
17年2月24日在0:21

GNOME终端3.20在菜单中没有“设置标题...”

–巴斯蒂安·沃伊特(Bastian Voigt)
17年9月13日在6:11

#2 楼

如果您想在每次打开终端时根据所处的主机等来设置标题,Ward的答案就很好。如果您只是想快速设置标题,则可以自己运行echo:

echo -ne "3]0;SOME TITLE HERE
termtitle() { printf "3]0;$*q4312078q7"; }
7"


或做一个简单的功能(在~/.bashrc内),例如termtitle

q4312078q

可以与termtitle some title here一起运行。

评论


或类似地,可以通过在〜/ .bash_aliases函数set_title()中添加以下行作为bash别名来添加:echo -ne“ \ 033] 0; $ {1} \ 007”}别名title = set_title,然后使用:$ title term_title

– Sumit Murari
16-09-22在6:10



不幸的是,在GNOME终端3.6.2中,似乎不适用于我。

– Austinmarton
17年1月26日在23:36

似乎在xterm 322或konsole 16.12中似乎也不起作用...不幸的是,我不知道是否有新方法:(

–naught101
17年1月27日,0:49



@ 3ocene在这种情况下实际上并不重要,它们是同一回事,但这是一个很好的习惯,因为例如$ var_log和$ {var} _log是非常不同的东西,它们的不同可能会导致脚本中的错误。

–naught101
17年9月10日在10:50

如果对您不起作用,则可能是因为已设置PROMPT_COMMAND var或PS1 var并覆盖了它。取消设置PROMPT_COMMAND或对其进行设置,使其也更改标题,例如export PROMPT_COMMAND ='printf“ \ 033] 0;%s @%s:%s \ 007”“ $ {USER}”“ $ {HOSTNAME %%。*}”“” $(基本名$ PWD)“'

–gaoithe
18年8月21日在10:49

#3 楼

如果使用Vim编辑器,则还可以在vimrc中启用此选项:

:set title


默认情况下处于禁用状态。它将设置很酷的终端标题,显示您当前正在编辑的文件名以及其他内容。

#4 楼

为了完整起见,我还要补充一点,您也可以使用以下命令设置gnome-terminal标题:

wmctrl -r :ACTIVE: -N "MyWindowTitle"


您需要首先安装软件包wmctrl

评论


MyWindowTitle没有显示在终端标题中。当我执行wmctrl -m时显示。

– sureshvv
15年8月4日在7:24

请注意,wmctrl更改窗口标题,而不更改选项卡标题,而转义字符解决方案更改选项卡标题。此外,在选项卡之间切换时,窗口标题会立即变回原始选项卡标题。

– redochka
2015年11月13日19:32



#5 楼

哎呀,答案这么多...

我尝试了wmctrl,该方法几乎奏效了,除了我无法让它更改图标标题(至少不是永久地更改)。问题是Ubuntu中的Bash中的PS1设置了标题。

默认PS1是

\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w$ 


...设置标题在第一个转义序列中:\e]0;\u@\h: \w\a

因此,有两种解决方案:

解决方案1:简化PS1,然后使用PROMPT_COMMAND

将PS1更改为更简单一些:

PS1="\u@\h:\w$ "


然后使用PROMPT_COMMAND:

PROMPT_COMMAND='echo -ne "3]0;SOME TITLE HERE
PS1='\[\e]0;newtitle\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w$ '
7"'


解决方案2:直接修改PS1

只需用新标题修改PS1:

q4312078q

评论


嗨,我非常喜欢你的回答。您介意解释[0]的作用吗?在您的代码中?我想我已经用ascii -o命令找到了echo -e'\ 007 \ 033'的含义…尽管我确实不知道那里的含义是……谢谢……

–同构
17 Mar 10 '17 at 11:28



@iso \ e或\ 033是转义(ESC)字符,它将启动转义序列。 ]启动操作系统命令(OSC)。对于xterm,为0;对于xterm,为0。表示“设置标题”,而\ a或\ 007是终止OSC的响铃(BEL)字符。更多信息:en.wikipedia.org/wiki/ANSI_escape_code#Escape_sequences

– wjandrea
19年2月1日在15:51

@wjandrea我一直在寻找\ 033和\ 007的等效转义字母(\ e和\ a),但是我找不到它们,因为我不知道在Google中键入正确的关键字。您提供的链接也很有用。您能否将您的评论转换为答案?

–SebMa
19-4-26在12:55



#6 楼

如果您是Ubuntu用户,则可以使用HUD更改gnome-terminal选项卡的标题。

在gnome终端中,按Alt调出HUD,键入前几个字母,例如点击“ tit”,然后按Enter键并输入新标题。

这是一种非常快速的方法,避免使用鼠标。

评论


确实。将手放在键盘上。显示现有的标题,因此使用此方法修改现有的标题也很方便快捷。

–布伦特·浮士德
2013年12月19日0:39



tit仅适用于英语Ubuntu。

–törzsmókus
17年2月22日在13:02

和整个选项已被删除:(

–törzsmókus
17年2月22日在13:02

F2键也可以避开鼠标。

–同构
17 Mar 10 '17 at 11:31



@törzsmókus和法式滴定;)

– wjandrea
19年2月1日在15:56



#7 楼

更改gnome-terminal标题的另一种方法是使用gconftool-2;这将更改所选配置文件的初始终端标题,因此您可以将不同的配置文件与诸如“ Apache”,“ Editing”等标题相关联。然后,您将使用适当的配置文件启动gnome-terminal以获取您指定的终端标题。这与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的完整设置。

#8 楼

另一个解决方案是使用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脚本。

#9 楼

我的答案与较新的答案相似,后者对我不起作用。最早的答案不再起作用。中间的旧答案输入太多,因此我在~/.bashrc文件中创建了一个函数:

 function termtitle() { PS1="${PS1/\u@\h: \w/$@}"; }
 


添加或更改功能后,或者如果要第二次重设标题,请使用:

 . ~/.bashrc
termtitle Special Projects
 


否则,每天只需使用带有新标题的termtitle

评论


谢谢!这是适用于GNOME终端3.36.2的解决方案。

– Mr.adam
20年8月13日在1:53

#10 楼

要仅在标题中显示当前工作目录,请在您的'.bashrc'中尝试:

PROMPT_COMMAND='echo -ne "3]0; ${PWD##*/}
PROMPT_COMMAND='echo -ne "3]0;$(basename ${PWD})q4312078q7"' 
7"'




q4312078q

#11 楼

这在我的Gnome Terminal 3.18.3中起作用。

编辑您的.bashrc文件并添加此功能

# Update gnome terminal title
function termtitle() {
    # take argument
    TITLE=
    shift
    # update title
    PROMPT_COMMAND='echo -ne "3]0; $TITLE 
$ source ~/.bashrc
7"' }


不要忘记source您的.bashrc文件

$ termtitle "MariaDB CLI"


然后您只需更新即可更改终端标题,如下所示:

q4312078q

#12 楼

作为其他有效答案的补充,xdotool具有允许您更改任何应用程序和窗口标题的功能。
xdotool getactivewindow set_window --name "WINDOW NAME HERE"

请注意,更改不会永久发生,当您更改时更改目录,并可能将其设置为PWD。
要永久更改它,可以按上述方式在PS1中修改~/.bashrc变量。
PS1="${PS1}\[\e]0;New Title\a\]"

此修改是永久性的。实际上,在此之后,您使用xdotool所做的更改也将是永久的,而不会随着cd更改。

#13 楼

如果您使用的是gnome 3,那么便利的Terminal > Set Title菜单选项已被删除。您可以安装仍然具有“设置标题”菜单选项的gnome 2分叉终端,然后运行该终端:

sudo apt-get install mate-terminal


代替运行“ Terminal”,而运行“ MATE终端”。您可能还应该在sudo update-alternatives --config x-terminal-emulator中选择mate-terminal。

#14 楼

如果像我这样的可怜的灵魂被迫使用tcsh,请在您的.cshrc中尝试类似的操作:

org / HOWTO / Xterm-Title-4.html

评论


为什么我的答案被否决的一些迹象本来很好:-(

–花生
19年5月17日在6:25