文档章节

通过printf设置Linux终端输出的颜色和显示方式

andrew810810
 andrew810810
发布于 2016/12/09 16:38
字数 530
阅读 129
收藏 0
点赞 0
评论 0

参考:

http://www.cnblogs.com/clover-toeic/p/4031618.html

http://www.cnblogs.com/luoxu34/p/5239675.html

 

linux终端输出颜色和显示方式

终端的字符颜色是用转义序列控制的,是文本模式下的系统显示功能。

和具体的语言无关,所以C语言中的 printf/fprintf 函数也可以这样使用。

本文最重要的一句话,所有的问题都在这里,看明白了就知道怎么改变文本的显示方式了:

\033[显示方式;前景色;背景色m

把\033换成\e是一样的:

\e[显示方式;前景色;背景色m

解释:

颜色的转义序列是以 ESC 开头

显示方式:

0(默认值)、1(高亮)、22(非粗体)、4(下划线)、24(非下划线)、5(闪烁)、25(非闪烁)、7(反显)、27(非反显)

前景色:

30(黑色)、31(红色)、32(绿色)、 33(黄色)、34(蓝色)、35(洋红)、36(青色)、37(白色)

背景色:

40(黑色)、41(红色)、42(绿色)、 43(黄色)、44(蓝色)、45(洋红)、46(青色)、47(白色)

\033[0m表示默认,可以关闭前边设置的任何效果

\033[ 的其他格式

 \033[nA   光标上移n行 
\03[nB    光标下移n行 
\033[nC   光标右移n行 
\033[nD   光标左移n行 
\033[y;xH 设置光标位置 
\033[2J   清屏 
\033[K    清除从光标到行尾的内容 
\033[s    保存光标位置 
\033[u    恢复光标位置 
\033[?25l 隐藏光标 
\33[?25h  显示光标

 

为了人性化地在 printf 函数中进行着色输出,可以定义成一系列的宏。

#define NONE                 "\e[0m"
#define BLACK                "\e[0;30m"
#define L_BLACK              "\e[1;30m"
#define RED                  "\e[0;31m"
#define L_RED                "\e[1;31m"
#define GREEN                "\e[0;32m"
#define L_GREEN              "\e[1;32m"
#define BROWN                "\e[0;33m"
#define YELLOW               "\e[1;33m"
#define BLUE                 "\e[0;34m"
#define L_BLUE               "\e[1;34m"
#define PURPLE               "\e[0;35m"
#define L_PURPLE             "\e[1;35m"
#define CYAN                 "\e[0;36m"
#define L_CYAN               "\e[1;36m"
#define GRAY                 "\e[0;37m"
#define WHITE                "\e[1;37m"

#define BOLD                 "\e[1m"
#define UNDERLINE            "\e[4m"
#define BLINK                "\e[5m"
#define REVERSE              "\e[7m"
#define HIDE                 "\e[8m"
#define CLEAR                "\e[2J"
#define CLRLINE              "\r\e[K" //or "\e[1K\r"

 

© 著作权归作者所有

共有 人打赏支持
andrew810810
粉丝 3
博文 127
码字总数 117648
作品 0
朝阳
修改linux环境变量使终端命令行颜色和样式改变

修改linux终端命令行颜色   1.PS1   要修改linux终端命令行颜色,我们需要用到PS1,PS1是Linux终端用户的一个环境变量,用来说明命令行提示符的设置。在终端输入命令:#set,即可在输出中...

Forande ⋅ 06/11 ⋅ 0

如何在Linux终端里用Shell和C输出带颜色的文字(转)

原文:http://blog.csdn.net/acmee/article/details/6613060 我们知道,使用ls命令列出文件列表时,不同的文件类型会用不同的颜色显示。那么如何实现这样带颜色的文本输出呢?答案并不复杂,...

acmfly ⋅ 2013/08/03 ⋅ 0

使用 ncurses 进行颜色编程

Jim 给他的终端冒险游戏添加了颜色,演示了如何用 curses 操纵颜色。 在我的使用 ncurses 库进行编程的系列文章的第一篇和第二篇中,我已经介绍了一些 curses 函数来在屏幕上作画、从屏幕上查...

作者: Jim Hall ⋅ 04/15 ⋅ 0

Linux性能监控工具收集(转)

一、基于命令行的性能监控工具 1.dstat - 多类型资源统计工具 该命令整合了vmstat,iostat和ifstat三种命令。同时增加了新的特性和功能可以让你能及时看到各种的资源使用情况,从而能够使你对...

easonjim ⋅ 2017/12/24 ⋅ 0

python带颜色输出文本

我们可以通过对有用的信息设置不同颜色来达到醒目的效果,因为我平时都是在linux下开发,而linux终端中的颜色是用转义序列控制的,转义序列是以ESC开头,可以用033完成相同的工作(ESC的ASCII...

早安_南京 ⋅ 2015/09/20 ⋅ 0

linux一搏(打印)---高手勿喷

linux中打印有echo和printf 一、echo echo是用于终端打印的基本命令,默认情况下,echo会在每次调用后添加一个换行符。如果要忽略换行,可以echo后面,字符窜之前加上"-n". echo后面打印的内...

益达先生 ⋅ 2013/02/05 ⋅ 0

linux之printk和printf的区别

大部分常用的C库函数在Linux内核中都已经得到了实现。在所有没有实现的函数中,最著名的就数printf()函数了。内核代码虽然无法调用 printf()函数,但它可以调用printk()函数。printk()函数负...

shenhuan1104 ⋅ 2017/09/09 ⋅ 0

printf+awk完美结合

一、Printf简介 Printf的功能是格式和打印数据(format and print data),即把标准输出的内容,通过printf命令转换成另类的格式输出。 二、echo与printf 异曲同工之妙 echo命令可以实现的功...

晨风微凉 ⋅ 2013/10/15 ⋅ 0

linux-给man_pages设置颜色

  给帮助手册设置颜色      打开/etc/bashrc(需要root权限)或者~/.bashrc文件加入如下内容:   #Setcolorsformanpages   man(){   env   LESSTERMCAPmb=$(printf"e[1;31m") ...

linux运维菜 ⋅ 05/28 ⋅ 0

printf("\033[1;33m Hello World. \033[0m \n");有趣的串口之超级终端的玩法

转载自:http://blog.csdn.net/hanghang121/article/details/40825527 颜色特效控制: printf("033[1;33m Hello World. 033[0m n"); 颜色如下: none = "033[0m" black = "033[0;30m" dark_gr......

lv18092081172 ⋅ 2017/10/09 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

从方法论到零售客户实践 解码阿里巴巴数据中台——2018上海云栖大会

摘要: 一、数据中台之道 6月8日,上海云栖大会进入了第二天的议程,数据中台专场论坛座无虚席,数据中台总架构师邓中华女士向在场的观众介绍了数据中台的衍生发展之道。 基于OneID、OneData...

阿里云云栖社区 ⋅ 17分钟前 ⋅ 0

Ubuntu部署django问题汇总

使用Anaconda3的Python3.6的pip安装UWSGI报错 原因是gcc版本不兼容,安装4.7并修改gccsudo apt-get install gcc-4.7sudo mv /usr/bin/gcc /usr/bin/gcc.baksudo ln -s /usr/bin/gcc-4.......

wuyaSama ⋅ 20分钟前 ⋅ 0

从方法论到零售客户实践 解码阿里巴巴数据中台——2018上海云栖大会

摘要: 一、数据中台之道 6月8日,上海云栖大会进入了第二天的议程,数据中台专场论坛座无虚席,数据中台总架构师邓中华女士向在场的观众介绍了数据中台的衍生发展之道。 基于OneID、OneData...

猫耳m ⋅ 21分钟前 ⋅ 0

Docker减肥小记

如果经常使用 docker,你会发现 docker 占用的资源膨胀很快,其中最明显也最容易被察 如何快速的清理 docker 占用的系统资源,具体点说就是删除那些无用的镜像、容器、网络和数据卷… 1、查看...

寰宇01 ⋅ 31分钟前 ⋅ 0

微信小程序中如何使用WebSocket实现长连接(含完整源码)

本文由腾讯云技术团队原创,感谢作者的分享。 1、前言 微信小程序提供了一套在微信上运行小程序的解决方案,有比较完整的框架、组件以及 API,在这个平台上面的想象空间很大。腾讯云研究了一...

JackJiang- ⋅ 39分钟前 ⋅ 0

定制库到Maven本地资源库

1.如果只有定制库的JAR文件 下载链接如下:pdf.jar 2.使用命令转换成Maven本地资源 mvn install:install-file -Dfile=/Users/manager/Downloads/clj-pdf-2.2.33.jar -DgroupId=clj-pdf -Dar......

年少爱追梦 ⋅ 43分钟前 ⋅ 0

高仿springmvc之xuchen-mvc

package org.mvc.framework.servlet; import java.io.BufferedReader; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.......

徐志 ⋅ 45分钟前 ⋅ 0

关于自定义URLStreamHandler的一次踩坑

关于自定义URLStreamHandler的一次踩坑 20180625 lambo init 说明 一般自定义实现url的协议解析.方案为实现URLStreamHandler.实现其 openConnection 就可以了, 如果我们执行 new URL("xx://...

林小宝 ⋅ 46分钟前 ⋅ 0

【SM2证书】利用BC的X509v3CertificateBuilder组装X509国密证书

演示证书文件 链接: https://pan.baidu.com/s/1ijHNnMQJj7jzW-jXEVd6Gg 密码: vfva 所需jar包 <!-- https://mvnrepository.com/artifact/org.bouncycastle/bcpkix-jdk15on --> <dependenc......

小帅帅丶 ⋅ 47分钟前 ⋅ 0

用Calendar 实现 计算 一段时间的毫秒值

Calendar c=Calendar.getInstance();c.add(Calendar.MONTH, -1);int lastMonthMaxDay=c.getActualMaximum(Calendar.DAY_OF_MONTH);c.set(c.get(Calendar.YEAR), c.get(Calendar.MONTH)......

岸芷汀兰 ⋅ 51分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部