ANSI 颜色代码
终端转义序列:\033[CODEm 或 \e[CODEm(\033 = ESC = 27)。点击下方任意颜色 / 样式可复制对应代码。
\033[38;2;<R>;<G>;<B>m背景:
\033[48;2;<R>;<G>;<B>m重置:
\033[0m 或 \033[mprintf "\e[1;33m警告\e[0m\n"
RED='\033[31m'; RESET='\033[0m'; echo -e "${RED}error${RESET}"
转义序列/前后景/样式
终端转义序列:\033[CODEm 或 \e[CODEm(\033 = ESC = 27)。点击下方任意颜色 / 样式可复制对应代码。
\033[38;2;<R>;<G>;<B>m\033[48;2;<R>;<G>;<B>m\033[0m 或 \033[m了解工具定位 · 使用场景 · 对比优势
后端运维每天面对海量终端日志,不同级别(INFO/WARN/ERROR)混杂在一起,肉眼扫描效率极低。使用本工具生成 ANSI 转义序列,将 ERROR 标为红色背景 + 白色加粗、WARN 标为黄色、INFO 标为绿色,直接粘贴到日志脚本的 echo 语句中。运行后,终端输出按颜色分层,3 秒定位故障行,无需再逐行 grep。
Python 脚本开发者想在终端输出带颜色的进度条,但手动拼装 ANSI 转义码容易漏掉重置符(\033[0m),导致后续输出全部变色。使用本工具的可视化面板,选择前景色(如青色)、背景色(如深灰)、样式(加粗/闪烁),一键复制组合后的转义序列。插入代码后,进度条在深色终端主题下清晰可见,且不会污染后续输出。
Linux 用户想修改 PS1 环境变量,让终端提示符显示绿色用户名 + 蓝色路径 + 红色 Git 分支状态,但直接编辑 .bashrc 时,转义序列的格式错误会导致提示符乱码。利用本工具的实时预览功能,逐段选择颜色和样式,生成完整的 PS1 字符串。复制到配置文件中,重启终端后,多段信息用不同颜色区分,视觉层级一目了然。
自动化测试工程师运行 200 个用例后,终端输出 PASS/FAIL/SKIP 结果混杂。手动翻找失败用例耗时且易遗漏。通过本工具生成三组颜色序列:PASS 用绿色、FAIL 用红色闪烁、SKIP 用黄色斜体,嵌入测试框架的日志函数。运行后,失败用例在终端中闪烁红色,一眼扫过即可统计失败数量和位置。
Shell 脚本调试时,变量名、变量值、执行步骤混杂输出,难以区分。使用本工具为不同调试级别分配颜色:变量名用蓝色、变量值用黄色、步骤状态用白色加粗。将生成的序列插入调试函数中,运行脚本后,每行调试信息按颜色分组,变量赋值错误和逻辑分支异常都能在视觉上快速定位。
| 维度 | 本工具 | 竞品 A (Online ANSI Editor) | 传统方法 (终端模拟器) |
|---|---|---|---|
| 数据隐私 | 纯浏览器处理,文本不上传服务器 | 部分在线编辑器需粘贴文本到网页,存在数据留存风险 | 本地终端执行,数据完全在本地 |
| 处理速度 | 即时预览,输入即出结果 | 需点击提交按钮等待服务器响应,延迟 1-3 秒 | 需手动编译/运行代码,或使用 echo 命令,速度取决于终端渲染 |
| 离线可用 | 完全离线,加载后无需网络 | 必须联网 | 完全离线 |
| 使用门槛 | 无需安装,打开网页即用 | 需要找到并打开特定网站 | 需要安装终端模拟器(如 iTerm2, Windows Terminal)并熟悉 shell 命令 |
| 样式预览 | 实时可视化预览最终颜色效果 | 部分工具支持预览,但可能不支持所有转义序列 | 无图形化预览,需肉眼观察终端输出,且不同终端渲染效果不同 |
| 功能范围 | 专注颜色与样式(前景/背景/加粗/闪烁等)的生成与预览 | 可能包含颜色生成、代码片段管理、导出等功能 | 功能全面,但生成 ANSI 颜色需额外编写脚本或使用 tput 命令 |
| 跨平台一致性 | 浏览器渲染,效果与浏览器相关,但提供标准化输出 | 依赖服务器端解析,不同工具解析规则可能不同 | 不同终端模拟器对 ANSI 标准的支持程度不同,输出效果差异大 |
上手步骤 · 输入输出 · 避坑提示
| 输入 | 输出 | 说明 |
|---|---|---|
| Hello World | [31mHello World[0m | 典型场景:给一段文字添加红色前景色 |
| [1m[4m粗体下划线[0m | 粗体下划线(渲染为粗体+下划线) | 典型场景:组合多个样式属性 |
| [48;2;255;0;0m红底文字[0m | 红底文字(背景为RGB红色) | 边界case:24位真彩色背景,非标准256色 |
| [38;5;82m亮绿文字[0m | 亮绿文字(256色索引82) | 边界case:256色扩展色,非标准8/16色 |
| [9m删除线测试[0m | 删除线测试(部分终端不支持) | 易错case:删除线等非标准属性,兼容性因终端而异 |
| [0m重置所有[31m红色[0m[32m绿色 | 重置所有红色绿色(绿色未重置,显示红色) | 易错case:忘记在末尾加重置码导致颜色污染后续输出 |
]31m 红色文字[31m 红色文字ANSI 标准中,SGR(选择图形再现)参数使用 CSI(Control Sequence Introducer)前缀 `[`,而非 OSC(操作系统命令)前缀 `]`。`]` 用于设置终端标题等,不会改变文字颜色。
echo '[31m警告信息'echo '[31m警告信息[0m'ANSI 颜色序列是状态性的,一旦设置,终端会持续应用该样式直到遇到重置码(`[0m`)。不重置会导致后续所有终端输出都变成红色,包括命令提示符和命令结果。
在 cmd.exe 中直接运行 `echo [31mtest`使用 Windows Terminal 或 PowerShell 7+,或先运行 `reg add HKCU\Console /v VirtualTerminalLevel /t REG_DWORD /d 1` 启用旧版 CMD 的 ANSI 支持Windows 10 之前的 cmd.exe 原生不支持 ANSI 转义序列。Windows 10 版本 1511 后可通过注册表启用,但更推荐使用新版终端。
[41m 红色文字[31m 红色文字ANSI 颜色中,前景色(文字颜色)范围是 30-37(标准色)或 90-97(亮色),背景色范围是 40-47(标准色)或 100-107(亮色)。`41` 是红色背景,`31` 才是红色文字。
将包含 `[31mError[0m` 的日志直接写入文件或输出到 HTML在写入文件或输出到非终端环境前,使用 `sed 's/\x1b\[[0-9;]*m//g'` 或编程语言的 strip_ansi 库移除 ANSI 序列ANSI 转义序列是终端控制字符,在文本文件、Web 页面或 IDE 控制台(非原生终端)中会显示为乱码字符(如 `[31m`),破坏可读性。
[38;5;196 红色文字[38;5;196m 红色文字256 色扩展颜色序列的完整格式是 `[38;5;Nm`,其中 `m` 是 SGR 命令的终止字符。遗漏 `m` 会导致终端无法解析该序列,颜色不生效。
print("\033[31m红色" + "文字")print("\033[31m红色文字") 或 print("\033[31m" + "红色文字")在 Python 等语言中,`\033` 是八进制转义。如果字符串拼接不当(如将序列拆到两个字符串中),可能导致转义序列被中断,终端无法正确识别。
公式推导 · 流程图解 · 依据出处
\033[<参数>m
\033 — ESC 转义字符(八进制 033)<参数> — 以分号分隔的样式/颜色代码m — SGR 命令结束符输出红色前景文本:echo '\033[31mHello\033[0m'。参数 31 表示红色前景,0 重置所有属性。终端显示红色 'Hello'。
适用于支持 ANSI X3.64 / ECMA-48 标准的终端模拟器(xterm、iTerm2、Windows Terminal 等)。不适用于纯文本文件、不支持转义的终端(如某些嵌入式串口终端)。
3 种主流语言 · 复制即用
import sys
# 前景色:绿色,背景色:黄色,加粗
code = '\033[32;43;1m'
reset = '\033[0m'
print(f"{code}Hello, ANSI World{reset}")
# 256色:前景色 196(亮红),背景色 235(深灰)
fg = '\033[38;5;196m'
bg = '\033[48;5;235m'
print(f"{fg}{bg}256-color example{reset}")
# 真彩色(24位):前景色 #ff6600
rgb_fg = '\033[38;2;255;102;0m'
print(f"{rgb_fg}True color example{reset}")package main
import "fmt"
func main() {
// 前景色:青色,背景色:蓝色,闪烁
code := "\033[36;44;5m"
reset := "\033[0m"
fmt.Printf("%sHello, ANSI World%s\n", code, reset)
// 256色:前景色 82(亮绿)
fg := "\033[38;5;82m"
fmt.Printf("%s256-color green%s\n", fg, reset)
// 真彩色:前景色 #ff0000
rgbFg := "\033[38;2;255;0;0m"
fmt.Printf("%sTrue color red%s\n", rgbFg, reset)
}// 前景色:红色,背景色:白色,下划线
const code = '\x1b[31;47;4m';
const reset = '\x1b[0m';
console.log(`${code}Hello, ANSI World${reset}`);
// 256色:前景色 208(橙色)
const fg = '\x1b[38;5;208m';
console.log(`${fg}256-color orange${reset}`);
// 真彩色:前景色 #00ff00
const rgbFg = '\x1b[38;2;0;255;0m';
console.log(`${rgbFg}True color green${reset}`);8 个高频疑问
「命令速查」下的其他工具