控制臺輸出顏色控制

控制臺輸出顏色控制

轉自:https://cloud.tencent.com/developer/article/1142372

前端時間,寫了一篇 PHP 在 Console 模式下的進度顯示 ,正好最近的一個數據合并項目需要用到控制臺顏色輸出,所以就把相關的信息整理下,寫到OSC的博客中。

請注意,此篇文章中的顏色僅適用于仿真器(putty、secureCRT、XShell),以及unix終端,不適用于CMD(但依然可用于WIN下的仿真器)

簡介

在這里插入圖片描述

在終端或仿真器中輸入下面的代碼,并回車,預覽最直接的效果。

echo  -e "\033[1;31mI ?  You \e[0m"

請注意,引號內的\e等同于\033\033\x1b\e效果是一樣,對應鍵盤左上角Esc鍵對應的ASCII碼(8進制);

通用的控制文本顏色的轉義序列格式如下:

CSI n1 [;n2 [;]] m

其中CSI全稱為“控制序列引導器”(Control Sequence Introducer/Initiator),也就是上述示例中的"\033["(其中\033是你鍵盤左上角Esc鍵對應的ascii碼(八進制));

n1、n2等表示SGR參數(下面會列出一些常用的SGR參數),用于控制顏色、粗體、斜體、閃爍等文本輸出格式;m表示轉義序列結束。

顏色參數

常用顏色

格式:\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顏色

在這里插入圖片描述

使用方式:

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參數

例子:

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色模式

在這里插入圖片描述

使用方式:

ESC[38;5;<n> … m Select foreground color
ESC[48;5;<n> … m Select background color

例子:

echo  -e "\033[1;38;5;9mI ?  You \e[0m"

SRG控制參數

參數含義
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

// hello.php
<?php
echo "\033[1;38;5;9mI ?  You \e[0m\n";

請注意此處使用的是"而不是單引號,因為顏色代碼需要轉義,正如echo-e一樣。

C

// hello.c
#include <stdio.h>
int main() {printf("\033[1;31mI ?  You \e[0m\n");
}

編譯:gcc hello.c

運行:./a.out

C++

// hello.cpp
#include <iostream>
int main() {std::cout << "\033[1;31mI ?  You \e[0m" << std::endl;
}

編譯:g++ hello.cpp

運行:./a.out

Java

// 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

# 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日志庫,不止有代碼還有原理

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/532452.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/532452.shtml
英文地址,請注明出處:http://en.pswp.cn/news/532452.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

idea連接跳板機_跳板機服務(jumpserver)

一、跳板機服務作用介紹1、有效管理用戶權限信息2、有效記錄用戶登錄情況3、有效記錄用戶操作行為二、跳板機服務架構原理三、跳板機服務安裝過程第一步&#xff1a;安裝跳板機依賴軟件yum -y install git python-pip mariadb-devel gcc automake autoconf python-devel readl…

【詳細圖解】再次理解im2col

【詳細圖解】再次理解im2col 轉自&#xff1a;https://mp.weixin.qq.com/s/GPDYKQlIOq6Su0Ta9ipzig 一句話&#xff1a;im2col是將一個[C,H,W]矩陣變成一個[H,W]矩陣的一個方法&#xff0c;其原理是利用了行列式進行等價轉換。 為什么要做im2col? 減少調用gemm的次數。 重要…

反思 大班 快樂的機器人_幼兒園大班教案《快樂的桌椅》含反思

大班教案《快樂的桌椅》含反思適用于大班的體育主題教學活動當中&#xff0c;讓幼兒提高協調性和靈敏性&#xff0c;創新桌椅的玩法&#xff0c;正確爬的方法&#xff0c;學會匍匐前進&#xff0c;快來看看幼兒園大班《快樂的桌椅》含反思教案吧。幼兒園大班教案《快樂的桌椅》…

DCN可形變卷積實現1:Python實現

DCN可形變卷積實現1&#xff1a;Python實現 我們會先用純 Python 實現一個 Pytorch 版本的 DCN &#xff0c;然后實現其 C/CUDA 版本。 本文主要關注 DCN 可形變卷積的代碼實現&#xff0c;不會過多的介紹其思想&#xff0c;如有興趣&#xff0c;請參考論文原文&#xff1a; …

藍牙耳機聲音一頓一頓的_線控耳機黨陣地轉移成功,OPPO這款TWS耳機體驗滿分...

“你看到我手機里3.5mm的耳機孔了嗎”&#xff0c;這可能是許多線控耳機黨最想說的話了。確實&#xff0c;如今手機在做“減法”&#xff0c;而廠商們首先就拿3.5mm耳機孔“開刀”&#xff0c;我們也喪失了半夜邊充電邊戴耳機打游戲的樂趣。竟然如此&#xff0c;那如何在耳機、…

AI移動端優化之Im2Col+Pack+Sgemm

AI移動端優化之Im2ColPackSgemm 轉自&#xff1a;https://blog.csdn.net/just_sort/article/details/108412760 這篇文章是基于NCNN的Sgemm卷積為大家介紹Im2ColPackSgemm的原理以及算法實現&#xff0c;希望對算法優化感興趣或者做深度學習模型部署的讀者帶來幫助。 1. 前言 …

elementui的upload組件怎么獲取上傳的文本流、_抖音feed流直播間引流你還不會玩?實操講解...

本文由艾奇在線明星優化師寫作計劃出品在這個全民驚恐多災多難且帶有魔幻的2020&#xff0c;一場突如其來的疫情改變了人們很多消費習慣&#xff0c;同時加速了直播電商的發展&#xff0c;現在直播已經成為商家必爭的營銷之地&#xff0c;直播雖然很火&#xff0c;但如果沒有流…

FFmpeg 視頻處理入門教程

FFmpeg 視頻處理入門教程 轉自&#xff1a;https://www.ruanyifeng.com/blog/2020/01/ffmpeg.html 作者&#xff1a; 阮一峰 日期&#xff1a; 2020年1月14日 FFmpeg 是視頻處理最常用的開源軟件。 它功能強大&#xff0c;用途廣泛&#xff0c;大量用于視頻網站和商業軟件&…

checkbox wpf 改變框的大小_【論文閱讀】傾斜目標范圍框(標注)的終極方案

前言最常用的斜框標注方式是在正框的基礎上加一個旋轉角度θ&#xff0c;其代數表示為(x_c,y_c,w,h,θ)&#xff0c;其中(x_c,y_c )表示范圍框中心點坐標&#xff0c;(w,h)表示范圍框的寬和高[1,2,7]。對于該標注方式&#xff0c;如果將w和h的值互換&#xff0c;再將θ加上或者…

徹底理解BP之手寫BP圖像分類你也行

徹底理解BP之手寫BP圖像分類你也行 轉自&#xff1a;https://zhuanlan.zhihu.com/p/397963213 第一節&#xff1a;用矩陣的視角&#xff0c;看懂BP的網絡圖 1.1、什么是BP反向傳播算法 BP(Back Propagation)誤差反向傳播算法&#xff0c;使用反向傳播算法的多層感知器又稱為B…

h5頁面禁止復制_H5移動端頁面禁止復制技巧

前言&#xff1a;業務需要&#xff0c;需要對整個頁面禁止彈出復制菜單。在禁止的頁面中加入以下css樣式定義* {-webkit-touch-callout:none;/*系統默認菜單被禁用*/-webkit-user-select:none;/*webkit瀏覽器*/-khtml-user-select:none;/*早起瀏覽器*/-moz-user-select:none;/*…

梯度下降法和牛頓法計算開根號

梯度下降法和牛頓法計算開根號 本文將介紹如何不調包&#xff0c;只能使用加減乘除法實現對根號x的求解。主要介紹梯度下降和牛頓法者兩種方法&#xff0c;并給出 C 實現。 梯度下降法 思路/步驟 轉化問題&#xff0c;將 x\sqrt{x}x? 的求解轉化為最小化目標函數&#xff…

匯博工業機器人碼垛機怎么寫_全自動碼垛機器人在企業生產中的地位越來越重要...

全自動碼垛機器人在企業生產中的地位越來越重要在智能化的各種全自動生產線中&#xff0c;全自動碼垛機器人成了全自動生產線的重要機械設備&#xff0c;在各種生產中發揮著不可忽視的作用。全自動碼垛機器人主要用于生產線上的包裝過程中&#xff0c;不僅能夠提高企業的生產率…

kmeans手寫實現與sklearn接口

kmeans手寫實現與sklearn接口 kmeans簡介 K 均值聚類是最基礎的一種聚類方法。它是一種迭代求解的聚類分析算法。 kmeans的迭代步驟 給各個簇中心 μ1,…,μc\mu_1,\dots,\mu_cμ1?,…,μc? 以適當的初值&#xff1b; 更新樣本 x1,…,xnx_1,\dots,x_nx1?,…,xn? 對應的…

小說中場景的功能_《流浪地球》:從小說到電影

2019年春節賀歲檔冒出一匹黑馬&#xff1a;國產科幻片《流浪地球》大年初一上映后口碑、票房雙豐收&#xff1a;截至9日下午&#xff0c;票房已破15億&#xff0c;并獲得9.2的高評分。著名導演詹姆斯卡梅隆通過社交媒體對我國春節期間上映的科幻影片《流浪地球》發出的祝愿&…

線性回歸與邏輯回歸及其實現

線性回歸與邏輯回歸及其實現 回歸與分類 預測值定性分析&#xff0c;即離散變量預測時&#xff0c;稱之為分類&#xff1b;預測值定量分析&#xff0c;即連續變量預測時&#xff0c;稱之為回歸。 如預測一張圖片是貓還是狗&#xff0c;是分類問題&#xff1b;預測明年的房價…

hbase 頁面訪問_HBase

HBase 特點 海量存儲 Hbase 適合存儲 PB 級別的海量數據&#xff0c;在 PB 級別的數據以及采用廉價 PC 存儲的情況下&#xff0c;能在幾十到百毫秒內返回數據。這與 Hbase 的極易擴展性息息相關。正式因為 Hbase 良好的擴展性&#xff0c;才為海量數據的存儲提供了便利。 2&…

深入理解L1、L2正則化

深入理解L1、L2正則化 轉自&#xff1a;【面試看這篇就夠了】L1、L2正則化理解 一、概述 正則化&#xff08;Regularization&#xff09;是機器學習中一種常用的技術&#xff0c;其主要目的是控制模型復雜度&#xff0c;減小過擬合。正則化技術已經成為模型訓練中的常用技術&a…

rk3128屏幕占空比參數設置_瑞芯微RK3128芯片怎么樣 性能全面解讀

最近&#xff0c;筆者聽說一款搭載瑞芯微RK3128芯片方案的盒子問市了&#xff0c;打聽了一下才知道還真有其事&#xff0c;這款上市的RK3128盒子叫做開博爾M1&#xff0c;報價229元&#xff0c;這個價位在如今的四核網絡機頂盒市場可謂是不多見&#xff0c;但是這款芯片的性能怎…

機器學習中的概率模型

機器學習中的概率模型 轉自&#xff1a;https://zhuanlan.zhihu.com/p/164551678 機器學習中的概率模型 概率論&#xff0c;包括它的延伸-信息論&#xff0c;以及隨機過程&#xff0c;在機器學習中有重要的作用。它們被廣泛用于建立預測函數&#xff0c;目標函數&#xff0c;以…