如何在Linux终端提示符中自定义Bash颜色和内容

在本文中,我们将解释如何自定义Linux Bash终端提示符的颜色和内容。

今天,Bash是大多数(如果不是全部)现代Linux发行版中的默认shell。但是,您可能已经注意到,终端中的文本颜色和提示内容可以从一个发行版到另一个发行版不同。

建议阅读: 5个最常用的开源shell for Linux

如果你一直想知道如何自定义这个更好的可访问性或只是想,继续阅读 - 在本文中,我们将解释如何做到这一点。

PS1 Bash环境变量

命令提示符和终端外观由称为PS1的环境变量管理。 根据Bash人的页面, PS1代表当shell准备好读取命令时显示的主提示字符串。 PS1中允许的内容由几个反斜线转义的特殊字符组成,其含义在手册页的PROMPTING部分中列出。 为了说明,我们在我们的系统中显示PS1的当前内容(在您的情况下可能有些不同):
$ echo $PS1
[\u@\h \W]\$
我们现在将解释如何根据我们的需要定制PS1

自定义PS1格式

根据手册页中的PROMPTING部分,这是每个特殊字符的含义:
  1. \u:当前用户的用户名
  2. \h:完全限定域名中的第一个点(。)主机名
  3. \W:当前工作目录的basename$ HOME缩写为波浪号(〜)
  4. \$:如果当前用户是root,则显示 ,否则为$
例如,我们可能需要考虑添加\! 如果我们要显示当前命令的历史记录号,或者如果我们要显示FQDN而不显示短服务器名称,则显示\H 在下面的示例中,我们将通过执行以下命令将两者导入到当前环境中:
PS1="[\u@\H \W \!]\$"
当您按Enter键时,您将看到提示内容更改如下所示。比较执行上述命令前后的提示:
自定义Linux终端提示PS1

自定义Linux终端提示PS1

现在让我们进一步,在命令提示符中更改用户主机名的颜色 - 文本及其周围的背景。 其实,我们可以自定义3个方面的提示:
文本格式 前景(文本)颜色 背景颜色
0:正常文本 30:黑色 40:黑色
1:bold 31:红色 41:红色
4:带下划线的文本 32:绿色 42:绿色
33:黄色 43:黄色
34:蓝色 44:蓝色
35:紫色 45:紫色
36:青色 46:青色
37:白色 47:白色
我们将在开头使用\e特殊字符,在结尾使用m ,表示以下是一个颜色序列。 在此序列中,三个值( 背景格式前景 )由逗号分隔(如果未给出值,则假定为默认值)。

建议阅读: 在Linux中学习Bash Shell脚本

此外,由于值范围不同,因此您首先指定哪个( 背景格式前景 )。 例如,以下PS1将使提示显示为带有红色背景的黄色下划线文本:
PS1="\e[41;4;33m[\u@\h \W]$ "
更改Linux终端颜色提示PS1

更改Linux终端颜色提示PS1

看起来不错,这个自定义只会持续到当前用户会话。如果您关闭终端或退出会话,更改将会丢失。 为了使这些更改永久,您必须将以下行添加到~/.bashrc~/.bash_profile具体取决于您的分发:
PS1="\e[41;4;33m[\u@\h \W]$ "
随意玩弄颜色,找到什么最适合你。
概要
在本文中,我们已经解释了如何自定义您的Bash提示符的颜色和内容。如果您对此信息有任何问题或建议,请随时使用以下评论表单与我们联系。我们期待您的回音!