设置PS1中字符颜色的格式为:\[\e[F;Bm\],F为字符颜色,B为字符背景色,它们两个谁放在前面都一样,因为它们的颜色编号不同:字符颜色30-37,字符背景色40-47。两者编号不同但代表的色彩是一致的,就是说,30和40都代表黑色,但是30指的是字符的颜色为黑色,而40指的是字符的背景色为黑色。图片中还有一个\e[34;4m,里面的4是一个字符的字体样式代码,它是指字符有下划线;字体样式代码、字符颜色编号和字符背景色编号它们的位置都是可互换的。我把颜色表和样式代码表附在文章末尾,有兴趣的话自己都试验一下。
有些文章里说颜色设定格式为:\[\e[F;Bm,即省略了最后的\],但我按照此格式设定时出现了一个问题,进入shell后光标总是停在PS1的第一个字符的位置上,而不是停在提示符$或#的后面。
我解释一下PS1=’[\[\e[31m\]\u\[\e[0m\]@\[\e[35;4m\]192.168.1.122\[\e[0m\] \w ]\$ ’的含义。
PS1样式是系统默认样式,只更改了用户名和主机名的显示色彩,第一个下划线部分设定PS1中用户名的颜色,第二个下划线部分设定主机名的颜色。
\[\e[31m\]后面跟\u,即设定了用户名字符的色彩为红色;\[\e[35;4m\]后面跟IP,即设定了IP字符的色彩为紫色,并且有下划线;代码\[\e[0m\],意为关闭颜色输出,用来界定颜色输出的结束位置,没有它的话,你设置的色彩会影响到后面的所有内容,包括从键盘输入的字符。如图:
[img][/img]
-----------------------------------------
颜色表:
30 31 32 33 34 35 36 37
黑色 红色 绿色 黄色 蓝色 紫色 白色
40 41 42 43 44 45 46 47
-----------------------------------------
代码表:
0:关闭颜色输出
1:高亮显示
4:下划线显示
5:闪烁显示
7:反白显示