모든 터미널 색상을 표시하는 스크립트


74

인터넷을 통해 나는에 정의 된 모든 색상으로 많은 것들을 인쇄하는 스크립트를 가진 많은 사람들을 보았습니다 ~/.Xdefaults. 그러나 이것을 사용하려고하면 항상 얻습니다 error: Bad Substitution. 누구든지 똑같은 일을하는 작업 스크립트가 있습니까?

결국 다음과 같이 보일 것입니다. 여기에 이미지 설명을 입력하십시오


1
사용중인 스크립트를 게시하고 어떻게 그리고 어디에서 스크립트를 사용하는지 더 쉽게 알 수 있습니다.
luri

1
이를위한 스크립트 모음은 ArchWiki 에서 찾을 수 있습니다 .
aloisdg

1
몇 가지 컬러 인쇄 스크립트를 패키징하고 여기에 넣고 예제, 감사 및 양조 설치를 완료했습니다.
pvinis

1
@ pvinis 감사합니다! OP 화면에 표시된 정확한 것을 찾으려고 너무 많은 시간을 보냈습니다.
verboze

1
: FWIW,이 이미지가 어디에서 온 것 같다 web.archive.org/web/20110809032233/https://bbs.archlinux.org/... . 게시물에는 사용 된 색 구성표가 포함되며 스레드의 시작 게시물에는 그림을 생성하는 데 사용 된 소스 코드가 인용됩니다.
mwfearnley

답변:


74

Bash 만 사용하는 솔루션은 다음과 같습니다.

for x in {0..8}; do 
    for i in {30..37}; do 
        for a in {40..47}; do 
            echo -ne "\e[$x;$i;$a""m\\\e[$x;$i;$a""m\e[0;37;40m "
        done
        echo
    done
done
echo ""

짧막 한 농담:

for x in {0..8}; do for i in {30..37}; do for a in {40..47}; do echo -ne "\e[$x;$i;$a""m\\\e[$x;$i;$a""m\e[0;37;40m "; done; echo; done; done; echo ""

Cygwin의 사진은 다음과 같습니다.

Cygwin 스크린 샷


1
참고 로 bash와 {30..37}동일하며 `seq 30 37`더 빠릅니다.
Barry Kelly

1
@BarryKelly : 좋은 팁, 감사합니다. 방금 테스트를 마쳤으며 실제로 언급 한 것처럼 훨씬 빠릅니다 !!! :-) 그래서 여기에 새로운 것이 있습니다 :for x in 0 1 4 5 7 8; do for i in {30..37}; do for a in {40..47}; do echo -ne "\e[$x;$i;$a""m\\\e[$x;$i;$a""m\e[0;37;40m "; done; echo; done; done; echo "";
oktay

이것은 Mac에서 작동합니까?
kyo

@ihue이 질문에 대한 답이 있는지 확인하십시오 : Mac OS X에서 터미널 모양을 향상시키는 간단한 방법 . 자세한 내용은 AskDifferent.com
wjandrea

샘플 코드는 MacOS에서는 작동하지 않지만 파이썬 답변은 작동했습니다.
sorin

40

colortest colortest 설치패키지를 사용할 수도 있습니다 .

  1. 다음 명령으로 설치하십시오 :

    sudo apt-get install colortest
  2. 원하는 색상 수에 따라 사용할 수있는 몇 가지 명령을 제공합니다.

    colortest-16   colortest-16b  colortest-256  colortest-8

의 출력 예 colortest-16b:

여기에 이미지 설명을 입력하십시오


33

내 버전은 다음과 같습니다.

#!/usr/bin/env python
import sys
terse = "-t" in sys.argv[1:] or "--terse" in sys.argv[1:]
write = sys.stdout.write
for i in range(2 if terse else 10):
    for j in range(30, 38):
        for k in range(40, 48):
            if terse:
                write("\33[%d;%d;%dm%d;%d;%d\33[m " % (i, j, k, i, j, k))
            else:
                write("%d;%d;%d: \33[%d;%d;%dm Hello, World! \33[m \n" %
                      (i, j, k, i, j, k,))
        write("\n")

이것은 모든 것을 인쇄합니다 . 멋진 테이블 (스타일 (0) 및 (1), 일반 및 굵은 체 만 표시)을 원하면 -tor --terse인수를 사용할 수 있습니다 .

'깜박임'스타일 (5)은 gnome-terminal에서 작동하지 않습니다. ;-)


이것이 효과가 없다면 다른 문제가있는 것입니다. 테스트 한 후에 알려주십시오.


내 프롬프트 색상은 다음과 같이 정의됩니다. DULL=0 BRIGHT=1 FG_WHITE=37 WHITE="\[$ESC[${DULL};${FG_WHITE}m\]"왜 흐릿한 흰색 ( 0;37;40)이 흰색보다 회색이고 밝은 흰색 ( 1;37;40)이 굵게 표시됩니까? 터미널 글꼴을 굵게 표시하지 않고 밝은 흰색-검정색으로 설정하고 싶습니다. 나는 당신의 스크립트를 실행하면 1;37;40완벽하게 무사 보이는 첫 번째 줄 이후 : 5img.com/img13/740/24screenshot.png~~V 것은 그래서, 내 PS1 라인 텍스트의 색상입니다 0;30;40; 의 색으로 부탁합니다 0;30;41.
appas

다른 사람 이이 자홍색을 특히 못 생겼습니까? 진흙처럼 보입니다.
Ether

당신은 남자들 사이에서 신입니다. 최고의 크로스 플랫폼 솔루션. 감사합니다
Andre Terra

24

대부분의 사람들에게 적합한 간단한 원 라이너.

msgcat --color=test

데드 심플. 기본 배경색 만 얻을 수 있습니까?
vrcmr

msgcat --help는 당신이 한 말을 설명하지 않습니다 ... 부활절 달걀입니까?
vrcmr

@vrcmr 나는 언젠가 블로그 에서이 한 줄짜리 라이너를 우연히 발견했지만 불행히도 --color=testmsgcat 맨 페이지 에서도 언급 할 수 없었 습니다. 나는 그것을 구성 할 수없는 부활절 달걀이라고 생각합니다.
JacK TrocinskI

다른 관심있는 사람 --color=test은 섹션 9.11.2에 언급되어 있습니다.info msgcat
Gerrit0

7

나는 그것을 위해 작은 스크립트 를 만들었다 :)

당신은 숫자를 전달하고 각 색상의 ansi 색인과 함께 컬러 라인을 n뱉어냅니다 n(에서 사용할 수 있습니다 $(tput setaf <ansi-index>)).

다음은 (부분) 출력의 스크린 샷입니다.

아니 색

나는 또한 이것을 가지고 twerth 에서 포크 (그리고 약간 수정)했다 .

#!/usr/bin/env bash

echo -e "\033[0mNC (No color)"
echo -e "\033[1;37mWHITE\t\033[0;30mBLACK"
echo -e "\033[0;34mBLUE\t\033[1;34mLIGHT_BLUE"
echo -e "\033[0;32mGREEN\t\033[1;32mLIGHT_GREEN"
echo -e "\033[0;36mCYAN\t\033[1;36mLIGHT_CYAN"
echo -e "\033[0;31mRED\t\033[1;31mLIGHT_RED"
echo -e "\033[0;35mPURPLE\t\033[1;35mLIGHT_PURPLE"
echo -e "\033[0;33mYELLOW\t\033[1;33mLIGHT_YELLOW"
echo -e "\033[1;30mGRAY\t\033[0;37mLIGHT_GRAY"

… 내 현재 주제에서 다음을 보여줍니다.

터미널이 꺼집니다 (색상입니다)!


이것은 Mac에서 작동합니까?
kyo

이것이 우리가 가질 수있는 유일한 7 가지 색상입니까?
kyo

@ihue-물론 아닙니다. 스크립트를 만들었습니다. 확인하십시오 . 숫자 n(예 256:)를 전달하면 n터미널이 지원 하는 색상이 나옵니다 .
Eliran Malka

스크립트는 멋지지만 #!/usr/bin/env sh좋은 생각은 아닙니다. 우분투의 기본 쉘 인 대시에서는 작동하지 않습니다. 나는 그것을 bash로 바꿔야했다.
Teresa e Junior

5

최근에는 많은 사람들이 자신을 언급하고있는 스크립트를 찾고 싶었습니다. tldp.org Bash Prompt HOWTO- http: //tldp.org/HOWTO/Bash-Prompt-HOWTO/x329.html에서 가져온 것 입니다. 이 스크립트는 Daniel Crisman이 작성했습니다.

그것은 질문에서 그림과 정확히 동일하게 출력됩니다. 스크립트 자체 :

#!/bin/bash
#
#   This file echoes a bunch of color codes to the 
#   terminal to demonstrate what's available.  Each 
#   line is the color code of one forground color,
#   out of 17 (default + 16 escapes), followed by a 
#   test use of that color on all nine background 
#   colors (default + 8 escapes).
#

T='gYw'   # The test text

echo -e "\n                 40m     41m     42m     43m\
     44m     45m     46m     47m";

for FGs in '    m' '   1m' '  30m' '1;30m' '  31m' '1;31m' '  32m' \
           '1;32m' '  33m' '1;33m' '  34m' '1;34m' '  35m' '1;35m' \
           '  36m' '1;36m' '  37m' '1;37m';
  do FG=${FGs// /}
  echo -en " $FGs \033[$FG  $T  "
  for BG in 40m 41m 42m 43m 44m 45m 46m 47m;
    do echo -en "$EINS \033[$FG\033[$BG  $T  \033[0m";
  done
  echo;
done
echo


1

이것은 TLDP 스크립트의 수정 된 버전입니다 여기 . 표준 색상 과 생생한 색상 (코드 90-97 및 100-107)을 보여줍니다 .

#!/bin/bash
# Show available terminal colours.
# Heavily modified version of the TLDP script here:
# http://tldp.org/HOWTO/Bash-Prompt-HOWTO/x329.html

print_colors(){
  # Print column headers.
  printf "%-4s  " '' ${bgs[@]}
  echo
  # Print rows.
  for bold in ${bolds[@]}; do
    for fg in ${fgs[@]}; do
      # Print row header
      printf "%s;%s  " $bold $fg
      # Print cells.
      for bg in ${bgs[@]}; do
        # Print cell.
        printf "\e[%s;%s;%sm%s\e[0m  " $bold $fg $bg "text"
      done
      echo
    done
  done
}

# Print standard colors.
bolds=( 0 1 )
fgs=( 3{0..7} )
bgs=( 4{0..8} )
print_colors

# Print vivid colors.
bolds=( 0 ) # Bold vivid is the same as bold normal.
fgs=( 9{0..7} )
bgs=( 10{0..8} )
print_colors

출력 예 :

그놈 터미널 스크린 샷


0

이 질문은 실제로 터미널에서 색상 코드를 표시하는 방법을 검색 할 때 가장 좋은 결과입니다. 그래서 저는 정의를 내리고 OP가 정확히 찾던 것을주고 싶었습니다. 스크린 샷이 다소 친숙하다는 것을 기억합니다. 처음에 나는 그것이 Gogh 에서 온 것이라고 생각 했지만 조금 다릅니다. 그런 다음 iTerm2 colors 에서 사용되는 것과 정확히 동일한 스크립트임을 깨달았습니다 .

운, 그들은 원래의 출처에 대한 코멘트 추가 로를

iTerm2 에서 원본 크레딧으로 가져온 참조를 위해 스크립트를 게시하고 있습니다.

#!/bin/bash
#
#   This file echoes a bunch of color codes to the
#   terminal to demonstrate what's available.  Each
#   line is the color code of one forground color,
#   out of 17 (default + 16 escapes), followed by a
#   test use of that color on all nine background
#   colors (default + 8 escapes).
#
#   Copied from http://tldp.org/HOWTO/Bash-Prompt-HOWTO/x329.html

T='gYw'   # The test text

echo -e "\n                 40m     41m     42m     43m\
     44m     45m     46m     47m";

for FGs in '    m' '   1m' '  30m' '1;30m' '  31m' '1;31m' '  32m' \
           '1;32m' '  33m' '1;33m' '  34m' '1;34m' '  35m' '1;35m' \
           '  36m' '1;36m' '  37m' '1;37m';
  do FG=${FGs// /}
  echo -en " $FGs \033[$FG  $T  "
  for BG in 40m 41m 42m 43m 44m 45m 46m 47m;
    do echo -en "$EINS \033[$FG\033[$BG  $T  \033[0m";
  done
  echo;
done
echo

작동하는 스크립트는 다음과 같습니다.

여기에 이미지 설명을 입력하십시오

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