默认情况下程序输出到终端的字符样式为白字黑背景,样式、字体比较单一。如想改变程序输出到终端字符的样式等可使用ANSI转移码使其输出具有不同样式;
ANSI转义序
ANSI转义序列包括这三个部分组成:前置引导,CSI转义序列,结束符号
1、前置引导: 为ESC的ASCII值(\033,\0x1b),标志此为控制命令,此时终端不会把后续当字符串解释,shell下可用\e标识。
2、CSI转义序列:
控制输出样式,颜色、光标、下划线等
CSI转义序列由 [CSI序列;结束符 组成。
CSI序列包括:< PREFIX>;< COLOR>;< TEXT DECORATION> 三部分组成,分别为:
前缀;颜色;文本修饰器
文本修饰器:加粗 1,下划线 4,闪烁 5 前缀:颜色模式 16色,256色
颜色: 31-37 字体颜色、41-47 背景颜色
颜色代码:
0:黑色,1:红色,2:绿色,3:黄色,4:深蓝色,5:紫色,6:浅蓝色,7:白色
上述代码+30为字体颜色,代码+40为背景颜色;
例如:
[33;1m:
**表示:**黄色;下划线
3、结束符: m
结束符号m: 控制字符结尾,[0m :没有特殊参数的CSI序列,通知终端恢复正常,0m 关闭所有属性;
示例:
echo -e "\x1b[33;1m字体\x1b[0m"
终端输出的字符为:黄色加粗字体
在Golang中的使用:
func main() {
fmt.Printf("%c[33;1m黄色字体加粗%c[0m\n", 0x1B, 0x1B)
fmt.Printf("%c[33;4m黄色字体下划线%c[0m\n", 0x1B, 0x1B)
fmt.Printf("%c[42;30;1m绿色背景黑色字体下划线%c[0m\n", 0x1B, 0x1B)
}
程序输出如图所示:

FEATURED TAGS
Agent
大模型
ChatGPT
HA
智能家居
LSM
Linux
Dapr
开发
插件
Linux,虚拟机,ubuntu
缓存
图片
Flink
反射
内置函数
go
限流
大数据,Spark,Kafka
面向对象
镜像
docker,hadoop,镜像
kafka,java
求导
链式法则
微积分
源码
快照
协议
ZooKeeper
ZAB
tomcat
Hadoop
Spark
python
自动微分
React Native
React
Node.js
Android
Kafka
lambda
jvm
rasp
框架
SPI
asm
maven
idea
依赖管理
module
helm
逻辑回归
S函数
IOS
Fiddler
Andriod
Protocol Buffer
kryo
车联网,大数据,神经网络
字节序
最小二乘法
线性代数
线性回归
最大似然法
网络编程
大数据
树莓派
Raspbian
redis
海南
分析
人口
函数式编程
clojure
线程
并行
actor
红黑树
数组
动态数组
tcp
编程
markdown
二叉搜索树
AVL树
数据结构
golang
梯度下降法
skaffold
k8s
机器学习
选法
一致性
算法
分布式
paxos
Raft
一致性协议
引擎
容器
通信
微服务
Kubernetes
docker
文件系统
NFS
神经网络
神经元
深度学习
poi
反向传播
java
并发模型
并发
多线程
Scala