如何在 Bash 中设置命令提示符的颜色?

如何在 Bash 中设置命令提示符的颜色?

在 Bash 中浏览最后一个命令的结果有点困难,因为命令提示符和结果颜色相同。这使得很难区分连续命令的结果。

例如,如何将颜色改为粉红色?

答案1

@Rob 是对的;具体来说,要改为浅红色(粉红色不是可用的颜色):

PS1 = "\[\033[1;31m\]\u:\w\$\[\033[0m\] "
#      ^^^^^^^     ^^                    Begin/end ANSI escape
#             ^^^^^                      "light red foreground"
#                    ^^^^^^^             Your original prompt
#                           ^^^^^^^^^^^  Reset color back to default foreground

您需要使用 ANSI 转义序列(在本例中1;31m为“浅红色前景”的代码),它们被\[\033[和括起来\]

编辑:浅紫色可能更接近您想要的颜色;这个PS1变化留给读者作为练习。

参考@Linux文档项目

答案2

如果您想要一个替代解决方案,您可以创建一个小脚本来设置终端会话 PS1 颜色而不使它们永久存在(除非您希望永久颜色遵循 Alex 的解决方案)。

如果我们创建yellow.sh并保存到/usr/bin目录,然后使文件可执行,那么chmod +x yellow.sh我们就可以编辑yellow.sh并添加以下代码:

#!/bin/bash
clear

# Yellow color variable
ylw='\x1b[93m'

echo -e "${ylw}"
clear

运行此脚本将使终端颜色变为黄色。您可以使用以下代码以相同方式重置 PS1 颜色:

#!/bin/bash
clear

# Reset color to default
rst='\x1b[0m'

echo -e "${rst}"
clear

以下是一些您可以使用的颜色代码变量的快速列表。

black=$'\x1b[90m' # Dark gray. Not used much.
red=$'\x1b[91m'
green=$'\x1b[92m'
yellow=$'\x1b[93m'
blue=$'\x1b[94m'
purple=$'\x1b[95m'
cyan=$'\x1b[96m'
pink=$'\x1b[97m'
default=$'\x1b[0m' # Reset to default color.

简单脚本中常用命令的用法:

echo -e "${red} $(ls $1) ${default}" # Argument would be the directory you want to list.

根据您设置要使用的颜色的方式,这可以相当快地完成。我提供的颜色代码并非全部。根据您的终端支持的颜色,您可以使用 256 种颜色范围。

相关内容