1 概述

在linux中,我们在编辑时需要对文档编辑或者一些信息的显示加上颜色,增强阅读的效果

格式: echo -e "\033[字体颜色;字背景颜色m字符串\033[0m"

要显示什么颜色,优先是先判断位置,按语法上来说,应该是先字体色,然后是背景色,但是字体色的地方数值为43,所以判断为背景的颜色,而在后面的31本应该是背景色,结果数值31位字体的颜色,所以显示的效果是字体的颜色为红色,而不是背景红色,假设这个31是数值41,则表示背景的为红色,整体的效果就是红色背景,字体处没有颜色,为默认的白色,且效果是闪烁。

其中设置颜色的格式为:\033[ ; m …… \033[0m,其中ascii code是对颜色调用的始末.也可以表示为\e[F;Bm…….\e[0m

2 颜色语法

2.1  颜色范围

字背景颜色范围: 40--49                  字颜色: 30--39

1240

字体颜色

 2.2 颜色举例

1240

颜色设置

3 案例

3.1 在vim编辑模式下,颜色显示

例如显示红色,其中红色^[[31mred^[[0m其中^[是在插入编辑模式下按键进去额ctr+v+[这三个按键输入的。

假设写在文档tt1写入对应的语句来查看,通过cat  tt1验证效果

^[[31mred^[[0m :表示对应的字是红色字体,没有底色,如下截图

1240

^[[31mred^[[44m:表示红色字体,底色为紫红色。假设写在文档tt1,后面cat tt1.这个屏幕底色都是蓝色,字都是红色如下截图

1240

^[[31;44mred^[[0m:表示红色字体,字和屏幕的底色为蓝色,背景没有底色,和^[[31mred^[[44m效果一样。如下截图

1240

^[[31;44mred^[[44m:表示红色字体,底色都是蓝色

1240

3.2 命令行模式

在命令行里输入命令:echo -e '\e[43;31;4mmagedu\e[0m',得到如下的效果


1240

3.3 命令提示符显示

PS1是Linux终端用户的一个环境变量,用来说明命令行提示符的设置。在终端输入命令:echo $PS1,就会输出PS1的定义:

默认的PS1变量值为 : PS1="[\u@\h \W]$"

PS1的定义中个常用的参数的含义如下:

1240

参数含义

3.3.1 把\u显示红色,\h显示绿色

给PS1赋值如下:

PS1='[\[\e[31;40m\]\u\[\e[37;40m\]@\[\e[34;40m\]\h\[\e[37;40m\]\W]\[\e[0m\]\\$'

得到的结果如下图

1240

用户名红色 主机名蓝色

注意,这里赋值的时候要用单引号才能得到要的效果,只是单纯改变颜色,其他值不改变,如果赋值用双引号,如下

错误写法:PS1="[\[\e[31;40m\]\u\[\e[37;40m\]@\[\e[34;40m\]\h\[\e[37;40m\]\W]\[\e[0m\$"

得到的效果如下:

1240

如果是root时,提示符为:# ,普通用户则为:$,但是双引号后root的提示符为$,是不对的

解决办法:如果用双引号,需要再\$前再加一个\,语句如下

PS1="[\[\e[31;40m\]\u\[\e[37;40m\]@\[\e[34;40m\]\h\[\e[37;40m\]\W]\[\e[0m\\$"

3.3.2 背景×××,第一个[左边中括号白色,用户名和@红色,主机名和后面字符是蓝色

赋值为PS1='\[\e[43m\][\[\e[31m\]\u@\[\e[34m\]\h \W]\$\e[0m'

效果如下截图

1240

这个例子,我们可以明显看出,\e[颜色值m这个是说明接下来的颜色从这里开始是什么颜色,\e[0m说明的是颜色的结束位置,

这里需要注意的是,如果没有通过\[   \]对每一个颜色进行界定,使用过程,如上翻历史页,就会出现显示异常。

3.3.3 写入配置文件

将设置好的PS1变量写到家目录下的.bashrc 里面,这样后面开启的终端都有效。

$ vim .bashrc

打开后添加一行

PS1="[\[\e[31;40m\]\u\[\e[37;40m\]@\[\e[34;40m\]\h\[\e[37;40m\]\W]\[\e[0m\\$"

保存退出再次登录时显示的颜色也会是我们设定的值了。

这里需要注意,如果设置PS1的颜色值后,按向上键查看历史的命令,如果历史命令显示格式有问题,可能是颜色调用的结束符号位置放置了,需要根据实际情况进行调整。