问题描述
当我使用 ubuntu 14.04 时,设置标题很容易。只需按 F2 或将鼠标移动到顶部菜单。但是 ubuntu 16.04 上没有菜单,按 F2 不能更改标题。我应该怎么办?
最佳回答
许多程序会覆盖标题,因此您不能依赖标题被固定或不被其他窗口复制。对于 gnome-terminal 中的远程 ssh 会话尤其如此。它仍然有很大帮助,但它对于窗口管理器进行匹配还不够可靠(这就是我认为他们删除它的原因。(Amias Channer 的补充))所以这个能力已经被最新的 gnome-terminal
取消了,但是仍然有更改标题的可能性,您可以通过命令进行。要实现这一点,请轻松编辑您的 ~/.bashrc
文件并添加以下行:
# function to set terminal title
function set-title(){
if [[ -z "$ORIG" ]]; then
ORIG="$PS1"
fi
TITLE="\[\e]2;$*\a\]"
PS1="${ORIG}${TITLE}"
}
有了这个,您可以通过简单地使用命令 set-title <name you want to set it to>
来设置终端窗口的标题。由于 ANSI 转义码,这是可能的,因此任何程序都可以输出它们,而不管代码在哪里运行。这就是 \\e 和 \\a 位的作用。 (由 Amias Channer 补充)。
solution I found here 并自己使用它,因为我在 16.04 LTS 上运行。
次佳回答
Videonauth 的解决方案是 bash-specific,这意味着如果您使用其他一些 shell(例如 korn shell 或 c shell 或 mksh 或 tcsh),它将无法正常工作。它还通过编辑 PS1
提示设置标题(由于某种原因,这对 bash
中的标题有影响)。下面是带有 mksh 的 gnome-terminal 示例:
我个人使用的是这样的:
setTitle() {
echo -e "\033]0;$@\007"
}
该命令使用转义序列并且是 shell-agnostic ,这意味着它可以在 bash 以外的 shell 中使用。小缺点是如果你想调整它,你需要知道 ASCII 转义序列。
第三种回答
这是我在 ~/.bashrc
文件中使用的函数:
function termtitle() { PS1="${PS1/\\u@\\h: \\w/$@}"; }
添加(或更改)后,您必须为文件提供资源:
. ~/.bashrc
要使用它,请键入以下内容:
termtitle Special Projects
更改一次标题后,您必须再次更改它:
. ~/.bashrc
termtitle My new title