linux ANSI Color Codes

ANSI 컬러 값을 사용 할 일이 생겨서 컬러 값을 찍어봤다.
출력된 컬러는 터미널에 설정된 파레트 값에 영향을 받아서 출력된 결과임





[0m  : 모든 색과 스타일 초기화
[1m  : 굵게(bold) / 밝게
[3m  : 이탤릭체(italic)
[4m  : 밑줄(underline)
[7m  : 반전(글자색/배경색을 거꾸로)
[9m  : 가로줄 치기
[22m : 굵게(bold) 제거
[23m : 이탤릭체(italic)제거
[24m : 밑줄(underline)제거
[27m : 반전 제거
[29m : 가로줄 제거
[30m : 글자색:검정
[31m : 글자색:빨강
[32m : 글자색:초록
[33m : 글자색:노랑
[34m : 글자색:파랑
[35m : 글자색:마젠트(분홍)
[36m : 글자색:시안(청록)
[37m : 글자색:백색
[39m : 글자색으로 기본값으로
[40m : 바탕색:흑색
[41m : 바탕색:적색
[42m : 바탕색:녹색
[43m : 바탕색:황색
[44m : 바탕색:청색
[45m : 바탕색:분홍색
[46m : 바탕색:청록색
[47m : 바탕색:흰색
[49m : 바탕색을 기본값으로


컬러를 출력하는 스크립트




 1 echo   [0m  : 모든 색과 스타일 초기화
 2 echo -e \033[01m   [01m : 굵게(bold) / 밝게 \033[0m
 3 echo -e \033[3m    [3m  : 이탤릭체(italic) \033[0m
 4 echo -e \033[4m    [4m  : 밑줄(underline) \033[0m
 5 echo -e \033[7m    [7m  : 반전(글자색/배경색을 거꾸로) \033[0m
 6 echo -e \033[9m    [9m  : 가로줄 치기 \033[0m
 7 echo -e \033[22m   [22m : 굵게(bold) 제거 \033[0m
 8 echo -e \033[23m   [23m : 이탤릭체(italic)제거 \033[0m
 9 echo -e \033[24m   [24m : 밑줄(underline)제거 \033[0m
10 echo -e \033[27m   [27m : 반전 제거 \033[0m
11 echo -e \033[29m   [29m : 가로줄 제거 \033[0m
12 echo -e \033[30m\033[47m   [30m : 글자색:검정 \033[0m
13 echo -e \033[31m   [31m : 글자색:빨강 \033[0m
14 echo -e \033[32m   [32m : 글자색:초록 \033[0m
15 echo -e \033[33m   [33m : 글자색:노랑 \033[0m
16 echo -e \033[34m   [34m : 글자색:파랑 \033[0m
17 echo -e \033[35m   [35m : 글자색:마젠트(분홍) \033[0m
18 echo -e \033[36m   [36m : 글자색:시안(청록) \033[0m
19 echo -e \033[37m   [37m : 글자색:백색 \033[0m
20 echo -e \033[39m   [39m : 글자색으로 기본값으로 \033[0m
21 echo -e \033[40m   [40m : 바탕색:흑색 \033[0m
22 echo -e \033[41m   [41m : 바탕색:적색 \033[0m
23 echo -e \033[42m   [42m : 바탕색:녹색 \033[0m
24 echo -e \033[43m   [43m : 바탕색:황색 \033[0m
25 echo -e \033[44m   [44m : 바탕색:청색 \033[0m
26 echo -e \033[45m   [45m : 바탕색:분홍색 \033[0m
27 echo -e \033[46m   [46m : 바탕색:청록색 \033[0m
28 echo -e \033[47m   [47m : 바탕색:흰색 \033[0m
29 echo -e \033[49m   [49m : 바탕색을 기본값으로 \033[0m



2.1 글자 속성


number  예제           실제 입력하는 코드
   0     off         =  ESC[0mnormalESC[0m
   1     bold        =  ESC[1mboldESC[0m
   4     underscore  =  ESC[4munderscoreESC[0m
   5     blink       =  ESC[5mblinkESC[0m
   7     reverse     =  ESC[7mreverseESC[0m
   8     concealed   =  ESC[8mconcealedESC[0m


Note] si에선 ESC code가 입력되면 ‘*’표시가 나오고,
vi에선          ”          ‘^[‘표시가 나옵니다.
위에 보면 끝마다 ESC[0m으로 속성을 off한 것이 보이죠?
글의 속성을 바꿔주었으면, 나중엔 원래대로 되돌려놓으세요.
안그러면, 이후에 보는 글자가 그 속성대로 나오니까요.


2.2 전경색 (Foreground Color)


number   예제           실제 입력한 코드
  30  black   =  ESC[30mblackESC[0m           9%)
  31  red     =  ESC[31mredESC[0m
  32  green   =  ESC[32mgreenESC[0m
  33  yellow  =  ESC[33myellowESC[0m
  34  blue    =  ESC[34mblueESC[0m
  35  magenta =  ESC[35mmagentaESC[0m
  36  cyan    =  ESC[36mcyanESC[0m
  37  white   =  ESC[37mwhiteESC[0m


2.3. 배경색 (Background Color)


number       예제        실제로 입력한 코드


40  black  =  ESC[40mblackESC[0m
41  red    =  ESC[41mredESC[0m
42  green  =  ESC[42mgreenESC[0m
43  yellow =  ESC[43myellowESC[0m
44  blue   =  ESC[44mblueESC[0m
45  magenta=  ESC[45mmagentaESC[0m
46  cyan   =  ESC[46mcyanESC[0m
47  white  =  ESC[47mwhiteESC[0m


                                                              
주의할 점


문자의 속성을 바꾸었으면 언젠가는 한번 정상상태로 되돌려야 합니다.


즉, ESC[4m어쩌구 저쩌구 라고 했으면


나중에 normal attribute로 돌려주어야 합니다, ESC[0m으로요.


그렇지 않으면, setting된 속성이 그대로 남아 계속 영향을 미칩니다.
위에서 밑줄이 ESC[0m하기 전까지 계속되는 것을 볼수 있지요?


3. 커서 이동


화면의 좌측상단의 좌표가 (1, 1)입니다.


ESC[pr;pcH    –   좌표 (pr, pc)로 이동할때
ESC[pr;pcf    –   ”


ESC[pnA       –   pn줄 만큼 위로
ESC[pnB       –   pn줄 만큼 아래로
ESC[pcC       –   pc칸 만큼 오른쪽으로               
ESC[pcD       –   pc칸 만큼 왼쪽으로


ESC[s         –   현재의 터미널 정보, 커서위치 저장
ESC[u         –   저장된 정보로 세팅, 저장된 위치로 이동                 


4. 지우기


ESC[2J    –   화면 전체 지우기
ESC[1J    –   화면처음부터 커서 위치까지 지우기


ESC[2K    –   줄 전체지우기
ESC[1K    –   줄 처음부터 커서위치까지 지우기
ESC[K     –   커서다음부터 줄 끝까지 지우기          


5. 그 외


5.1. 잘 안되는기능 (제 터미널만 그럴 수 있습니다.)


글자 두배로 키우는 기능  <—  ESC#3, ESC#4
글자 깜빡거리는 기능     <—  ESC[5m           


5.2. 글자의 속성은 조합이 가능합니다.


예) 조합된 속성  


               = ESC[4mESC[31mESC[43m조합된 속성ESC[0m
                     ^      ^      ^                ^
                     |      |      |                |
                     |      |    배경색:노랑      원래대로
                     |   전경색:빨강
                    밑줄
               = ESC[4;31;43m조합된 속성ESC[0m (이렇게 짧게 줄여 쓸 수 있습니다)


5.3. 그 외에 화면모드 세팅, prompt 세팅, keypad 세팅 등 있으며,
자세한 것은 Flag보드에 Kidssysop님의 “ANSIcode (Texxt)”를 보십시오.


5.4. 애니메이션은 글자의 속성과 커서이동등을 함께 이용합니다.
위에보면 Kidssysop님이 퍼온 aninmation 몇 개와,
어느 한 분과, 제가 끼적거려 놓은 것이 있으므로 코드갈무리로
코드를 보시면 대강 어떻게 하는지 알수 있을 겁니다.
또는 Web Browser로 이 글을 읽어도 제어문자가 다 보일 겁니다.
좀 지저분하게 보이겠죠 🙂


6. 절대 주의사항


앞서 ESC[0m으로 하면 normal attribute가 된다고 하였습니다.
그리고 여기서 서술한 것은 모두 vt100기준입니다.
따라서 vt100 호환 터미널이 아니면 화면이 깨질 수도 있습니다.
다른 사람에게 피해를 줄 수 있는 것입니다.


이러한 피해를 줄일 수 있도록 신경을 써야 합니다.
그럼 그 방법에 대해서 말씀드리겠습니다.


먼저, 제어문자를 사용하기전에 ESC[s 로 터미널 세팅을 저장합니다.
그리고 할 것 다 하고 난 다음에 ESC[u 로 리셋시킵니다.


제 시그너쳐를 예로 들겠습니다. 편의상 ESC 표시는 다 빼겠습니다.


[s[31m _   __[B[7D/ `-‘  ([12C[33miii[2B[3D!!![23D[2A[31m
|[32m ( #  [37;45m||||||||||||[0m[34m[***][B[24D[31m\_.-.__(
[2A[26C[36m음악과 함께 [1;4m가통이[0m
[B[40D[1m고정관념은 싫다. 나에겐 나의 방식이.[0m[u   


맨 처음에 [s 를 하고 맨 마지막에 [u 를 한 것이 보이죠?
별로 힘도 들지 않습니다.


코멘트 쓰기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.

다음의 HTML 태그와 속성을 사용할 수 있습니다:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>



배송정보
배송조회를 하시려면 송장번호를 클릭하세요
배송조회
상품명
주문번호
택배사
송장번호