设置Linux终端字体颜色
系统启动后,环境变量加载的顺序为:/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