各平台各语言的终端颜色控制(可用于log)

1. 简介

在使用putty、secureCRT、XShell等终端仿真器连接linux系统时,vim等工具的输出都含有各种颜色,这些颜色的输出大大地增强了文本的可读性。

通常我们可以使用echo命令加-e选项输出各种颜色的文本,例如:echo -e "\033[31mRed Text\033[0m",可以输出红色的字体“Red Text”。其中:”\033[31m”和”\033[0m”是ANSI转义序列(ANSI escape code/sequence),它控制文本输出的格式、颜色等。

2. 转义序列及参数

键盘左上角Esc键对应的ascii码为27,写为八进制是 033, 十六进制是 x1b,所以上面的\033\x1b\e效果一样

参数的话分为0-8,30-37,40-47,不同参数之间用分号分开
35其实是 magenta, 36是cyan
写完参数用m 表示转义结束

这里写图片描述

3. 不同平台语言

  • python(linux和window都可以)
    a.python

    print("\033[1;31m hello \033[0m")

    python a.python

  • C或C++ (linux)

    
    #include <stdio.h>
    
    printf("\033[1;31m hello \033[0m")
    
    
    #include <iostream>
    
    std::cout<<"\033[1;31m"<<" hello "<<"\033[0m";
  • shell (linux)

    echo -e "\033[1;31m hello \033[0m"
  • windows命令提示符CMD
    命令提示符(CMD)下调整整屏颜色输出可使用color命令,格式为:color BF
    其中B和F表示颜色属性(B背景色,F前景色),属性值为一个十六进制数字(0-F)。各属性值与颜色对应的关系如下:
    这里写图片描述
    例如,要设置命令提示符窗口“背景为黑(0),前景为白(7)”可执行color 07

  • win32 console
    由于win32控制台不支持ANSI转义序列,因此要让win32控制台输出颜色文本相对复杂一些

#include<windows.h>
WORD f_color=FOREGROUND_RED;
HANDLE hdl = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(hdl, f_color | FOREGROUND_INTENSITY)
printf("hello");

这里写图片描述
更多请参考:Console Screen Buffers

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值