设置Linux终端字体颜色

早过忘川 提交于 2020-04-03 20:22:48

系统启动后,环境变量加载的顺序为:/etc/profile → /etc/profile.d/*.sh → ~/.bash_profile → ~/.bashrc → /etc/bashrc

想要修改某用户登录后shell字体的颜色,在~/.bashrc中修改PS1的内容即可。

命令提示符PS1的常用参数:

\d :日期,格式为"周 月 日",例如:"Mon Aug 1"   
\H :完整的主机名;   
\h :仅取主机的第一个名字;  
\t :24小时制的时间,如:HH:MM:SS;
\A :24小时制的时间:HH:MM;	
\T :12小时制的时间; 	   
\u :当前用户的用户名; 
\v :BASH的版本信息;   
\w :当前工作目录的完整路径;   
\W :当前工作目录的basename;     
\$ :提示符,如果是root时,提示符为:#,普通用户则为:$

要实现颜色显示,这里要用到转义序列;转义序列就是一个让 shell 执行一个特殊步骤的控制指令。
转义序列通常都是以ESC开头,在shell里表示为^[ ,这种表示法需要一点时间去适应,也可以用 \033 完成相同的工作(ESC的ASCII 码用十进制表示就是27,等于用八进制表示的033)。
要直接在shell里面输入转义序列需要先按CTRL-v ESC或者CRTL-v-[

\033[m 声明了转义序列的开始。
\033[0m 声明转义序列结束,回到默认颜色。

PS1中设置字符颜色有两种方式,效果相同:

1、\e[F;Bm
2、\033[F;Bm

其中"F"为字体颜色,编号为30-37
"B"为背景颜色,编号为40-47

不同的数字代表不同的意义,支持的颜色列表:

F       B
30      40      黑色
31      41      红色
32      42      绿色
33      43      黄色
34      44      蓝色
35      45      紫色
36      46      青蓝色
37      47      白色

几种特殊'颜色':
0     OFF
1     高亮显示
4     underline
5     闪烁
7     反显
8     消隐(不可见)

关于 ls 和 grep 命令的 --color[=WHEN]参数:

--color[=WHEN]: colorize the output; WHEN can be 'never', 'auto', or 'always' (the default);

always和auto的区别:

always 会在任何情况下都给匹配到的字符加上颜色标记;
auto 只给最后一个管道符匹配到的字符加上颜色标记;

简单示例:

# vim /etc/bashrc

PS1="\e[32;1m[\u@\h \W]\\$\e[0m "

# source /etc/bashrc
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!