linux终端用什么颜色好,linux 终端输出颜色

在Linux终端下调试程序时,有时需要输出大量信息。若能控制字体的颜色和显示方式,可使输出信息对比鲜明,便于调试时观察数据。

终端的字符颜色由转义序列(Escape Sequence)控制,是文本模式下的系统显示功能,与具体语言无关。

转义序列以控制字符'ESC'开头。该字符的ASCII码十进制表示为27,十六进制表示为0x1B,八进制表示为033。多数转义序列超过两个字符,故通常以'ESC'和左括号'['开头。该起始序列称为控制序列引导符(CSI,Control Sequence Intro),通常由'\033['或'\e['代替。

通过转义序列设置终端显示属性时,可采用以下格式:

\033[ Param {;Param;...}m 或 \e[ Param {;Param;...}m

其中,'\033['或'\e['引导转义序列,'m'表示设置属性并结束转义序列。Param为属性值,{...}表示可选(多个参数之间用分号隔开,与顺序无关)。

注意,转义序列可被控制字符'CAN'(Cancel )和'SUB'(Substitute)中断。

转义序列相关的常用参数如下(通过man console_codes命令可查看更多的参数描述):

显示:0(默认)、1(粗体/高亮)、22(非粗体)、4(单条下划线)、24(无下划线)、5(闪烁)、25(无闪烁)、7(反显、翻转前景色和背景色)、27(无反显)

颜色:0(黑)、1(红)、2(绿)、 3(黄)、4(蓝)、5(洋红)、6(青)、7(白)

前景色为30+颜色值,如31表示前景色为红色;背景色为40+颜色值,如41表示背景色为红色。

调色效果如下图所示:

400d9ed299446259fbcf5da38c0fb017.png

因此,通过转义序列设置终端显示属性时,常见格式为:

\033[显示方式;前景色;背景色m输出字符串\033[0m 或 \e[显示方式;前景色;背景色m输出字符串\033[0m

此外,还有一些ANSI控制码,如:nA (光标上移n行 )、nB(光标下移n行 )、nC(光标右移n行 )、nD (光标左移n行 )、2J(清屏)、K(清除从光标到行尾的内容)、s(保存光标位置)、u(恢复光标位置)、?25l(隐藏光标)、?25l(显示光标)。     其中 ,'\033[0m'用于恢复默认的终端输出属性,否则会影响后续的输出。

基于常用参数,可定义如下单一控制宏,用于printf系列语句:

67d0865f17d9be527254bf8a8ff6c5b4.gif

1 #define NONE "\e[0m"

2 #define BLACK "\e[0;30m"

3 #define L_BLACK "\e[1;30m"

4 #define RED "\e[0;31m"

5 #define L_RED "\e[1;31m"

6 #define GREEN "\e[0;32m"

7 #define L_GREEN "\e[1;32m"

8 #define BROWN "\e[0;33m"

9 #define YELLOW "\e[1;33m"

10 #define BLUE "\e[0;34m"

11 #define L_BLUE "\e[1;34m"

12 #define PURPLE "\e[0;35m"

13 #define L_PURPLE "\e[1;35m"

14 #define CYAN "\e[0;36m"

15 #define L_CYAN "\e[1;36m"

16 #define GRAY "\e[0;37m"

17 #define WHITE "\e[1;37m"

18

19 #define BOLD "\e[1m"

20 #define UNDERLINE "\e[4m"

21 #define BLINK "\e[5m"

22 #define REVERSE "\e[7m"

23 #define HIDE "\e[8m"

24 #define CLEAR "\e[2J"

25 #define CLRLINE              "\r\e[K" //or "\e[1K\r"

67d0865f17d9be527254bf8a8ff6c5b4.gif

编写测试代码验证转义序列控制的效果:

67d0865f17d9be527254bf8a8ff6c5b4.gif

1 int main(void)

2 {

3 printf("This is a character control test!\n" );

4 sleep(3);

5 printf("[%2u]" CLEAR "CLEAR\n" NONE, __LINE__);

6

7 printf("[%2u]" BLACK "BLACK " L_BLACK "L_BLACK\n" NONE, __LINE__);

8 printf("[%2u]" RED "RED " L_RED "L_RED\n" NONE, __LINE__);

9 printf("[%2u]" GREEN "GREEN " L_GREEN "L_GREEN\n" NONE, __LINE__);

10 printf("[%2u]" BROWN "BROWN " YELLOW "YELLOW\n" NONE, __LINE__);

11 printf("[%2u]" BLUE "BLUE " L_BLUE "L_BLUE\n" NONE, __LINE__);

12 printf("[%2u]" PURPLE "PURPLE " L_PURPLE "L_PURPLE\n" NONE, __LINE__);

13 printf("[%2u]" CYAN "CYAN " L_CYAN "L_CYAN\n" NONE, __LINE__);

14 printf("[%2u]" GRAY "GRAY " WHITE "WHITE\n" NONE, __LINE__);

15

16 printf("[%2u]\e[1;31;40m Red \e[0m\n", __LINE__);

17

18 printf("[%2u]" BOLD "BOLD\n" NONE, __LINE__);

19 printf("[%2u]" UNDERLINE "UNDERLINE\n" NONE, __LINE__);

20 printf("[%2u]" BLINK "BLINK\n" NONE, __LINE__);

21 printf("[%2u]" REVERSE "REVERSE\n" NONE, __LINE__);

22 printf("[%2u]" HIDE "HIDE\n" NONE, __LINE__);

23

24 printf("Cursor test begins!\n" );

25 printf("=======!\n" );

26 sleep(10);

27 printf("[%2u]" "\e[2ACursor up 2 lines\n" NONE, __LINE__);

28 sleep(10);

29 printf("[%2u]" "\e[2BCursor down 2 lines\n" NONE, __LINE__);

30 sleep(5);

31 printf("[%2u]" "\e[?25lCursor hide\n" NONE, __LINE__);

32 sleep(5);

33 printf("[%2u]" "\e[?25hCursor display\n" NONE, __LINE__);

34 sleep(5);

35

36 printf("Test ends!\n" );

37 sleep(3);

38 printf("[%2u]" "\e[2ACursor up 2 lines\n" NONE, __LINE__);

39 sleep(5);

40 printf("[%2u]" "\e[KClear from cursor downward\n" NONE, __LINE__);

41

42 return 0 ;

43 }

67d0865f17d9be527254bf8a8ff6c5b4.gif

执行结果截图如下:

01bf298d6ec654375338dd73dc24b470.png

花里胡哨,如何在Linux终端输出带有颜色的字体,将带颜色的字体赋值给变量

背景 ​ 在日常操作Linux的情况下,总会遇到一些需求,比如说,把输出的内容用不同颜色标注出来,以达到醒目.提示的目的,那么如何在Linux终端输出带有颜色的字体呢? Linux终端输出字符颜色 ​ ...

php 扫描url死链接 \033[31m ANSI Linux终端输出带颜色

* 从Packagist上搜索需要的包 https://packagist.org/ * 通过composer下载依赖包 composer require guzzlehttp/guzzlecompo ...

修改Linux终端提示符颜色

修改Linux终端提示符颜色 作者:Eric 微信:loveoracle11g [root@linux-node2 ~]# tail -1 .bashrc PS1='[\[\033[1;31m\]\u ...

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

转载自:http://www.cnblogs.com/clover-toeic/p/4031618.html 在Linux终端下调试程序时,有时需要输出大量信息.若能控制字体的颜色和显示方式,可使输出 ...

Linux 终端下颜色的输出

在命令行下也能产生五颜六色的字体和图案,只需要加上一些颜色代码,例如 echo -e "\033[41;36m 红底绿字\033[0m" 其中41的位置代表底色, 36的位置是代表 ...

SecureCRT设置linux终端显示颜色

在linux系统上,我们使用终端时,对于文件或目录会显示不同的颜色.而SecureCRT默认显示的颜色是单一的,我们该如何让其像linux一样显示个性化颜色呢. 使用SecureCRT登录 linux ...

Linux终端提示符颜色设置

将以下语句添加到用户目录下的 .bashrc 文件中,然后执行 source .bashrc 使其立即生效. PS1='${debian_chroot:+($debian_chroot)}\[\033 ...

Linux Shell输出颜色字符学习笔记(附Python脚本实现自动化定制生成)

齿轮发出咔嚓一声,向前进了一格.而一旦向前迈进,齿轮就不能倒退了.这就是世界的规则. 0x01背景 造了个轮子:御剑师傅的ipintervalmerge的Python版本.觉得打印的提示信息如果是普通 ...

设置Linux终端字体颜色

系统启动后,环境变量加载的顺序为:/etc/profile → /etc/profile.d/*.sh → ~/.bash_profile → ~/.bashrc → /etc/bashrc 想要修改 ...

随机推荐

[deviceone开发]-do_Http组件示例

一.简介 详细展示do_Http组件的使用,包括get,post,upload,form,download的http请求.另外还附加了一个Java实现的后台程序作为参考.初学者强烈推荐. 二.效果图 ...

easyui 汇总

1. easyui datagrid 表格组件列属性 formatter columns:{ { field:' product', title:'商品', align:'center', width ...

Jquery实现MD5加密

$.md5("你想要加密的字符串"); md5插件下载地址:http://xiazai.jb51.net/201003/yuanma/jquery_md5.rar

PHP系列之一traits的应用

Traits 在PHP中实现在方法的重复使用:Traits与Class相似,但是它能够在Class中使用自己的方法而不用继承: Traits在Class中优先于原Class中的方法,引用PHP Doc ...

Poj(2367),拓扑排序

题目链接:http://poj.org/problem?id=2367 题意: 知道一个数n, 然后n行,编号1到n, 每行输入几个数,该行的编号排在这几个数前面,输出一种符合要求的编号名次排序. 拓 ...

myeclipse解决JSP文件script调整背景颜色

1进口MyEclipse主题后,打开jsp要么html文件,jsvascript部分原因遭遇了一层白色的.闪避这个时候.症状,如下面: watermark/2/text/aHR0cDovL2Jsb2c ...

win32 安装 xcache扩展

今天整了一上午,才整明白. 我的系统是是 win7 32位 ,用的环境是 Wamp,php版本是5.3.5,后来在http://xcache.lighttpd.net/pub/Releases/3.0 ...

centos7中输入ifconfig出现ens33,没有eth0

vmware安装的centos7中没有出现eth0网卡,也没有ip,不能上网,输入ifconfig后如下图 解决办法 1.编辑网卡的配置文件 vi /etc/sysconfig/network-scr ...

求树的重心 poj 1655

题目链接:https://vjudge.net/problem/POJ-1655 这个就是找树的重心,树的重心就是树里面找一个点,使得以这个点为树根的所有的子树中最大的子树节点数最小.题目应该讲的比较 ...

android:View的setTag和getTag

Adapter 有个getView方法,可以使用setTag把查找的view缓存起来方便多次重用 public View getView(int position, View convertView, ...

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值