最近一段时间,因为工作原因使用Linux比较多,下班后模拟一些集群实验要同时打开好几个Linux终端,查一些历史命令或者报错信息的时候,因为终端提示符和输出信息的颜色都是白色,找位置找的眼睛都要瞎了。另外区分这些终端主要是靠终端提示符里的设备名,因为终端提示符不太醒目,有时候经常容易把终端弄混。所以研究了一下怎么设置终端命令行颜色,规则不算复杂但是难以记忆,避免每次都要翻教程所以记录一下。
每一个Linux终端用户,都有一个PS1环境变量,这个环境变量控制着命令行的格式和颜色。
默认情况下,命令行的格式是:
1 | PS1='[\u@\h \W]\$ ' |
参数 | 含义 |
---|---|
\d | 代表日期,格式为weekday month date,例如:”Mon Aug 1” |
\H | 完整的主机名称 |
\h | 仅取主机的第一个名字 |
\t | 显示时间为24小时格式,如:HH:MM:SS |
\T | 显示时间为12小时格式 |
\A | 显示时间为24小时格式:HH:MM |
\u | 当前用户的账号名称 |
\v | BASH的版本信息 |
\w | 完整的工作目录名称 |
\W | 利用basename取得工作目录名称,所以只会列出最后一个目录 |
\# | 下达的第几个命令 |
\$ | 提示字符,如果是root时,提示符为:# ,普通用户则为:$ |
颜色 | 前景 | 背景 |
---|---|---|
黑色 | 30 | 40(默认) |
红色 | 31 | 41 |
绿色 | 32 | 42 |
黄色 | 33 | 43 |
蓝色 | 34 | 44 |
紫红色 | 35 | 45 |
青蓝色 | 36 | 46 |
白色 | 37(默认) | 47 |
代号中的0可以省略,即01和1的效果是一样的。
代号 | 意义 |
---|---|
0 | off(默认) |
01 | 高亮显示 |
04 | underline |
05 | 闪烁 |
07 | 反白显示 |
08 | 不可见 |
由上面可知linux默认的命令行提示信息为:[当前用户的账号名称@主机的第一个名字 工作目录的最后一项],并且不带有字体颜色设置。
要想控制字体颜色和显示效果,可以使用\[\e[效果;前景色;背景色m\]
,\
是转义符,e表示参数开始,m表示参数结束。详细举例如下
1 | 单独的字体显示设置,这块命令之后的区域都将以此效果显示。 |
理解了上面的参数,只需要把PS1设置为上面的值即可
1 | 临时设置,执行之后会立刻生效,但是退出当前终端就会失效 |
1 | 这是一个花里胡哨的彩色效果 |