[colors] 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

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

위의 대부분은 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 색상


답변

어때요 :

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

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

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


답변


답변

그것은 절대적으로 터미널과 관련이 있습니다. 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,


답변

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


답변