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


225

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

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

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


실제로 Windows cmd에서 색상을 사용할 있습니다. stackoverflow.com/questions/41207496/…
Joel

그리고 MSDN에서
Joel

답변:


510

찾고있는 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

"트루 컬러"터미널에 대한 지원이 여기 에 나열되어 있습니다 .

위의 대부분은 Wikipedia 페이지 " ANSI escape code " 에서 가져온 것 입니다.

자신을 생각 나게하는 편리한 스크립트

나는 종종 어떤 색이 무엇인지 기억하려고 노력하기 때문에 편리한 스크립트가 있습니다 ~/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"

이것은 인쇄

간단한 ANSI 색상


4
완전한 ANSI 이스케이프 코드 세트 : ascii-table.com/ansi-escape-sequences-vt-100.php
formixian

3
@giusti : 둘 echo -e "\033[38;05;34;1mHi"echo -e "\033[38;05;34m\033[1mHi"색상의 외관에이 테스트 된 터미널 I에 굵은 글자 아래에 약간의 변경 원인 앤티 앨리어싱 글꼴 효과는 않았지만, 날 위해 일했습니다.
Richard

4
ecma-international.org/publications/files/ECMA-ST/Ecma 의 기본 소스와 완전히 다른 것은 아니지만 \033[38과 48로 시작 하는 SGR ( ) 코드 는 하위 분리 자로 예약 된 다른 코드와 분리 해야 합니다 :. -048.pdfitu.int/rec/... . 또한 일부 해석은 2(16M- 컬러 RGB) / 3(16M- 컬러 CMY) / 4(??? CMYK) 형식 의 색 공간 ID를 잊어 버립니다. 예를 들어 \033[38:2::255:255:255m흰색 16M 전경 이어야합니다 \033[38:2:255:255:255m.
SlySven

2
내가 계속 진행하는 이유는 내가 코드를 작성 하는 프로젝트 머들 릿 이 두 가지 형식을 모두 처리해야하기 때문에 최근에는 팔꿈치에
올라서

4
방금 ANSI 색상 목록을 찾고 싶었고 "기본 색상 용어"에 관한 기사를 읽는 데 너무 많은 시간을 보냈습니다. 큰 혼란에 감사드립니다! :)
mzuther

14

어때요 :

ECMA-48-코드화 된 문자 세트를위한 제어 기능, 5 판 (1991 년 6 월) -xterm에서도 지원되는 색상 제어 코드를 정의하는 표준.

SGR 38과 48은 원래 ECMA-48에 의해 예약되었지만 몇 년 후 공동 ITU, IEC 및 ISO 표준으로 여러 부분으로 나뉘어 있으며 (다른 많은 것들 중에서도) SGR을 문서화합니다. 직접 색상색인 색상에 대한 38/48 제어 시퀀스 :

이 표에는 ANSI 이스케이프 코드에 대한 Wikipedia 페이지의 xterm 열 이 있습니다.



4

그것은 절대적으로 터미널과 관련이 있습니다. VTE는 당신이 사용하는 경우, 점멸을 지원하지 않습니다 gnome-terminal, tilda, guake, terminator, xfce4-terminal등 VTE에 따라에, 당신은 깜박임이없는 것입니다.
VTE에서 깜박임을 사용하거나 사용하려면을 사용해야 xterm합니다.
infocmp 명령을 터미널 이름과 함께 사용할 수 있습니다.

#infocmp vt100 
#infocmp xterm 
#infocmp vte 

예를 들면 다음과 같습니다.

# 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,

VTE 0.52 / gnome-terminal 3.28은 텍스트 깜박임 지원을 추가하여 다른 VTE 기반 에뮬레이터에서도 작동합니다.
egmont

1

언급 된 언어 이외의 적절한 결과를 얻지 못하는 사용자의 경우 C #을 사용하여 콘솔 (터미널) 창에 텍스트를 인쇄하는 경우 "\ 033""\ x1b "로 바꾸어야 합니다. Visual Basic에서는 Chrw (27) 입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.