在linux终端中,字符颜色和显示方式是由转义序列控制的,是文本模式下的系统显示功能,与具体开发语言并无关系(这就代表,任何开发语言都能够使用这个方法)。

一、转义序列是啥

转义序列以控制字ESC开头,该字符的ASCII码十进制表示为27,十六进制为0x1B,八进制表示为033.多数的转义序列超过两个字符,所以通常以ESC和左括号[开头。该起始序列称为控制序列引导符(CSI,Control Sequence Intro),通常由\033[或者\e[代替。

通过转义序列设置终端显示属性时,可以采用下列格式

\033[ Param {;Param;...} m
或者
\e[ Param {;Param;...}m

其中,\033[或者\e[引导转义序列,m表示设置属性并结束转义。Param为属性值,{...}表示参数是可以多选的,多个参数之间用分号隔开,不限制顺序。

二、详细说明

1、常用例子

先举个最常用的例子:将字体颜色显示为红色

echo -e "\e[31m 红色字 \e[0m"

-e:在echo的时候需要用到-e选项,用于激活特殊字符的解释器。
\e[:引导转义序列
33m:设置红色前景
红色字:输出字符串
\e[0m:用于恢复默认终端输出属性, 否则影响后续输出

2、具体编码说明

显示方式
0:默认值
1:粗体/高亮
2:设置一半亮度
4:下划线
5:闪烁
7:反显、翻转前景色和背景色
22:非粗体
24:无下滑线
25:无闪烁
27:关闭反显

前景色(字体颜色)
30:黑色前景色
31:红色前景色
32:绿色前景色
33:黄色前景色
34:蓝色前景色
35:紫色前景色
36:粉色前景色
37:白色前景色

背景色
40:黑色背景色
41:红色背景色
42:绿色背景色
43:黄色背景色
44:蓝色背景色
45:紫色背景色
46:粉色背景色
47:白色背景色

可以发现显示方式、前景色、背景色的编码都是不一样的,所以可以用这三种属性的编码参数进行组合,多个参数之间用分号隔开,并且编码的前后顺序没有关系。

再来举一个例子收尾:背景色为黄色,前景色为红色,显示方式为闪烁

echo -e "\e[5;43;31m 哈哈哈 \e[0m"

参考文章:
https://www.cnblogs.com/fengliu-/p/10128088.html
https://blog.csdn.net/william_djj/article/details/84563109
https://www.jianshu.com/p/2ef7d816bee4

linux终端打印出各种颜色字体和背景色相关推荐

  1. linux终端字体颜色_使用printf打印出各种颜色字体

    我的博客:https://blog.csdn.net/qq_37388044 我的知乎:https://www.zhihu.com/people/bbtganmin 联系方式:知乎私信 转载或者引用本 ...

  2. Linux操作系统下,在终端打印出闪烁的星星图案

    Linux系统下,在终端打印出闪烁的星星图案. 一.首先需要耐心,使用输出语句先"弄"出一个星星图案 (我是为了打印出来的星星是在终端中间,所以这样子敲的,可根据自己想法完成) 二 ...

  3. linux 终端打印图片,Linux终端打印命令使用介绍

    常用linux打印命令 日常使用中或shell脚本中linux终端打印命令有echo和printf. echo命令 功能说明:显示文字. 语 法:echo [-ne][字符串]或 echo [--he ...

  4. 如何批量打印出黑白颜色的CAD图纸?

    如何批量打印出黑白颜色的CAD图纸?CAD设计师们,为了方便查看CAD图纸,经常需要批量打印CAD图纸,下面就来教教大家在CAD编辑器中如何批量打印出黑白颜色的CAD图纸操作演示. 1.启动CAD编辑 ...

  5. linux/unix上 printf输出带颜色字体(有意思)-转

    printf输出带颜色字体printf("\033[1;31m Hello World. \033[0m \n"); 颜色如下: none         = "\033 ...

  6. C语言中使用printf()打印漂亮的颜色字体

    1. 打印炫彩字体 :  "\033[字背景颜色;字体颜色m字符串\033[0m" 格式如:printf("\033[1;33m Hello World. \033[0m ...

  7. stm32单片机使用串口通信连接GY-33颜色传感器完成对颜色的识别并且打印出其颜色和对应的RGB值

    目录 1.GY-33介绍及其接线 2.通信原理 3.代码 4.GY-33发送出来的数据及如何处理数据​ 5.软件使用 所需:stm32单片机(这里使用的是正点原子stm32mini板),GY_33传感 ...

  8. linux终端打印保存到文件,Linux 终端中命令输出保存到文件中的方法

    当你在 Linux 终端中运行命令或脚本时,它会在终端中打印输出方便你立即查看. 有时你需要将输出保存到文件中以备将来参考.当然你可以在 Linux 终端中复制和粘贴,但是有更好的方法可以在 Linu ...

  9. Linux终端输出echo各种颜色的ziti

    #!/bin/bash # #下面是字体输出颜色及终端格式控制 #字体色30-37 echo -e "\033[30m黑色字\033[0m" echo -e "\033[ ...

最新文章

  1. 在Ubuntu 14.04 64bit上安装批量图片处理器XnConvert
  2. Java 实例 - 生产者/消费者问题
  3. c语言求最小公倍数_分解质因数、互质数、公因数、最大公因数、公倍数、最小公倍数...
  4. 数据库原理与应用(SQL Server)笔记 第五章 索引和视图
  5. 特征筛选8——递归特征删除(REF)筛选特征(有监督筛选)
  6. html 权限模块设置,角色权限设置.html
  7. Jmeter远程启动负载机
  8. java 启动顺序_java语句执行顺序
  9. 大电流dcdc降压芯片20a_详细计算公式丨Buck降压开关电源的功率损耗
  10. Windows环境下不用第三方程序给新硬盘提前预装Windows系统
  11. 现代通用计算机雏形是,科技知识:什么是现代通用计算机的雏形
  12. PHP将一个二维数组按照某个键的键值做出重组一个新的二维数组
  13. 力扣6. Z 字形变换
  14. Linux实验5——Apache、虚拟主机
  15. 微信小程post问题
  16. Citrix 相关资料整理
  17. 2.Linux下程序代码的编译
  18. !《掘地求生》制作心得及源码分享 unity制作
  19. Java高级深入与JVM
  20. 4年外包终上岸,我只能说这类公司能不去就不去

热门文章

  1. 能够接受儿女平凡的人可以说是看透人生了
  2. linux挂在谷歌硬盘,【Colab系列】挂载谷歌硬盘详解
  3. tomcat各版本的区别
  4. 游聚西游释厄传修改器尝鲜版
  5. java连接sql server2008_java连接sql-server-2008的四种方法
  6. jmeter jp@gc - Stepping Thread Group (deprecated)-自定义启动线程
  7. 计算机网络技术霍金,霍金预言:地球最后一个人是最强人工智能
  8. 《JavaScript框架设计(第2版)》之语言模块
  9. OSChina 周四乱弹 ——男生做女生那些亲密动作是有多难?
  10. JAVASE学习 面向对象