您的Ubuntu系统使用默认的终端应用程序bash或破折号。您在默认提示符下键入命令,该提示符通常以一些预定义的颜色主题列出您的用户名,主机名和当前目录。 bash为提示提供了许多自定义选项,您不仅可以使用它们在提示中合并各种功能,还可以通过不同的颜色来区分它们。
在本文中,我们将使用各种示例来自定义终端应用程序的提示并为其重新着色,使您可以根据需要执行相同的操作。我们正在Ubuntu 18.04 LTS系统上运行本文中描述的命令和过程。
查看当前的Bash提示配置
通过Dash或Ctrl + Alt + T快捷方式打开终端时,将看到如下提示:
username@hostname:directory$
此默认格式列出了用户名,主机名,然后是用户的当前目录。 bash从为其主目录中的每个用户分别设置的bashrc文件中选取此配置。这是打开此文件的方法:
$ nano ~/.bashrc
位置:/home /用户名/.bashrc
您也可以使用任何其他文本编辑器打开此文件。
这是此配置文件的外观。我们在这里向您显示文件的相关部分。
您在上图中看到的PS1变量具有bash提示符的所有必需配置。让我们首先解释该变量中的字符表示什么。您可以在else语句之后列出的PS1变量中清楚地查看此变量。
- \ u-This表示当前用户的用户名
- \ h:这表示从标准域名中提取的当前用户的主机名。
- \ w:表示当前工作目录。您的主目录以波浪号〜符号表示。
- \ $:这表示您是普通用户($)还是根用户(#)。
您还可以通过回显PS1变量的值来查看其配置,如下所示:
自定义 shell 提示
在看到提示信息的存储位置以及PS1变量的描述之后,让我们看看如何对其进行编辑以自定义bash提示。
在编辑PS1变量之前,重要的是将其默认内容存储在新变量中。如果出现问题,这将有助于我们将提示恢复为原始配置。在终端中输入以下命令:
$ DEFAULT=$PS1
现在,变量“DEFAULT”具有恢复默认提示设置所需的所有信息。
现在让我们用PS1变量进行一些实验。输入以下命令:
$ PS1="\u\$ "
PS1的新值对您的提示有以下影响:
现在您只能看到您的用户名和root用户信息,而没有任何颜色,因为尚未设置颜色信息。
让我们输入以下命令,以便在提示符下列出我们的工作目录
$ PS1="\u:\w\$ "
PS1的新值对您的提示有以下影响:
由于我的工作目录位于主目录中,因此只能看到〜符号。在其他目录中,例如bin,我的提示将显示以下信息:
将提示设置回默认值
由于我们已经将PS1变量的原始配置存储在DEFAULT变量中,因此我们可以通过将PS1变量的值提供给我们的DEFAULT变量来将其设置回默认值。
您还能自定义什么?
如果您希望您的提示包含特定的自定义文本,您可以使用以下sytanx:
$ PS1="[custom text] \u@\h:\w\$ "
例:
我已将提示设置为包括以下自定义消息:
您可以在提示中加入以下基本字符:
字符 | 目的 |
\ d | 日期以日月日期格式表示。 |
\ e | 铃铛字符。 |
\一种 | 转义字符。 |
\H | 当前用户的主机名,直到“。” |
\H | 当前用户的主机名。 |
\ l | 终端设备的基本名称。 |
\ j | Shell正在运行的作业数。 |
\ r | 回车。 |
\ n | 新行。 |
\ u | 当前用户的用户名。 |
\ v | Bash版本。 |
\! | 正在运行的命令的打印历史记录号。 |
您可以包括当前系统时间通过以下命令在提示符下输入:
$ PS1=”\A\u: \w\$ “
PS1的新值对您的提示有以下影响:
您还可以自定义提示以包括命令的输出。这使您可以无限选择合并到提示中。
句法:
$ PS1="\u@\h on `[command]` \w\$ "
例:
在此示例中,我将设置提示以包括当前用户所属的主要组的名称。
$ PS1="\u@\h on `id -gn` \w\$ "
为提示着色
自定义提示后,您将意识到事情可能看起来有些混乱。显而易见的原因是,如果所有功能都以相同的颜色列出,则很难将一个功能与另一个功能区分开。现在让我们学习如何使提示变色以使其更悦目。
为了向一个或多个功能添加颜色,PS1变量包括颜色标签。下图中突出显示的文本是一个颜色标签。
这是颜色标签的格式:
\[\033[COLOR]m\]
例如,由于以下颜色标记,我们在默认终端提示中看到的默认用户名和主机名是绿色:
\[\033[01;32m\]\u@\h
您可以根据bash提示功能更改此颜色值,以为其赋予新颜色或向不具有任何颜色的功能添加新的颜色标签。
以下是一些常见的颜色及其值:
颜色 | 值 |
绿色 | 32 |
红色 | 31 |
黑色 | 30 |
蓝色 | 34 |
青色 | 36 |
紫色 | 35 |
黄色 | 33 |
白色 | 37 |
例:
当我们在color标签中指定31(红色)时,以下命令会将提示变为红色:
$ PS1="\[\033[31m\]\u@\h:\w$ "
在提示中使用文字样式
您可以通过将属性值分配给颜色标签来将样式添加到提示文本中。这是带有属性的颜色标签的格式:
\[\033[ATTRIBUTE; COLORm\]
您可以在提示文本中使用以下属性值:
属性值 | 目的 |
0 | 普通文本(即使未设置属性,这也是默认值) |
1个 | 在Ubuntu终端中,此值指定粗体文本 |
2 | 文字昏暗 |
4 | 文字下划线 |
5 | 对于闪烁的文字 |
7 | 反转文本和背景色 |
8 | 对于隐藏的文字 |
例:
您可以使用以下命令来突出显示bash提示符:
$ PS1="\[\033[4;31m\]\u@\h:\w$ "
值4表示我们要“underline”文本。
永久更改提示
到目前为止,您已执行的命令只会更改当前bash会话的提示。在尝试对文本进行自定义和提示颜色化并达到了要为所有bash会话永久设置的最终值之后,您需要编辑bashrc文件。
打开.bashrc文件,然后将if1下的已完成的PS1值复制到PS1行中。然后行。在下图中,我刚刚将bash提示的颜色更改为红色:
通过按保存文件Ctrl + X然后按ÿ。现在,对bash提示的更改将是永久性的。退出终端和re-open以查看您的bash提示仍然与您设置的相同。
在完成本教程的练习之后,您可以擅长自定义bash提示。然后,您可以设置颜色以区分已包含在提示中的不同功能。这样,每次使用bash提示时,您都可以查看和利用这些有用的信息。