原文地址:http://blog.csdn.net/sunliymonkey/article/details/44420027
使用linux系统已经很多年,今天才注意到命令终端的格式和颜色均是可以配置,故在网上学习了一番,并写下此博客作为学习笔记。整篇博客简单分析了终端颜色和格式的默认配置代码,然后展示了语法规则,最终给出了自己使用的配置方案。
默认配置
在linux系统中,用户的配置文件有多个,一般熟悉的有 .bashrc,/etc/profile两个文件,我们可以在这两个文件中,找到终端的配置。对于终端的显示,相信大家都不陌生,例如:
- 1
- 2
基于两个关键字符 “@” 和 “:”,我们可以在.bashrc配置文件中进行查找,最终可以发现PS1对终端的颜色和格式进行了设置。
阅读发现,PS1有两种形式,而且明显上面的配置内容更加丰富。根据条件语句的变量”color_prompt“(颜色提示符),可以发现其能够控制终端颜色。于是一种想法就是,在56行代码前,将”color_prompt“设置为”yes“,然后查看一下效果。
代码修改:
修改前后效果对比:
语法规则
- 1
在上一节,我们已经知道PS1控制着终端的颜色和格式,想必其书写方式会有一定规则。下面介绍下颜色设置和特殊的转移字符。
颜色设置方式
颜色=\033[控制代码;前景;背景m
控制代码
控制代码 | 意义 |
---|---|
0 | OFF |
1 | 高亮显示 |
4 | underline |
5 | 闪烁 |
7 | 反白显示 |
8 | 不可见 |
颜色参数
颜色 | 前景 | 背景 |
---|---|---|
黑色 | 30 | 40 |
紅色 | 31 | 41 |
綠色 | 32 | 42 |
黃色 | 33 | 43 |
藍色 | 34 | 44 |
紫紅色 | 35 | 45 |
青藍色 | 36 | 46 |
白色 | 37 | 47 |
透明色 | 1 |
结合上面这两张表的信息,我们就可以进行颜色和动作定制了。
比如:
- 1
- 2
还需注意的是:在实际使用过程中,均需在颜色设定码两边加上方括号( “[ , ]” ), 原因见下表:特殊字符。
特殊字符
特殊字符 | 意义 |
---|---|
\e | ASCII转义字符(也可以键入 \033) |
\[ | 将非打印字符包起来,比如:颜色序列前后 |
\] | 将非打印字符包起来,比如:颜色序列前后 |
\n | 换行符 |
\u | 用户名 |
\w | 当前工作目录(如 “/home/drobbins”) |
\W | 当前工作目录的“基名 (basename)”(如 “drobbins”) |
\$ | 用户提示符,普通用户”$”;超级用户”#” |
\h | 主机名的第一部分(如 “mybox”) |
\H | 主机的全称(如 “mybox.mydomain.com”) |
除该表已列出的转义字符,还有一些其他的,请参考附录中的参考资料。
到此为止,我们已经了解所有相关的语法规则,再次来看PS1的设置
- 1
对上面的PS1进行分解:
代码片断 | 意义 |
---|---|
[\033[01;32m\ ] | 设定颜色参数,高亮显示绿色 |
\u | 显示用户名 |
@ | 显示 ‘@’ |
\h | 显示用户组 |
[\033[00m\ ] | 去除颜色设定 |
: | 显示 ‘:’ |
[\033[01;34m\ ] | 设定颜色参数,高亮显示蓝色 |
\w | 显示当前文件路径 |
[\033[00m\] | 去除颜色设定 |
\$ | 显示用户提示符‘#’ or ‘$’ |
这就与前面显示的效果相一致了。
推荐配置
上面说了那么多,终于对PS1的配置搞清楚了,我当时为啥会想到修改终端配置呢?是因为我看到了如下的终端显示效果:
将文件路径显示与输入命令放在两行,这样有一个好处,当文件路径比较长时,避免它们处于同一行时,造成显示不直观,用起来不舒服。下面是我的配置代码,直接放在.bashrc文件末尾,就能使用。
- 1
关键一点就是使用‘\n’,使用当前文件路径信息分行显示。
参考资料
Ubuntu终端颜色设置、路径名设置以及ls命令设置 - - 当时学习,参考的一篇博客