主页
文章
登录
登录
注册
忘记密码
反馈
文章
终端 ANSI 转义序列颜色与样式详解
终端 ANSI 转义序列颜色与样式详解
lyjin
2025-08-13
在日常的终端操作中,我们常常会看到带颜色或特殊样式的输出,这些效果大多是通过 **ANSI 转义序列** 实现的。本文将详细介绍常用的颜色与样式参数,以及它们的使用方法。 ## 什么是 ANSI 转义序列 ANSI 转义序列是一种在终端中控制文本显示样式的标准方法,通过特定的转义码(Escape Sequences),我们可以为终端输出添加颜色、加粗、下划线等效果。 这些转义序列通常以 `\033[`(ESC + `[`)开头,以 `m` 结尾,中间的参数控制具体效果。例如: ```bash echo -e "\033[31m这是红色文本\033[0m" ``` 上面的命令会在终端输出一行红色的文字,然后用 `\033[0m` 重置样式。 ## 常用参数表 | 参数 | 含义 | | ------------------ | --------------------------------- | | `0` | 重置所有属性(恢复默认颜色和样式) | | `1` | 粗体或高亮(多数终端表现为亮色) | | `2` | 暗淡(减少文字亮度) | | `4` | 单下划线 | | `5` | 慢闪烁 | | `7` | 反显(前后景色互换) | | `30–37` | 前景 8 色:黑、红、绿、黄、蓝、品红、青、白 | | `40–47` | 背景 8 色:黑、红、绿、黄、蓝、品红、青、白 | | `90–97` | 前景亮色:亮黑(灰)、亮红、亮绿、亮黄、亮蓝、亮品红、亮青、亮白 | | `100–107` | 背景亮色:亮黑(灰)、亮红、亮绿、亮黄、亮蓝、亮品红、亮青、亮白 | | `38;5;<n>` | 前景 256 色索引(`n` 取 0–255) | | `48;5;<n>` | 背景 256 色索引(`n` 取 0–255) | | `38;2;<r>;<g>;<b>` | 前景真彩色(24-bit RGB,`r/g/b` 取 0–255) | | `48;2;<r>;<g>;<b>` | 背景真彩色(24-bit RGB,`r/g/b` 取 0–255) | ## 示例 ### 基本颜色示例 ```bash echo -e "\033[31m红色\033[0m" echo -e "\033[42m绿色背景\033[0m" echo -e "\033[1;34m加粗蓝色\033[0m" ``` ### 256 色示例 ```bash echo -e "\033[38;5;196m亮红色(256色)\033[0m" echo -e "\033[48;5;82m绿色背景(256色)\033[0m" ``` ### 真彩色(24-bit)示例 ```bash echo -e "\033[38;2;255;165;0m橙色文字\033[0m" echo -e "\033[48;2;0;128;255m蓝色背景\033[0m" ``` ## 兼容性注意事项 - 绝大多数现代终端(如 iTerm2、Windows Terminal、gnome-terminal)都支持 **256 色** 与 **真彩色**。 - 一些较老的终端可能只支持 **8 色**。 - 在脚本中使用颜色时,记得最后加上 `\033[0m` 以防止影响后续输出。 ## 总结 通过 ANSI 转义序列,我们可以让终端输出更加直观、美观。无论是编写 Bash 脚本,还是在 Python、Node.js 中输出带颜色的日志,掌握这些转义码都能提升可读性和用户体验。 --- 💡 **小贴士**:在 Python 中同样可以使用: ```python print("\033[1;32m绿色文字\033[0m") ```
分享
×
用手机扫码分享
没有评论
请登陆后评论
新建评论
移除
关闭
提交