Linux 中如何修改终端提示符颜色?

哈喽大家好,我是咸鱼

我们知道默认情况下,Linux 终端提示符都是简单的黑白色

这种黑白提示一方面看久了容易视觉疲劳,另一方面由于没有高亮显示,看着很不方便,视觉体验极差

所以我们需要修改我们的终端显示颜色,像下面这样子

PS1(提示语句)

在 Linux 中,当前的 Bash 提示设置保存在一个名为 PS1 的 shell 变量中,它表示【提示语句】(Prompt Statement)

PS1 被称为【主要提示变量】

此外还有三个额外的变量:PS2、PS3和PS4。但是,由于它们与更改 Linux 终端中提示符的颜色无关,本文不过多介绍

这个变量保存的路径通常在$HOME/.bashrc 文件中(或者 /etc/bashrc

bash 复制代码
# 查看当前 bash shell 的 PS1 值
[root@localhost ~]# echo $PS1
[\[\e[33m\]\u\[\e[0m\]@\[\e[31m\]\h\[\e[0m\] \[\e[35m\]\w\[\e[0m\]]\$

刚开始看到这个输出,相信有不少小伙伴跟我一样一脸懵逼的,我们先只关注 \u@\h:\w\$ 部分

  • u:表示用户名(username)
  • h:表示主机名(hostname)
  • w:表示当前工作目录(current working directory)

如下图所示

修改 PS1

以 CentOS 7.9 为例

我们首先打开 .bashrc 文件(或 /etc/bashrc)并查找定义变量 PS1 那一行

把它注释掉,然后创建一个新的 PS1 变量

bash 复制代码
PS1='\[\033[1;32m\]\u\[\033[1;37m\]@\[\033[1;36m\]\h\[\033[00m\]:\[\033[1;34m\]\w\[\033[00m\]\$ '

然后生效一下

bash 复制代码
source /etc/bashrc 

或

source ~/.bashrc 

可以看到生效了

要定制Bash提示符,只需在PS1变量中添加、删除或重新排列下面这些特殊字符就可以了

1;32m1;37m1;36m 等。这些是 Bash 的颜色代码。这些代码由一系列数字表示,中间用分号加一个字母m隔开

以下是 Bash Shell 提供的颜色代码列表


于是我们的 Linux 终端就有了一个彩色的 bash shell 提示符

参考链接:https://linuxiac.com/how-to-change-the-colors-of-your-bash-shell-prompt-on-linux/