Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >控制台输出颜色控制(Console

控制台输出颜色控制(Console

作者头像
霡霂
修改于 2018-08-09 07:21:23
修改于 2018-08-09 07:21:23
11K14
代码可运行
举报
文章被收录于专栏:雨过天晴雨过天晴
运行总次数:4
代码可运行

前端时间,写了一篇 PHP 在 Console 模式下的进度显示 ,正好最近的一个数据合并项目需要用到控制台颜色输出,所以就把相关的信息整理下,写到OSC的博客中。

请注意,此篇文章中的颜色仅适用于仿真器(putty、secureCRT、XShell),以及unix终端,不适用于CMD(但依然可用于WIN下的仿真器)

简介

在终端或仿真器中输入下面的代码,并回车,预览最直接的效果。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
echo  -e "\033[1;31mI ♡  You \e[0m"

请注意,引号内的\e等同于\033\033\x1b\e效果是一样,对应键盘左上角Esc键对应的ASCII码(8进制);

通用的控制文本颜色的转义序列格式如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
CSI n1 [;n2 [;]] m

其中CSI全称为“控制序列引导器”(Control Sequence Introducer/Initiator),也就是上述示例中的"\033["(其中\033是你键盘左上角Esc键对应的ascii码(八进制));

n1、n2等表示SGR参数(下面会列出一些常用的SGR参数),用于控制颜色、粗体、斜体、闪烁等文本输出格式;m表示转义序列结束。

颜色参数

常用颜色

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
格式:\033[显示方式;前景色;背景色m

说明:
前景色            背景色           颜色
---------------------------------------
30                40              黑色
31                 41              红色
32                42              绿色
33                43              黃色
34                44              蓝色
35                45              紫红色
36                46              青蓝色
37                47              白色

显示方式           意义
-------------------------
0                终端默认设置
1                高亮显示
4                使用下划线
5                闪烁
7                反白显示
8                不可见

例子:
\033[1;31;40m    <!--1-高亮显示 31-前景色红色  40-背景色黑色-->
\033[0m          <!--采用终端默认设置,即取消颜色设置-->

RGB颜色

使用方式:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ESC[38;2;<r>;<g>;<b> … m Select RGB foreground color
ESC[48;2;<r>;<g>;<b> … m Select RGB background color

特别注意:此处用法需从38开始设置, 代表前景色,48 代表后景色;2 代表RGB模式,后面三位为RGB数值。前后仍可使用SRG参数

例子:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
echo  -e "\033[1;38;2;255;85;85mI ♡  You \e[0m"

附:经测试,在不是用SRG参数的情况下,可将;替换为:但在使用SRG参数时无效。 即:echo -e "\033[38:2:255:85:85mI ♡ You \e[0m"

256色模式

使用方式:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ESC[38;5;<n> … m Select foreground color
ESC[48;5;<n> … m Select background color

例子:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
echo  -e "\033[1;38;5;9mI ♡  You \e[0m"

SRG控制参数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
| 0  |   关闭所有格式,还原为初始状态 | 
| 1  |    粗体/高亮显示                       | 
| 2  |     模糊(※)                          | 
| 3  |     斜体(※)                          | 
| 4  |     下划线(单线)                    | 
| 5  |     闪烁(慢)                          | 
| 6  |     闪烁(快)(※)                 | 
| 7  |     交换背景色与前景色              | 
| 8  |     隐藏(伸手不见五指,啥也看不见)(※) | 

(1)其中含有(※)标注的编码表示不是所有的终端仿真器都支持,只有少数仿真器支持。 (2)多个SGR参数可以组合使用,例如:echo -e "\x1b[31;4mRed Underline Text\e[0m"输出红色下划线字体“Red Underline Text”。 (3)更多参数信息请参考“ANSI escape code”。

各语言下的控制台颜色输出

PHP

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// hello.php
<?php
echo "\033[1;38;5;9mI ♡  You \e[0m\n";

请注意此处使用的是"而不是单引号,因为颜色代码需要转义,正如echo-e一样。

C

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// hello.c
#include <stdio.h>
int main() {
    printf("\033[1;31mI ♡  You \e[0m\n");
}

编译:gcc hello.c 运行:./a.out

C++

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// hello.cpp
#include <iostream>
int main() {
    std::cout << "\033[1;31mI ♡  You \e[0m" << std::endl;
}

编译:g++ hello.cpp 运行:./a.out

Java

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// hello.java
class hello {
    public static void main(String[] args) {
       System.out.println("\033[1;31mI ♡  You \033[0m");
    }
}

注:Java中不能识别\e和\0x1b,仅可使用\033。 编译:javac hello.java 运行:java hello

Python

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# hello.py
print "\033[1;31mI ♡  You \x1b[0m"

注:python(v2.6.5)中不能识别\e,可以使用\033和\x1b。 运行:python hello.py

相关链接

PHP Color Class

wikipedia ANSI_escape_code

LINUX彩色的终端命令行 - 使用 ANSI 色彩代码

Linux终端和win32控制台文本颜色输出

教你写一个color日志库,不止有代码还有原理

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
1 条评论
热度
最新
好啊
好啊
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
如何在命令行中显示五彩斑斓的“黑”
1. 前言 大部分 coder 已经习惯了命令行枯燥的黑底白字,而且任何编程语言入门的第一行代码都是教我们如何在标准输出(大部分情况就是命令行终端或控制台)打印一行“非黑即白”的 hello worl
我是一条小青蛇
2019/10/23
1.9K0
如何在命令行中显示五彩斑斓的“黑”
php实现命令行里输出带颜色文字
今天执行composer的时候看到命令窗口出现的提示里面有的关键性部分带有颜色,于是很好奇研究了一下,在这里记录下来
码缘
2019/07/08
1.9K0
终极秘诀:打破无代码状态的小方法
• 大家有没有遇到过不想写代码或学习的时候呢?这种情况下,你们会选择放松还是停下来呢?我很好奇大家是怎么度过这段时间的。
沉浸式趣谈
2024/03/13
1590
终极秘诀:打破无代码状态的小方法
Python风骚的颜色输出与进度条打印
大家平时在Linux/Windows下安装软件时,经常会出现进度条和百分比的提示,Python是否能实现这样的打印?安装过程中,经常会看到很多带颜色的安装说明,我们在python输出时,确是千篇一律的黑底白色,是否想过打印的炫酷一些呢?
AI算法与图像处理
2019/11/27
2.8K0
Linux命令(27)——echo命令
使用-e选项时,若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:
恋喵大鲤鱼
2018/08/03
5.6K0
Linux命令(27)——echo命令
我掌握了少数人才知道持续集成系统的日志密码
前段时间在使用 Travis CI 的时候发现它的部署日志包含了很多带色彩的日志。
秋风的笔记
2021/10/26
6570
一个 print 函数,挺会玩啊?
这是「进击的Coder」的第 700 篇技术分享 作者:HOLL4ND 来源:Python 编程时光 “ 阅读本文大概需要 7 分钟。 ” 在终端中,输出的字体总是单一颜色的,黑底白字。但是在一些场景并不能很好的满足输出的需求,比如在大量而快速输出中,输出一些提示性或者警告性的信息,普通的黑底白字输出可能或起不到作用。 本文将介绍如何输出颜色字体到终端界面中。 # 1. ANSI 转义序列 其实终端不仅能够显示程序的输出。它可以显示移动光标、为文本着色、清除整个屏幕,并且不仅仅是静态输出。比如颜色字体或
崔庆才
2022/07/26
4870
一个 print 函数,挺会玩啊?
Python控制台输出的华丽变身:色彩与风格的深度探索
本文深入探讨了Python标准输出中字体颜色的设置方法,特别是通过ANSI转义序列实现的文本样式控制。文章详细解析了ANSI转义序列的组成、各个颜色代码的含义,以及如何在Python中使用这些代码来改变终端输出的字体颜色、背景色、高光、加粗等样式。通过丰富的案例代码,本文为Python开发者提供了一套完整的终端字体颜色设置指南。
小白的大数据之旅
2024/11/20
1850
Python控制台输出的华丽变身:色彩与风格的深度探索
C语言输出有颜色的字体
由上可知,在输出时候加上 “\033[ ; m …… \033[0m ” 即可使得输出的字体和背景是有颜色的。下面是颜色的定义:
全栈程序员站长
2022/09/15
3.8K0
C语言输出有颜色的字体
Print输出颜色字体方法
书写格式: 开头部分:\033[显示方式;前景色;背景色m + 结尾部分:\033[0m
py3study
2020/01/19
2.2K0
Print输出颜色字体方法
Linux基础 | echo 输出带颜色的字符
字体颜色echo -e "\033[30m 黑色字 \033[0m"echo -e "\033[31m 红色字 \033[0m"echo -e "\033[32m 绿色字 \033[0m"echo -e "\033[33m 黄色字 \033[0m"echo -e "\033[34m 蓝色字 \033[0m"echo -e "\033[35m 紫色字 \033[0m"echo -e "\033[36m 天蓝字 \033[0m"echo -e "\033[37m 白色字 \033[0m"字体背景颜色echo -
凡人学运维
2022/06/10
3.6K0
C# 13 中的 Esc Escape Sequence
C# 13 引入了一个新的转义字符 \e,代替 \u001b 来简化 Esc/Escape 的转义,我们可以使用它来简化 Console 里的一些输出格式控制
JusterZhu
2025/01/23
1740
C# 13 中的 Esc Escape Sequence
彩色的Hello World到彩色的Donuts甜甜圈-蓝桥ROS云课-C++案例
在C++语言中,可以使用ANSI转义码来输出彩色字符串。下面是一个输出彩色Hello world字符串的示例代码:
zhangrelay
2023/03/31
5890
彩色的Hello World到彩色的Donuts甜甜圈-蓝桥ROS云课-C++案例
Python colorama | 详解终端漂亮的彩色打印怎么实现的
构建命令行程序很酷:命令行可以按照我们的设定完成相应的工作,相比 GUI 界面程序,无需花费大量时间设计 GUI 界面。但要使命令行程序更吸引人,仅使用普通的打印功能是无法实现的。
叶庭云
2022/05/09
4.4K0
Python colorama | 详解终端漂亮的彩色打印怎么实现的
shell脚本输出带颜色字体
输出特效格式控制: \033[0m 关闭所有属性 \033[1m 设置高亮度 \03[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 光标左
yaohong
2019/09/11
2.8K0
ANSI控制码
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
sofu456
2019/10/22
1.3K0
ANSI控制码
控制台输出带颜色的文字
 所以,显示方式,字体颜色和背景颜色之间可以根据自己的需求进行互相搭配,但需要注意的是一头一尾的m不要忘了,一般情况下最后一个m前面的数字通常设置为0
py3study
2020/01/16
1.8K0
python打印字体颜色
显示方式           意义 ------------------------- 0                终端默认设置 1                高亮显示 4                使用下划线 5                闪烁 7                反白显示 8                不可见
py3study
2020/01/10
1.7K0
python 中输出字符的颜色控制属性
在开发项目过程中,为了方便调试代码,经常会向stdout中输出一些日志,默认的这些日志就直接显示在了终端中。而一般的应用服务器,第三方库,甚至服务器的一些通告也会在终端中显示,这样就搅乱了我们想要的信息。 书写格式,和相关说明如下: 1 格式:\033[显示方式;前景色;背景色m 2 3 说明: 4 前景色 背景色 颜色 5 --------------------------------------- 6 30 40
学到老
2018/03/19
1.5K0
python 中输出字符的颜色控制属性
Golang Print输出颜色
Golang 中使用 Print 方法输出带颜色的内容: // 标记[配置;背景色;前景色m文本内容 标记[0m fmt.Printf("%c[%d;%d;%dm%s%c[0m", 0x1B, 0, 40, 31, "输出的内容", 0x1B) 示例: 其中: 0x1B: 标记 0: 终端配置 40: 背景色 黑色 31: 前景色 红色 m: 表示结束 颜色代码: // 前景 背景 颜色 // --------------------------------------- // 30 40 黑色 /
Petrochor
2023/03/12
1K0
Golang Print输出颜色
相关推荐
如何在命令行中显示五彩斑斓的“黑”
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验