Linux下输出不同颜色的字体详解

1.介绍:终端字符的颜色是用转义序列进行控制,是文本模式下的系统显示功能,和具体的语言无关。
转义序列是以 ESC 开头,可以用 \033 完成相同的工作(ESC 的 ASCII 码用十进制表示就是 27, = 用八进制表示的 33)。
2.格式:
printf("\033[字背景颜色;字体颜色m 字符串 \033[0m" );
例子如下:
printf("\033[1m\033[45;33m HELLO_WORLD \033[0m\n");
3.具体的介绍:
颜色代码: QUOTE:
字背景颜色范围: 40–49 字颜色: 30–39
40: 黑 30: 黑
41: 红 31: 红
42: 绿 32: 绿
43: 黄 33: 黄
44: 蓝 34: 蓝
45: 紫 35: 紫
46: 深绿 36: 深绿
47: 白色 37: 白色
ANSI控制码:
QUOTE:
\033[0m 关闭所有属性
\033[1m 设置高亮度
\033[4m 下划线
\033[5m 闪烁
\033[7m 反显
\033[8m 消隐
\033[30m – \033[37m 设置前景色
\033[40m – \033[47m 设置背景色
\033[nA 光标上移n行
\03[nB 光标下移n行
\033[nC 光标右移n行
\033[nD 光标左移n行
\033[2J 清屏
\033[s 保存光标位置
\033[u 恢复光标位置
\033[?25l 隐藏光标
\033[?25l 显示光标
其中 ,’\033[0m’用于恢复默认的终端输出属性,否则会影响后续的输出。
显示:0(默认)、1(粗体/高亮)、22(非粗体)、4(单条下划线)、24(无下划线)、5(闪烁)、25(无闪烁)、7(反显、翻转前景色和背景色)、27(无反显)
4.基于常用参数,可定义如下单一控制宏,用于printf系列语句:

1 #define NONE “\e[0m”
2 #define BLACK “\e[0;30m”
3 #define L_BLACK “\e[1;30m”
4 #define RED “\e[0;31m”
5 #define L_RED “\e[1;31m”
6 #define GREEN “\e[0;32m”
7 #define L_GREEN “\e[1;32m”
8 #define BROWN “\e[0;33m”
9 #define YELLOW “\e[1;33m”
10 #define BLUE “\e[0;34m”
11 #define L_BLUE “\e[1;34m”
12 #define PURPLE “\e[0;35m”
13 #define L_PURPLE “\e[1;35m”
14 #define CYAN “\e[0;36m”
15 #define L_CYAN “\e[1;36m”
16 #define GRAY “\e[0;37m”
17 #define WHITE “\e[1;37m”
18
19 #define BOLD “\e[1m”
20 #define UNDERLINE “\e[4m”
21 #define BLINK “\e[5m”
22 #define REVERSE “\e[7m”
23 #define HIDE “\e[8m”
24 #define CLEAR “\e[2J”
25 #define CLRLINE “\r\e[K” //or “\e[1K\r”

你可能感兴趣的:(Linux下输出不同颜色的字体详解)