如何在 ubuntu 16.04 中更改终端标题

如何在 ubuntu 16.04 中更改终端标题

当我使用 ubuntu 14.04 时,设置标题很容易。只需按 F2 或将鼠标移到顶部菜单即可。但是 ubuntu 16.04 上没有菜单,按 F2 无法更改标题。我该怎么办?

答案1

许多程序会覆盖标题,因此您不能指望标题会被其他窗口修复或重复。在 gnome 终端中进行远程 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 添加)。

我在这里找到的解决方案因为我运行的是 16.04 LTS,所以自己也在用它。

答案2

Videonauth 的解决方案是针对 bash 的,这意味着如果您使用其他 shell(例如 korn shell 或 c shell 或 mksh 或 tcsh),它将不起作用。它还通过编辑提示来设置标题PS1(出于某种原因,这会影响中的标题bash)。例如,下面是带有 mksh 的 gnome-terminal:

在此处输入图片描述

我个人使用的是这个:

setTitle() {
    echo -e "\033]0;$@\007" 
}

此命令使用转义序列,并且与 shell 无关,这意味着它适用于除 bash 之外的其他 shell。小缺点是,如果您想调整它,您需要知道 ASCII 转义序列。

答案3

这是我在文件中使用的功能~/.bashrc

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

添加(或更改)后,您必须资源您的文件:

. ~/.bashrc

要使用它请输入如下内容:

termtitle Special Projects

更改标题一次后,必须满足以下条件才能再次更改:

. ~/.bashrc
termtitle My new title

相关内容