当前位置: 首页>>技术教程>>正文


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

, ,

问题描述

当我使用 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

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/12983.html,未经允许,请勿转载。