Linux 终端控制台字体颜色

引言: 由于在c代码中看到过打印彩色字, 又对PS1 想进一步了解,才有了这篇博文。
----------------------------------------
Linux 终端控制台字体颜色  
----------------------------------------
Linux 终端控制台字体颜色,用到一个 转义序列
\e[F;B;Om
\e 转义字符开始,ESC 的 ASCII 码用十进制表示就是 27,等于用八进制表示的 033。


\e 或 \033 声明了转义序列的开始,
[ 开始定义颜色。
'F' 为字体颜色,编号30~37;
'B' 为背景色,编号40~47。
'O' 为特殊意义代码
它们的顺序没有关系。
m 是标记
m 后面不用跟空格,是所定义的彩色字和背景
   颜色表
    前景 背景颜色
    -------------------------
    30 40 黑色
    31 41 红色
    32 42 绿色
    33 43 黄色
    34 44 蓝色
    35 45 洋红
    36 46 青色
    37 47 白色

    特别代码意义
    -------------------------
    0 OFF
    1 高亮显示
    4 underline
    5 闪烁
    7 反白显示
    8 不可见


应用1:解释带颜色的PS1
PS1="\[\e[32m\][\u@\h \w]$\[\e[m\]"
解释:\[\] 为成组表示
定义[\u@\h \w]$ 为前景色绿色。 然后恢复默认设置。

应用2:用控制台输出彩色字或彩色背景
echo -e  "\033[34;1mthis is high lighted blue \033[0m"
c 代码: printf("\033[34;1mthis is high lighted blue \033[0m\n" );
尾部的\033[0m 恢复了系统默认颜色


直到我看过了echo 程序的源码, 才对echo -e 的输出有了更深的理解。 

那个双引号" 是bash分辨词素的标记,这样可以在双引号中加空格,整个双引号内容(不含双引号本省)被当做一个argv传递。

echo -e 还支持回车,换行,tab,响铃,垂直分割线以及16进制字符数据(\x## 2bytes)。

当然,上句的printf, 更是简单的字符串照印了,注意了,\033 可是8进制数据,代表一个27 字符

下面看几个例子:

echo -e "\033[30m 黑色字 \033[0m"
echo -e "\033[31m 红色字 \033[0m"
echo -e "\033[32m 绿色字 \033[0m"
echo -e "\033[33m 黄色字 \033[0m"
echo -e "\033[34m 蓝色字 \033[0m"
echo -e "\033[35m 紫色字 \033[0m"
echo -e "\033[36m 天蓝字 \033[0m"
echo -e "\033[37m 白色字 \033[0m"
 

echo -e "\033[40;37m 黑底白字 \033[0m"
echo -e "\033[41;37m 红底白字 \033[0m"
echo -e "\033[42;37m 绿底白字 \033[0m"
echo -e "\033[43;37m 黄底白字 \033[0m"
echo -e "\033[44;37m 蓝底白字 \033[0m"
echo -e "\033[45;37m 紫底白字 \033[0m"
echo -e "\033[46;37m 天蓝底白字 \033[0m"
echo -e "\033[47;30m 白底黑字 \033[0m"



  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值