在linux命令行里输出带颜色的字符,需要使用ascii码里的字符属性设置描述符。
成都创新互联主要从事成都网站建设、成都做网站、网页设计、企业做网站、公司建网站等业务。立足成都服务蕉城,10多年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18982081108
\033[0m 关闭所有属性
\033[1m 设置高亮度
\033[30m 至 \33[37m 设置前景色
\033[40m 至 \33[47m 设置背景色
其中颜色代码是:
背景颜色范围:40----49
40:黑
41:深红
42:绿
43:黄色
44:蓝色
45:紫色
46:深绿
47:白色
字(前景)颜色:30-----------39
30:黑
31:红
32:绿
33:黄
34:蓝色
35:紫色
36:深绿
37:白色
例如你要输出红色的“hello world”:
\033[31mheool world \033[0m
深蓝色是目录,白色是普通文件,浅蓝是软链接
其他颜色:
黄色是设备文件,红色有的系统是压缩文件,红背景是断掉的软连接(就是软连接指向的文件没了),土黄色文件是 socket 文件,嫩绿色是可执行的文件
还有啥想不起来了。
这些颜色是可以改的,由环境变量 LS_COLORS 定义。所以颜色习惯只是一个参考。
先展示个人结果
PS1是Linux终端用户的一个环境变量,用来定义命令行提示符的参数。
在终端输入命令:
可得到当前PS1的定义值:
PS1的常用参数以及含义:
所以linux默认的命令行提示信息的格式
在PS1中设置字符颜色的格式为:[\e[F;Bm]........[\e[0m],其中“F“为字体颜色,编号为30-37,“B”为背景颜色,编号为40-47,[\e[0m]作为颜色设定的结束。
颜色对照表:
只需将对应数字套入设置格式中即可。
经过多次测试后,最终确定了一个适合我自己的格式:
但注意这样的设置只是临时性的.
上面的设置的作用域只有当前终端的登陆有效,关闭终端或退出登录即刻失效。要想永久性的保存设置,需要修改.bashrc配置文件。
键入命令:
现在可以看到.bashrc这个文件。
编辑.bashrc:
加入这一行:
保存退出。
重新加载bash配置文件:
即可立即并永久生效了。
在linux中,我们在编辑时需要对文档编辑或者一些信息的显示加上颜色,增强阅读的效果
格式: echo -e "\033[字体颜色;字背景颜色m字符串\033[0m"
要显示什么颜色,优先是先判断位置,按语法上来说,应该是先字体色,然后是背景色,但是字体色的地方数值为43,所以判断为背景的颜色,而在后面的31本应该是背景色,结果数值31位字体的颜色,所以显示的效果是字体的颜色为红色,而不是背景红色,假设这个31是数值41,则表示背景的为红色,整体的效果就是红色背景,字体处没有颜色,为默认的白色,且效果是闪烁。
其中设置颜色的格式为:\033[ ; m …… \033[0m,其中ascii code是对颜色调用的始末.也可以表示为\e[F;Bm…….\e[0m
字背景颜色范围: 40--49 字颜色: 30--39
例如显示红色,其中红色^[[31mred^[[0m其中^[是在插入编辑模式下按键进去额ctr+v+[这三个按键输入的。
假设写在文档tt1写入对应的语句来查看,通过cat tt1验证效果
^[[31mred^[[0m :表示对应的字是红色字体,没有底色,如下截图
^[[31mred^[[44m:表示红色字体,底色为紫红色。假设写在文档tt1,后面cat tt1.这个屏幕底色都是蓝色,字都是红色如下截图
^[[31;44mred^[[0m:表示红色字体,字和屏幕的底色为蓝色,背景没有底色,和^[[31mred^[[44m效果一样。如下截图
^[[31;44mred^[[44m:表示红色字体,底色都是蓝色
在命令行里输入命令:echo -e '\e[43;31;4mmagedu\e[0m',得到如下的效果
PS1是Linux终端用户的一个环境变量,用来说明命令行提示符的设置。在终端输入命令:echo $PS1,就会输出PS1的定义:
默认的PS1变量值为 : PS1="[\u@\h \W]$"
PS1的定义中个常用的参数的含义如下:
给PS1赋值如下:
PS1="[\[\e[31;40m\]\u\[\e[37;40m\]@\[\e[34;40m\]\h\[\e[37;40m\] \W]\\$\[\e[0m"
这里需要注意,颜色的结束调用符号,要放在最后面,否则当使用命令history查看历史命令时,会出现各种异常的显示
正确的结果得到的结果如下图
当把结束符调整到$前面,如PS1="[\[\e[31;40m\]\u\[\e[37;40m\]@\[\e[34;40m\]\h\[\e[37;40m\] \W]\[\e[0m\\$",使用history查找的时候出现了如下的异常显示
注意,这里赋值的时候要用单引号才能得到要的效果,只是单纯改变颜色,其他值不改变,如果赋值用双引号,如下
错误写法:PS1="[\[\e[31;40m\]\u\[\e[37;40m\]@\[\e[34;40m\]\h\[\e[37;40m\]\W]\[\e[0m\$"
得到的效果如下:
如果是root时,提示符为:# ,普通用户则为:$,但是双引号后root的提示符为$,是不对的
解决办法:如果用双引号,需要再\$前再加一个\,语句如下
PS1="[\[\e[31;40m\]\u\[\e[37;40m\]@\[\e[34;40m\]\h\[\e[37;40m\] \W]\\$\[\e[0m"
赋值为PS1='\[\e[43m\][\[\e[31m\]\u@\[\e[34m\]\h \W]\$\e[0m'
效果如下截图
这个例子,我们可以明显看出,\e[颜色值m这个是说明接下来的颜色从这里开始是什么颜色,\e[0m说明的是颜色的结束位置,
这里需要注意的是,如果没有通过\[ \]对每一个颜色进行界定,使用过程,如上翻历史页,就会出现显示异常。
将设置好的PS1变量写到家目录下的.bashrc 里面,这样后面开启的终端都有效。
$ vim .bashrc
打开后添加一行
PS1="[\[\e[31;40m\]\u\[\e[37;40m\]@\[\e[34;40m\]\h\[\e[37;40m\]\W]\[\e[0m\\$"
保存退出再次登录时显示的颜色也会是我们设定的值了。