Ubuntu 中 Bash 默认 PS1 的前导部分是什么意思?

Ubuntu 中 Bash 默认 PS1 的前导部分是什么意思?

这是$PS1我在新安装的 Ubuntu 18.04 上的 Bash shell:

\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\] \$

我可以很好地理解提示的其他部分:

  • ${debian_chroot:+($debian_chroot)}:如果已设置,则显示它,但在其周围添加括号;如果未设置,则不显示任何内容
  • \[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\] \$user@host:cwd $使用 CSI 转义序列启用颜色的标准提示

我对第一部分感到困惑:

\[\e]0;\u@\h: \w\a\]

AFAIK,\[\]扩展为\001\002告诉 GNU readline 它们之间的字符不应计入“提示长度”。这个问题可以归结为以下含义:

\e]0;\u@\h: \w\a

它是<ESC>]0;user@host: cwd<ALARM>。那有什么作用? (注:CSI不是<ESC>[<ESC>]不然我就明白了)

答案1

这是一XTerm 转义序列,它设置图标名称和窗口标题。大多数图形终端模拟器(以及一些非图形终端模拟器)都支持它。

相关内容