Vik*_*ant 35 command-line bash 16.04
当我使用 ubuntu 14.04 时,设置标题很容易。只需按 F2 或将鼠标移动到顶部菜单。但是ubuntu 16.04上没有菜单,按F2不能更改标题。我该怎么办?
Vid*_*uth 45
许多程序会覆盖标题,因此您不能依赖于其他窗口已修复或未复制的标题。对于 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}"
}
Run Code Online (Sandbox Code Playgroud)
有了这个,您就可以通过简单地使用命令来设置终端窗口的标题 set-title <name you want to set it to>。这是可能的,因为 ANSI 转义码,因此任何程序都可以输出它们,而不管代码在哪里运行。这就是 \e 和 \a 位所做的。(由 Amias Channer 添加)。
自从我在 16.04 LTS 上运行以来,我在这里找到并自己使用的解决方案。
Ser*_*nyy 10
Videonauth 的解决方案是特定于 bash 的,这意味着如果您使用其他一些 shell(例如 korn shell 或 c shell 或 mksh 或 tcsh),它将无法工作。它还通过编辑PS1提示来设置标题(出于某种原因,这对 中的标题有影响bash)。这是带有 mksh 的 gnome-terminal 示例:
我个人使用的是这个:
setTitle() {
echo -e "\033]0;$@\007"
}
Run Code Online (Sandbox Code Playgroud)
此命令使用转义序列并且与 shell 无关,这意味着它适用于 bash 以外的 shell。一个小缺点是,如果你想调整它,你需要知道 ASCII 转义序列。