如何在 Linux 终端提示中自定义 Bash 颜色和内容
如果您使用的是 Linux 操作系统,这意味着您大部分时间都在使用 CLI。并在终端上做更多的工作。默认情况下,大多数 Linux 操作系统为您提供 bash shell。 Shell 提供用户和内核之间的接口并执行命令。在本文中,我们将看到如何自定义 bash shell 提示
了解默认 BASH 提示
在自定义 bash shell 提示之前,首先要了解默认的 bash 提示。此默认提示如下所示:
username@hostname:~$
或者
[username@hostaname ~]$
bash提示符@字符前的第一部分即字符串表示当前用户的用户名。 bash 提示符的最后一部分表示系统的主机名。然后 ~ 符号表示提示的当前路径。如果 : 或 ]字符后的符号是 $ 表示帐户是标准帐户,或者如果此字符是 # 则帐户是根
了解 BASH 提示的不同部分
要自定义 bash 提示符,首先我们应该了解 bash 提示符的工作原理。 Bash 提供了提示语句。 bash提示语句有四种
- PS1 –这是主要的提示语句。我们将自定义此提示。
- PS2 -这是辅助提示语句。基本上,当用户提供由 \字符分隔的长命令时使用它。
- PS3 –此提示用于选择命令。
- PS4 –此提示用于在调试模式下运行 shell 脚本。
要查看当前 PS1 提示语句的值,可以使用以下命令:
echo $PS1
ps1 包含反斜杠和其他具有特殊含义的字母字符,这些字符在手册页的提示部分中列出。在上面的输出中,我们可以看到 \u \h 和 \W 是提示字符,@ 和 # 是特殊字符。
要自定义 bash 提示,我们将处理 PS1 提示和 PS2 提示。一般情况下,PS2 提示符只包含一个字符>。要查看 PS2 提示的内容,请使用 echo 命令:
echo $PS2
$PS3 将为空白,PS4 将包含 +字符
在 Linux 中自定义 Bash 提示
bash 提示符可以从 ~/.bashrc 文件中自定义。该文件包含提示语句。该文件存在于用户的主目录中。
~/.bashrc
在编辑此文件之前,请备份 ~/.bashrc 文件。使用以下命令备份 ~/.bashrc 文件
cp ~/.bashrc ~/.bashrc.bak
永久更改 Linux 中的 Bash 提示
要永久更改 bash 提示,我们可以编辑文件 ~/.bashrc 并更改 PS1 的值。要编辑此文件,您可以使用任何编辑器,但在本教程中,我们将使用 nano 编辑器,因为它易于使用。现在打开 ~/.bashrc 文件,使用以下命令:
nano ~/.bashrc
然后你会看到有一个 PS1 变量。
您可以编辑此变量的值来更改提示。现在,让我们将此提示的值更改为 bashprompt>。然后使用 ctrl+s 保存文件,然后使用 ctrl+x 关闭文件。然后使用以下命令查看提示符的变化
source ~/.bashrc
现在我们永久更改了 bash 提示。
创建对 BASH 提示的临时更改
我们可以使用 export 命令临时更改我们的 bash 提示,此提示将适用于当前会话。要更改临时 bash shell 提示,请使用以下命令:
export PS1="bashprompt>"
或者您可以直接运行以输入带有值的 PS1 变量作为命令:
修改 Bash 提示中的“username@hostname”部分
大多数 Linux 发行版都包含 username@hostname 作为 bash 提示。我们可以将其更改为我们想要的任何内容。我们只需要修改 PS1 变量的值。在上面两节中,我们已经看到了如何永久和临时修改 PS1字符的值。根据需要更改 PS1 的值。所以现在要将 username@hostname 更改为“myprompt@linux>”,我们可以将 PS1 的值设置为
export PS1="myprompt@linux> "
现在让我们看看如何在 bash 提示中添加表情符号。要将表情符号添加到提示中,首先,请确保您已在系统上安装了任何表情符号字体。要在提示中使用表情符号,只需将表情符号放在 PS1 变量中即可。这是一个例子:
PS1="???? ~ "
要在提示中显示 bash shell 的版本,请将 \v 提示字符放在 PS1 变量中:
PS1="Bash \v>"
要显示补丁级别的当前 bash 版本,请使用 \V 提示字符:
PS1="Bash \V>"
自定义 PS1 格式
要自定义 PS1 提示,我们需要编辑 PS1 提示的内容。该PS1包含一些字符,后面的反斜杠字符。以下是在 PS1 提示符中写入的相同字符:
- \u:该字符表示当前用户的用户名。
- \h:此字符表示主机名,直到第一个 ' 。 ' 完全限定域名中的字符
- \W:该字符显示当前工作目录的基本路径。对于主目录,该值将为波浪号 (~)字符。
- \$:这个字符用来分隔命令和提示符。如果帐户是标准帐户,则此字段包含 $字符,或者如果帐户是根帐户,则此字段包含 #字符。
现在让我们在 PS1 中添加一些其他选项并检查我们的提示看起来像 \!字符显示当前命令的数量, \H字符显示完整的完全限定域主机名,而不是显示到 ' 。 '字符。这是现在的提示:
PS1="[\u@\H \W \!]$"
在接下来的部分中,我们将探索更多提示选项或字符。
BASH 提示的流行自定义选项
现在让我们看看如何使用 bash shell 为提示提供的选项自定义 bash 提示。在向提示中添加任何选项之前,请在选项前使用 \字符。
显示用户名和域名
Bash 提示提供了两个选项,通过使用这些我们可以在提示中显示主机名和用户名。
- 要在提示中显示用户名,请使用 u字符后跟 \字符。
- 要在提示中显示主机名,请在 PS1 中使用 h字符。
这是一个例子:
export PS1="\u \h >"
添加特殊字符
我们可以在 bash 提示符中添加特殊字符。只需按照您希望如何自定义提示的顺序排列它们。这是一个例子:
export PS1="\u@\h> "
您应该始终在提示末尾使用特殊字符,这对于分隔命令和提示很有用。
向 BASH 提示添加日期和时间
现在让我们看看如何将时间添加到 bash 提示符中。以下是用于在提示中显示日期和时间的选项
- d – 此选项将以“工作日月份日期”格式显示日期
- t – 此选项将以 24 小时 HH:MM:SS 格式显示当前时间
- T – 此选项将以 12 小时 HH:MM:SS 格式显示当前时间
- A – 此选项将以 24 小时 HH:MM 格式显示当前时间
隐藏 BASH 提示中的所有信息
为了防止在提示中显示用户名和主机名,请不要在 PS1 变量中使用 h 和 u字符。只需使用 W字符来显示当前目录的路径。
区分root用户和普通用户
bash 提示符通过提示符末尾的 $ 和 #字符进行区分。 $字符用于标准用户,#字符用于 root 用户。
export PS1="\u@\H \W:\$ "
要了解所有颜色选项,请阅读 bash 手册页的提示部分。使用 man 命令。
输入命令
tput 是向shell 提供终端相关信息的命令。tput 命令查询术语信息数据库以获取信息。现在让我们看看如何使用 tput 命令来更改提示颜色。现在让我们看看如何更改提示的背景和前景的颜色。
export PS1=”\[$(tput setaf 1)\]\[$(tput setab 7)\]\u@\h:\w $ \[$(tput sgr0)\]”
以下是可与 tput 命令一起使用的选项:
- tput bold –应用粗体效果
- tput rev –显示反色
- tput sgr0 –重置一切
- tput setaf {code} –设置前景色。查看下表了解{code}的值
- tput setab {code} –设置背景颜色,见下表了解{code}的值
与 tput 命令一起使用的颜色代码:Color {code} Color 0 Black 1 Red 2 Green 3 Yellow 4 Blue 5 Megenta 6 Cyab 7 White
如何更改 BASH 提示颜色
我们可以更改 bash 提示的颜色。这是一个例子:
export PS1="\e[0;32m[\u@\h \W]\$ \e[0m"
现在让我们看看如何更改 bash 提示的颜色:
- \e[ - 这个字符串告诉 bash 提示从下一个字符应用颜色。
- 0;32m – 该字符串代表颜色。前面的数字;代表字体。和后面的数字;代表颜色代码。
- \e[0m – 此字符串将告诉 bash 提示将颜色应用于前一个字符。
以下是字体的值:
- 0 – 正常
- 1 – 粗体
- 2 – 昏暗
- 4 – 下划线
以下是颜色代码的值:
- 30 – 黑色
- 31 - 红色
- 32 - 绿色
- 33 - 布朗
- 34 - 蓝色
- 35 - 紫色
- 36 – 青色
- 37 – 浅灰色
您可以使用上述颜色的不同组合来创建主题。
如何将 BASH 更改重置为默认设置
如果您希望外壳恢复原状,那么我们可以这样做。在本文开头,我们创建了备份文件 ~/.bashrc 文件。现在要恢复原始的 bash 提示符,我们可以使用该文件。使用以下命令:
cat ~/.bashrc.bak > ~/.bashrc
要了解有关 bash 提示符的更多信息,请阅读 bash 的手册页。
man bash