Programing

ANSI 색상 이스케이프 시퀀스 목록

crosscheck 2020. 5. 24. 12:57
반응형

ANSI 색상 이스케이프 시퀀스 목록


대부분의 터미널에서 \033ANSI 이스케이프 시퀀스를 사용하여 출력을 채색 할 수 있습니다 .

지원되는 모든 색상 및 옵션 목록 (밝고 깜박임)을 찾고 있습니다.

아마도 터미널을 지원하는 터미널 사이에 차이가있을 수 있기 때문에 xterm 호환 터미널에서 지원하는 시퀀스에 주로 관심이 있습니다.


찾고있는 ANSI 이스케이프 시퀀스는 그래픽 변환 선택 하위 집합입니다. 이 모든 형태는

\033[XXXm

여기서 XXX일련의 세미콜론으로 구분 된 매개 변수가 있습니다.

말하자면, C로 텍스트를 빨간색, 굵게, 밑줄로 표시하십시오 (아래에서 다른 많은 옵션에 대해 논의 할 것입니다).

printf("\033[31;1;4mHello\033[0m");

C ++에서는

std::cout<<"\033[31;1;4mHello\033[0m";

Python3에서는 다음을 사용합니다.

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

Bash에서는

echo -e "\033[31;1;4mHello\033[0m"

첫 번째 부분은 텍스트를 빨간색 ( 31), 굵게 ( 1), 밑줄 ( 4)로 만들고 마지막 부분은이 모든 부분 ( 0)을 지 웁니다 .

아래 표에 설명 된대로 굵게, 글꼴, 밑줄 및 & c와 같이 설정할 수있는 많은 텍스트 속성이 있습니다. ( StackOverflow로 답변에 적절한 테이블을 넣을 수 없다는 것은 어리석지 않습니까?)

폰트 효과

╔══════════╦════════════════════════════════╦═════════════════════════════════════════════════════════════════════════╗
║  Code    ║             Effect             ║                                   Note                                  ║
╠══════════╬════════════════════════════════╬═════════════════════════════════════════════════════════════════════════╣
║ 0        ║  Reset / Normal                ║  all attributes off                                                     ║
║ 1        ║  Bold or increased intensity   ║                                                                         ║
║ 2        ║  Faint (decreased intensity)   ║  Not widely supported.                                                  ║
║ 3        ║  Italic                        ║  Not widely supported. Sometimes treated as inverse.                    ║
║ 4        ║  Underline                     ║                                                                         ║
║ 5        ║  Slow Blink                    ║  less than 150 per minute                                               ║
║ 6        ║  Rapid Blink                   ║  MS-DOS ANSI.SYS; 150+ per minute; not widely supported                 ║
║ 7        ║  [[reverse video]]             ║  swap foreground and background colors                                  ║
║ 8        ║  Conceal                       ║  Not widely supported.                                                  ║
║ 9        ║  Crossed-out                   ║  Characters legible, but marked for deletion.  Not widely supported.    ║
║ 10       ║  Primary(default) font         ║                                                                         ║
║ 11–19    ║  Alternate font                ║  Select alternate font `n-10`                                           ║
║ 20       ║  Fraktur                       ║  hardly ever supported                                                  ║
║ 21       ║  Bold off or Double Underline  ║  Bold off not widely supported; double underline hardly ever supported. ║
║ 22       ║  Normal color or intensity     ║  Neither bold nor faint                                                 ║
║ 23       ║  Not italic, not Fraktur       ║                                                                         ║
║ 24       ║  Underline off                 ║  Not singly or doubly underlined                                        ║
║ 25       ║  Blink off                     ║                                                                         ║
║ 27       ║  Inverse off                   ║                                                                         ║
║ 28       ║  Reveal                        ║  conceal off                                                            ║
║ 29       ║  Not crossed out               ║                                                                         ║
║ 30–37    ║  Set foreground color          ║  See color table below                                                  ║
║ 38       ║  Set foreground color          ║  Next arguments are `5;n` or `2;r;g;b`, see below                       ║
║ 39       ║  Default foreground color      ║  implementation defined (according to standard)                         ║
║ 40–47    ║  Set background color          ║  See color table below                                                  ║
║ 48       ║  Set background color          ║  Next arguments are `5;n` or `2;r;g;b`, see below                       ║
║ 49       ║  Default background color      ║  implementation defined (according to standard)                         ║
║ 51       ║  Framed                        ║                                                                         ║
║ 52       ║  Encircled                     ║                                                                         ║
║ 53       ║  Overlined                     ║                                                                         ║
║ 54       ║  Not framed or encircled       ║                                                                         ║
║ 55       ║  Not overlined                 ║                                                                         ║
║ 60       ║  ideogram underline            ║  hardly ever supported                                                  ║
║ 61       ║  ideogram double underline     ║  hardly ever supported                                                  ║
║ 62       ║  ideogram overline             ║  hardly ever supported                                                  ║
║ 63       ║  ideogram double overline      ║  hardly ever supported                                                  ║
║ 64       ║  ideogram stress marking       ║  hardly ever supported                                                  ║
║ 65       ║  ideogram attributes off       ║  reset the effects of all of 60-64                                      ║
║ 90–97    ║  Set bright foreground color   ║  aixterm (not in standard)                                              ║
║ 100–107  ║  Set bright background color   ║  aixterm (not in standard)                                              ║
╚══════════╩════════════════════════════════╩═════════════════════════════════════════════════════════════════════════╝

2 비트 색상

당신은 이미 이것을 가지고 있습니다!

4 비트 색상

터미널 색상을 구현하는 표준은 제한된 (4 비트) 옵션으로 시작되었습니다. 아래 표에는 다양한 터미널 에뮬레이터에서 사용되는 배경 및 전경색의 RGB 값이 나와 있습니다.

다양한 터미널 에뮬레이터로 구현 된 ANSI 색상 표

위의 내용을 사용하면 다음을 사용하여 녹색 배경에 빨간색 텍스트를 만들 수 있습니다 (그러나 이유는 무엇입니까?)

\033[31;42m

11 가지 색상 (Interlude)

브렌트 베를린 (Brent Berlin)과 폴 케이 (Paul Kay)는 자신의 저서 "기본 색 용어 : 그들의 보편성과 진화"에서 11 가지 가능한 기본 색 범주 인 흰색, 검은 색, 빨간색, 녹색, 노란색, 청색, 갈색, 자주색, 분홍색, 주황색 및 회색.

베를린과 케이는 최대 11 가지 색 범주보다 적은 언어에서 색이 특정한 진화 패턴을 따른다는 것을 발견했습니다. 이 패턴은 다음과 같습니다.

  1. 모든 언어에는 검은 색 (차가운 색) 및 흰색 (밝은 색)에 대한 용어가 포함됩니다.
  2. 언어에 세 개의 용어가 포함 된 경우 빨간색 용어가 포함됩니다.
  3. 언어에 네 개의 용어가 포함 된 경우 녹색 또는 노란색 (둘다는 아님)에 대한 용어가 포함됩니다.
  4. 언어에 5 개의 용어가 포함 된 경우 녹색과 노란색에 대한 용어가 포함됩니다.
  5. 언어에 6 개의 용어가 포함 된 경우 파란색에 대한 용어가 포함됩니다.
  6. 언어에 7 개의 용어가 포함 된 경우 갈색에 대한 용어가 포함됩니다.
  7. 언어에 8 개 이상의 용어가 포함 된 경우 자주색, 분홍색, 주황색 또는 회색에 대한 용어가 포함됩니다.

이것이 바로 Beowulf 이야기가 검은 색, 흰색 및 빨간색 만 포함하는 이유 일 수 있습니다 . 성서에 파란색이없는 이유도 있습니다 . 호머의 오디세이 에는 거의 200 배의 검은 색과 약 100 배의 흰색이 있습니다. 빨간색은 15 번, 노란색과 녹색은 10 번만 나타납니다. ( 자세한 내용은 여기 )

언어의 차이도 흥미 롭습니다. 영어와 중국어에서 사용되는 고유 한 색상 단어가 풍부합니다. 그러나 이러한 언어를 더 깊이 파고 들면 각각이 고유 한 방식으로 색상을 사용한다는 것을 알 수 있습니다. ( 자세한 정보 )

중국어 대 영어 색상 이름.  "muyueh.com"에서 채택한 이미지

일반적으로 말해서, 인간 언어로 된 색상의 이름, 사용 및 그룹화는 매혹적입니다. 이제 쇼로 돌아갑니다.

8 비트 (256) 색상

기술이 발전했으며 아래에 표시된 것처럼 256 개의 사전 선택된 색상 표가 제공되었습니다.

ANSI 이스케이프 시퀀스를위한 256 비트 컬러 모드

위의 것을 사용하면 다음과 같이 분홍색 텍스트를 만들 수 있습니다.

\033[38;5;206m     #That is, \033[38;5;<FG COLOR>m

그리고 이른 아침 파란색 배경을 사용하여

\033[48;5;57m      #That is, \033[48;5;<BG COLOR>m

물론 다음을 결합 할 수 있습니다.

\033[38;5;206;48;5;57m

8 비트 색상은 다음과 같이 배열됩니다.

0x00-0x07:  standard colors (same as the 4-bit colours)
0x08-0x0F:  high intensity colors
0x10-0xE7:  6 × 6 × 6 cube (216 colors): 16 + 36 × r + 6 × g + b (0 ≤ r, g, b ≤ 5)
0xE8-0xFF:  grayscale from black to white in 24 steps

모든 색

이제 우리는 미래에 살고 있으며 다음을 사용하여 전체 RGB 스펙트럼을 사용할 수 있습니다.

\033[38;2;<r>;<g>;<b>m     #Select RGB foreground color
\033[48;2;<r>;<g>;<b>m     #Select RGB background color

따라서 갈색 배경에 분홍빛이 도는 텍스트를 사용할 수 있습니다.

\033[38;2;255;82;197;48;2;155;106;0mHello

Support for "true color" terminals is listed here.

Much of the above is drawn from the Wikipedia page "ANSI escape code".

A Handy Script to Remind Yourself

Since I'm often in the position of trying to remember what colours are what, I have a handy script called: ~/bin/ansi_colours:

#!/usr/bin/python

print "\\033[XXm"

for i in range(30,37+1):
    print "\033[%dm%d\t\t\033[%dm%d" % (i,i,i+60,i+60);

print "\033[39m\\033[39m - Reset colour"
print "\\033[2K - Clear Line"
print "\\033[<L>;<C>H OR \\033[<L>;<C>f puts the cursor at line L and column C."
print "\\033[<N>A Move the cursor up N lines"
print "\\033[<N>B Move the cursor down N lines"
print "\\033[<N>C Move the cursor forward N columns"
print "\\033[<N>D Move the cursor backward N columns"
print "\\033[2J Clear the screen, move to (0,0)"
print "\\033[K Erase to end of line"
print "\\033[s Save cursor position"
print "\\033[u Restore cursor position"
print " "
print "\\033[4m  Underline on"
print "\\033[24m Underline off"
print "\\033[1m  Bold on"
print "\\033[21m Bold off"

This prints

간단한 ANSI 색상


How about:

ECMA-48 - Control Functions for Coded Character Sets, 5th edition (June 1991) - A standard defining the color control codes, that is apparently supported also by xterm.

SGR 38 and 48 were originally reserved by ECMA-48, but were fleshed out a few years later in a joint ITU, IEC, and ISO standard, which comes in several parts and which (amongst a whole lot of other things) documents the SGR 38/48 control sequences for direct colour and indexed colour:

There's a column for xterm in this table on the Wikipedia page for ANSI escape codes


There are some more interesting ones along with related info.


It's related absolutely to your terminal. VTE doesn't support blink, If you use gnome-terminal, tilda, guake, terminator, xfce4-terminal and so on according to VTE, You'll not have blink.
If you use or want to use blink on VTE, You have to use xterm.
You can use infocmp command with terminal name:

#infocmp vt100 
#infocmp xterm 
#infocmp vte 

For example :

# infocmp vte
#   Reconstructed via infocmp from file: /usr/share/terminfo/v/vte
vte|VTE aka GNOME Terminal,
    am, bce, mir, msgr, xenl,
    colors#8, cols#80, it#8, lines#24, ncv#16, pairs#64,
    acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
    bel=^G, bold=\E[1m, civis=\E[?25l, clear=\E[H\E[2J,
    cnorm=\E[?25h, cr=^M, csr=\E[%i%p1%d;%p2%dr,
    cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
    cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
    cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
    dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J,
    el=\E[K, enacs=\E)0, home=\E[H, hpa=\E[%i%p1%dG, ht=^I,
    hts=\EH, il=\E[%p1%dL, il1=\E[L, ind=^J, invis=\E[8m,
    is2=\E[m\E[?7h\E[4l\E>\E7\E[r\E[?1;3;4;6l\E8,
    kDC=\E[3;2~, kEND=\E[1;2F, kHOM=\E[1;2H, kIC=\E[2;2~,
    kLFT=\E[1;2D, kNXT=\E[6;2~, kPRV=\E[5;2~, kRIT=\E[1;2C,
    kb2=\E[E, kbs=\177, kcbt=\E[Z, kcub1=\EOD, kcud1=\EOB,
    kcuf1=\EOC, kcuu1=\EOA, kdch1=\E[3~, kend=\EOF, kf1=\EOP,
    kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[1;2P,
    kf14=\E[1;2Q, kf15=\E[1;2R, kf16=\E[1;2S, kf17=\E[15;2~,
    kf18=\E[17;2~, kf19=\E[18;2~, kf2=\EOQ, kf20=\E[19;2~,
    kf21=\E[20;2~, kf22=\E[21;2~, kf23=\E[23;2~,
    kf24=\E[24;2~, kf25=\E[1;5P, kf26=\E[1;5Q, kf27=\E[1;5R,
    kf28=\E[1;5S, kf29=\E[15;5~, kf3=\EOR, kf30=\E[17;5~,
    kf31=\E[18;5~, kf32=\E[19;5~, kf33=\E[20;5~,
    kf34=\E[21;5~, kf35=\E[23;5~, kf36=\E[24;5~,
    kf37=\E[1;6P, kf38=\E[1;6Q, kf39=\E[1;6R, kf4=\EOS,
    kf40=\E[1;6S, kf41=\E[15;6~, kf42=\E[17;6~,
    kf43=\E[18;6~, kf44=\E[19;6~, kf45=\E[20;6~,
    kf46=\E[21;6~, kf47=\E[23;6~, kf48=\E[24;6~,
    kf49=\E[1;3P, kf5=\E[15~, kf50=\E[1;3Q, kf51=\E[1;3R,
    kf52=\E[1;3S, kf53=\E[15;3~, kf54=\E[17;3~,
    kf55=\E[18;3~, kf56=\E[19;3~, kf57=\E[20;3~,
    kf58=\E[21;3~, kf59=\E[23;3~, kf6=\E[17~, kf60=\E[24;3~,
    kf61=\E[1;4P, kf62=\E[1;4Q, kf63=\E[1;4R, kf7=\E[18~,
    kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~, khome=\EOH,
    kich1=\E[2~, kind=\E[1;2B, kmous=\E[M, knp=\E[6~,
    kpp=\E[5~, kri=\E[1;2A, kslt=\E[4~, meml=\El, memu=\Em,
    op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\EM, ritm=\E[23m,
    rmacs=^O, rmam=\E[?7l, rmcup=\E[2J\E[?47l\E8, rmir=\E[4l,
    rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m, rs1=\Ec,
    rs2=\E7\E[r\E8\E[m\E[?7h\E[!p\E[?1;3;4;6l\E[4l\E>\E[?1000l\E[?25h,
    sc=\E7, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
    sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p5%t;2%;%?%p7%t;8%;%?%p1%p3%|%t;7%;m%?%p9%t\016%e\017%;,
    sgr0=\E[0m\017, sitm=\E[3m, smacs=^N, smam=\E[?7h,
    smcup=\E7\E[?47h, smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m,
    smul=\E[4m, tbc=\E[3g, u6=\E[%i%d;%dR, u7=\E[6n,
    u8=\E[?%[;0123456789]c, u9=\E[c, vpa=\E[%i%p1%dd,

For these who don't get proper results other than mentioned languages, if you're using C# to print a text into console(terminal) window you should replace "\033" with "\x1b". In Visual Basic it would be Chrw(27).

참고URL : https://stackoverflow.com/questions/4842424/list-of-ansi-color-escape-sequences

반응형