如何在 Ubuntu MATE 16.04 中更改终端提示的字体样式

use*_*1_1 6 command-line fonts prompt mate ubuntu-mate

与 Ubuntu 或任何其他操作系统中的任何其他终端模拟器一样,Mate 终端具有如下输入行:

abc@xyz:~$
Run Code Online (Sandbox Code Playgroud)

如何更改此特定行的字体样式?除此以外,将命令输入到上面的行,然后命令在此之后生成消息。我想将此文本设置为不同的样式。我可以通过转到Edit>Profile preferences. 但这会将输入行的字体样式更改为相同的样式。我希望输入行文本和终端中的其余文本之间存在差异,以便在命令详细打印消息后,我可以不费力地回溯输入行。

Ubuntu 16.04 似乎为输入行提供了默认颜色,通过调整Profile preferences.

Zan*_*nna 6

(下面的一些屏幕截图显示了特定文本编辑器的使用。如果这对读者来说有问题,特此恳求他们认为帖子作者使用该编辑器是一种无可指责的天真行为)

终端提示符是用户环境的一部分,称为PS1. 它在您的.bashrc文件中定义,您可以对其进行编辑以更改它。你可以看到它当前的内容echo $PS1。这是我的:

$ echo $PS1
\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;35m\]\w\$\[\033[00m\]
Run Code Online (Sandbox Code Playgroud)

与某些命令相比,这使我的提示看起来像这样......

制备有色提示通过取消注释该行实现您的.bashrc

#force_color_prompt=yes
Run Code Online (Sandbox Code Playgroud)

所以它看起来像这样:

force_color_prompt=yes
Run Code Online (Sandbox Code Playgroud)

这会导致提示由后面的行设置 if [ "$color_prompt" = yes ]; then

默认情况下是:

PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
Run Code Online (Sandbox Code Playgroud)

颜色由这些代码设置:

  • 浅绿色 \[\033[01;32m\]
  • 白色的 \[\033[00m\]
  • 浅蓝 \[\033[01;34m\]

然后变回白色。除了第二组括号中的数字外,您可以看到它们是相同的。这里还有一些可供选择的转义码:

Blue        0;34     Light Blue    1;34
Green       0;32     Light Green   1;32
Cyan        0;36     Light Cyan    1;36
Red         0;31     Light Red     1;31
Run Code Online (Sandbox Code Playgroud)

这里有一些其他选项可以让您的提示脱颖而出

---全部在 Ubuntu MATE 16.04 上的 MATE 终端中测试---

将这些更改应用于白色提示时,我将此行注释掉:

#force_color_prompt=yes
Run Code Online (Sandbox Code Playgroud)

并编辑 .bashrc 这部分的第四行:

if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
Run Code Online (Sandbox Code Playgroud)

如果您想对彩色提示应用下划线和突出显示效果,那么如前所述,您需要取消注释force_color_prompt=yes,并编辑第二行而不是第四行。在下面的示例中,我指的是上面代码片段中的“第四行”和“第二行”。

粗体提示:

更改第四行以包含转义序列\[\e[1m\](粗体)和\[\e[0m\](停止粗体)

PS1='${debian_chroot:+($debian_chroot)}\[\e[1m\]\u@\h:\w\$ \[\e[0m\]'
Run Code Online (Sandbox Code Playgroud)

没有太大区别 - 我包括上面的行进行比较。

在颜色转义序列中,“浅色”颜色(1而不是0如上表所示)被认为是粗体。我尝试在彩色提示上使用粗体序列,但似乎 MATE 终端不允许这样做使其更加粗体。我也使用setaf代码尝试过,但仍然没有结果。也许我有什么问题。我也无法管理斜体提示,我什至没有尝试闪烁提示 - 这不太好。

下划线提示:

更改第四行以包含转义序列\[\e[4m\]\[\e[24m\]

PS1='${debian_chroot:+($debian_chroot)}\[\e[4m\]\u@\h:\w\$ \[\e[24m\]'
Run Code Online (Sandbox Code Playgroud)

对于带下划线的彩色提示,取消注释force_color_prompt=yes并将\[\e[4m\]序列添加到第二行两次。现有的重置代码将终止效果:

PS1='${debian_chroot:+($debian_chroot)}\[\e[4m\]\[\033[01;32m\]\u@\h\[\033[00m\]:\[\e[4m\]\[\033[01;34m\]\w\[\033[00m\]\$ '
Run Code Online (Sandbox Code Playgroud)

高亮提示:

将第四行更改为包含\[\e[7m\]\[\e[27m\]

PS1='${debian_chroot:+($debian_chroot)}\[\e[7m\]\u@\h:\w\$ \[\e[27m\]'
Run Code Online (Sandbox Code Playgroud)

对于颜色突出显示,取消注释#force_color_prompt=yes并将第二行中的颜色转义代码更改为 a4而不是 a 3,例如:

PS1='${debian_chroot:+($debian_chroot)}\[\033[01;42m\]\u@\h\[\033[00m\]:\[\033[01;44m\]\w\[\033[00m\]\$ '
Run Code Online (Sandbox Code Playgroud)

要突出显示所有一种颜色,请删除第一个重置和第二个颜色序列:

PS1='${debian_chroot:+($debian_chroot)}\[\033[01;42m\]\u@\h:\w\[\033[00m\]\$ '
Run Code Online (Sandbox Code Playgroud)

有关更多异国情调的选项,请参阅我最喜欢的 AU 问题此站点以获取详细指南。

显然,我建议您在玩游戏时进行备份,但是如果您曾经使用过 FUBAR .bashrc,则可以从/etc/skel以下位置复制一个新的:

cp /etc/skel/.bashrc ~/.bashrc
Run Code Online (Sandbox Code Playgroud)