如何在 Linux 终端提示符中自定义 Bash 颜色和内容如何在 Linux 终端提示符中自定义 Bash 颜色和内容如何在 Linux 终端提示符中自定义 Bash 颜色和内容如何在 Linux 终端提示符中自定义 Bash 颜色和内容
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

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

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

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

如果您想知道如何自定义它以获得更好的可访问性或仅仅是突发奇想,请继续阅读 - 在本文中,我们将解释如何做到这一点。

PS1 Bash 环境变量

命令提示符和终端外观由名为 PS1 的环境变量控制。根据 Bash 手册页,PS1 表示 shell 准备好读取命令时显示的主要提示字符串。

PS1 中允许的内容由几个反斜杠转义的特殊字符组成,其含义在手册页的 PROMPTING 部分中列出。

为了说明这一点,让我们在系统中显示 PS1 的当前内容(在您的情况下可能会有所不同):

echo $PS1

[\u@\h \W]$

我们现在将解释如何根据我们的需求自定义 PS1。

自定义 PS1 格式

根据手册页中的 PROMPTING 部分,这是每个特殊字符的含义:

  1. \u: 当前用户的用户名。
  2. \h: 完全限定域名中的主机名,直到第一个点(.)。
  3. \W: 当前工作目录的基本名称,其中$HOME缩写为波形符(~)。
  4. \$: 如果当前用户是root,则显示#,否则显示$。

例如,如果我们想显示当前命令的历史编号,我们可能需要考虑添加 \! ,或者如果我们想显示 FQDN 而不是 \H服务器短名称。

在以下示例中,我们将通过执行以下命令将两者导入到当前环境中:

PS1="[\u@\H \W \!]$"

当您按Enter键时,您将看到提示内容发生如下变化。对比执行上述命令前后的提示:

现在,让我们更进一步,更改命令提示符中的用户和主机名的颜色 - 包括文本及其周围的背景。

实际上,我们可以从三个方面来定制提示:

Text Format Foreground (text) color Background color
0: normal text 30: Black 40: Black
1: bold 31: Red 41: Red
4: Underlined text 32: Green 42: Green
33: Yellow 43: Yellow
34: Blue 44: Blue
35: Purple 45: Purple
36: Cyan 46: Cyan
37: White 47: White

我们将在开头使用 \e 特殊字符,在结尾使用 m 来指示接下来是颜色序列。

在此序列中,三个值(背景、格式和前景)用逗号分隔(如果未给出值,则假定为默认值) 。

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

此外,由于值范围不同,因此您首先指定哪一个(背景、格式或前景)并不重要。

例如,以下 PS1 将导致提示以黄色带下划线的文本显示,背景为红色:

PS1="\e[41;4;33m[\u@\h \W]$ "

尽管看起来不错,但这种自定义只会持续当前用户会话。如果您关闭终端或退出会话,所做的更改将会丢失。

为了使这些更改永久生效,您必须根据您的发行版将以下行添加到 ~/.bashrc 或 ~/.bash_profile 中:

PS1="\e[41;4;33m[\u@\h \W]$ "

请随意尝试不同的颜色,找到最适合您的颜色。

概括

在本文中,我们解释了如何自定义 Bash 提示符的颜色和内容。如果您对这篇文章有疑问或建议,请随时使用下面的评论表与我们联系。我们期待您的回音!

©2015-2025 艾丽卡 support@alaica.com