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

196 阅读2分钟

哈喽大家好,我是咸鱼

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

image-20231030092613528.png

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

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

image-20231030092648869.png

PS1(提示语句)

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

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

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

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

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

image-20231030132811383.png

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

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

如下图所示

image-20231030133628847.png

修改 PS1

以 CentOS 7.9 为例

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

image-20231030134740803.png

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

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

然后生效一下

source /etc/bashrc 
​
或
​
source ~/.bashrc 

可以看到生效了

image-20231030135006641.png

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

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

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

image-20231030135253826.png

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

参考链接:linuxiac.com/how-to-chan…