如何在Debian 10中自定义Bash终端提示

bash Linux Shell不仅在提示中包含了不同的功能,而且还为提示提供了许多自定义选项,您可以使用这些选项通过不同的颜色来区分它们。

在本文中,我们将使用各种示例来自定义终端应用程序的提示并为其重新着色,以便您在需要时可以执行相同的操作。本文中描述的命令和过程在Debian 10 Buster系统上。

显示当前的Bash提示配置

当您打开带有Debian Application Launcher搜索的终端时,将看到类似于以下内容的提示:

[email protected]:directory$

此默认格式列出了用户名,主机名和用户的当前目录。 bash从为主目录中的每个用户单独配置的bashrc文件中获取此配置。要打开此文件:

$ nano ~/.bashrc

位置:/ home /用户名/.bashrc

您也可以使用其他文本编辑器打开此文件。

配置文件如下所示:在这里,我们显示文件的相关部分。

使用nano编辑器编辑bashrc

上图所示的PS1变量包含bash提示所需的所有配置。首先,让我们解释一下此变量中的字母代表什么。该变量可以清楚地显示在else语句之后列出的PS1变量中。

  • u-显示当前用户的用户名
  • h:显示从完全限定域名中提取的当前用户的主机名。
  • w:表示当前的工作目录。主目录由波浪号〜符号指示。
  • $]指示它是普通用户($)还是根用户(#)。

您还可以通过回显值来查看PS1变量的组成,如下所示:

$ echo $PS1

PS1变量

自定义Bash提示

现在您已经知道了提示信息的存储位置以及PS1变量的描述,让我们看看如何编辑提示信息以自定义bash提示。

在编辑PS1变量之前,重要的是将默认内容保存在新变量中。如果出现问题,这有助于将提示恢复为原始配置。在终端中输入以下命令:

$ DEFAULT=$PS1

现在,变量“ DEFAULT”包含恢复默认提示设置所需的所有信息。

让我们尝试一下PS1变量。输入以下命令:

$ PS1="u$ "

PS1的此新值在提示符下具有以下效果:

如何在Debian 10中自定义Bash终端提示

由于尚未设置颜色信息,因此只能显示用户名和root用户信息而不显示颜色。

通过键入以下命令,确保提示符也显示您的工作目录:

$ PS1="u:w$ "

PS1的此新值在提示符下具有以下效果:

工作目录清单

我的工作目录位于主目录,因此只能看到〜符号。 在其他目录(如“图片”)中,提示显示以下信息:

自定义提示

将提示恢复为默认值

现在我们已经将PS1变量的原始配置存储在DEFAULT变量中,我们可以通过提供默认变量的值来将PS1值恢复为默认值。

将提示恢复为默认值

我还能自定义什么?

如果您需要提示 包含某些自定义文本,您可以使用以下语法:

$ PS1="[custom text] [email protected]h:w$ "

例子:

我将提示设置为包含自定义消息,如下所示:

自定义命令行提示符文本

您可以在提示中包括以下基本字符:

特点目的
d以日期和月份的日期格式表示的日期。
e贝尔字符。
一种转义符。
H‘。 ‘当前用户的主机名最多。
H当前用户的主机名。
l终端设备的基本名称。
jShell运行的作业数。
r回车。
n新队。
u当前用户的用户名。
vBash版本。
输出正在执行的命令的历史记录号。

你能行的 包括当前系统时间 在提示符下使用以下命令:

$ PS1=”Au: w$ “

PS1的此新值在提示符下具有以下效果:

在命令提示符下显示时间

您还可以自定义提示以包括命令的输出。这使您可以无限制地包含在提示中。

句法:

$ PS1="[email protected]h on `[command]` w$ "

例子:

在此示例中,提示设置为包括当前用户所属的主要组的名称。

$ PS1="[email protected]h on `id -gn` w$ "

在提示符下显示命令输出

为Bash提示着色

自定义提示后,您会发现事情似乎有些混乱。显而易见的原因是,如果所有功能都以相同的颜色列出,则很难将一个功能与另一个功能区分开。接下来,让我们学习如何为提示着色,以使其更易于查看。

PS1变量包含颜色标签,用于为一个或多个功能添加颜色。下图中突出显示的文本是一个颜色标签。

向命令提示符添加颜色

这是颜色标签格式:

[33[COLOR]m]

例如,由于以下颜色标记,默认终端提示中显示的默认用户名和主机名是绿色的:

[33[01;32m][email protected]h

您可以为bash提示功能更改该颜色的值,以添加新颜色或为没有颜色的功能添加新的颜色标签。

常见的颜色及其值是:

颜色价值
绿色的32
红色的31
黑色的30
蓝色的34
青色36
紫色的35
黄色的33
白色的37

例子:

以下命令将提示更改为红色,因为它在颜色标签中指定了31(红色)。

$ PS1="[33[31m][email protected]h:w$ "

重击提示着色

在Bash提示下使用文字样式

您可以通过为颜色标签分配属性值来向提示文本添加样式。具有属性的颜色标签的格式为:

[33[ATTRIBUTE; COLORm]

提示文本中可以使用以下属性值:

属性值目的
0普通文本(即使未设置任何属性,这也是默认值)
1个在Debian终端中,此值指定粗体文本
2个昏暗的文字
四个带下划线的文字
对于闪烁的文字
7反转文字和背景色
8对于隐藏的文字

例子:

您可以使用以下命令在bash提示下划线:

$ PS1 =” [33[4;31m][email protected] h: w $”

值为4表示文本为“带下划线”。

文字样式

对提示进行永久更改

到目前为止,您运行的命令仅会更改当前bash会话的提示。尝试自定义文本并为提示着色,并为所有bash会话永久设置该文本。达到最终版本时,需要编辑bashrc文件。

打开.bashrc文件,并在PS1行的if下复制最终的PS1值。我接下来去。在下图中,我将bash提示的颜色更改为红色。

.bashrc文件

按Ctrl + X,然后按Y保存文件。 对bash提示的更改将是永久性的。如果退出终端并重新打开终端,则会看到bash提示与您设置的一样。

永久更改bash提示的颜色

在学习完本教程之后,您将擅长自定义bash提示。然后,您可以设置颜色以区分提示中包含的不同功能。这样,每次使用bash提示时,您都可以查看和使用该有用信息。

如何在Debian 10中自定义Bash终端提示

Sidebar