Tüm terminal renklerini görüntülemek için komut dosyası


74

İnternet boyunca, tanımlanmış tüm renklerde bir sürü şeyi basan senaryolara sahip birçok insan gördüm ~/.Xdefaults. Ancak bunları kullanmaya çalıştığımda her zaman alıyorum error: Bad Substitution. Aynı şeyi yapan çalışan bir komut dosyası var mı?

Bunun gibi bir şeye bakmalı: görüntü tanımını buraya girin


1
Belki kullandığınız betiği ve onu nasıl ve nereden çağırdığınızı göndermeniz daha kolaydır.
luri

1
Bunun için bir script koleksiyonu ArchWiki'de bulabilirsiniz .
aloisdg

1
Birkaç renkli baskı komut paketlenmiş ve onları koymak burada örneklerde, teşekkür ve demlemek kurulumu ile tamamlandı.
pvinis

1
@pvinis teşekkürler! OP ekranında gösterilenleri bulmaya çalışırken çok zaman harcadım.
18'de

1
FWIW, bu görüntünün nereden geldiği gibi görünüyor: web.archive.org/web/20110809032233/https://bbs.archlinux.org/… . Yazı, kullanılan renk şemasını içerir ve ipliğin içindeki açma yazı, resmi oluşturmak için kullanılan kaynak kodunu belirtir.
mwfearnley

Yanıtlar:


74

İşte sadece Bash ile olan çözümüm:

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 ""

Tek astarı:

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 ""

İşte Cygwin'de bir resim:

Cygwin ekran görüntüsü


1
Bilginize, bash {30..37}eşdeğerdir `seq 30 37`ve daha hızlı.
Barry Kelly

1
@BarryKelly: iyi ipucu, teşekkürler. sadece test edildi ve dediğiniz gibi: gerçekten çok daha hızlı !!! :-) işte yenisi: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

Bu bir Mac üzerinde çalışacak mı?
kyo

@ihue Bu soruyu yanıtlıyor mu, bakın: Mac OS X'te Terminal Görünümünü Geliştirmeye Yönelik Basit Püf Noktaları . Daha fazla bilgi için, AskDifferent.com
wjandrea

Örnek kod MacOS'ta işe yaramadı ama python cevabı çalıştı.
sorin,

40

colortest Colortest yüklePaketi de kullanabilirsiniz .

  1. Bu komutla yükleyin:

    sudo apt-get install colortest
  2. İstediğiniz kaç renge bağlı olarak kullanabileceğiniz birkaç komut sunar:

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

Örnek çıktı colortest-16b:

görüntü tanımını buraya girin


33

İşte benim versiyonum:

#!/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")

Bu her şeyi basar . Güzel bir tablo istiyorsanız (yalnızca (0) ve (1) stillerini gösteren, normal ve kalın), -tya da --terseargümanını kullanabilirsiniz :

'Göz kırpma' tarzı (5), gnome-terminali ile çalışmıyor. ;-)


Bu sizin için işe yaramazsa, başka bir sorun var. Lütfen test ettikten sonra bize bildirin.


Komut rengim şöyle tanımlanır: DULL=0 BRIGHT=1 FG_WHITE=37 WHITE="\[$ESC[${DULL};${FG_WHITE}m\]"Neden, mat beyazın ( 0;37;40) beyazdan daha gri ve parlak beyazın ( 1;37;40) koyu renkte olması? Terminal yazı tipini, kalın değil, siyah beyaza siyah yapmak istiyorum. Komut dosyanızı çalıştırdığımda , ilk satırdan sonra1;37;40 mükemmel görünüyor : 5img.com/img13/740/24screenshot.png Yani, PS1 satırım metnin renginde ; Renginde rica ediyorum . 0;30;400;30;41
59'da appas

Başka kim bu macenta'yı özellikle çirkin buluyor mu? Çamura benziyor.
Ether

Siz erkekler arasında bir tanrısınız. En iyi platformlar arası çözüm. Teşekkürler
Andre Terra 19

24

Çoğu insan için çalışması gereken basit bir astar.

msgcat --color=test

Deadsimple. Yalnızca varsayılan arka plan rengini elde etmek mümkün mü?
vrcmr

msgcat - help ne yaptığını açıklamıyor ... Bir paskalya yumurtası mı?
vrcmr

@vrcmr Bir gün önce bir blogda bu tek liner'la karşılaştım ve maalesef --color=testmsgcat man sayfasında da hiçbir şey bulamadım . Yapılandırılamayan bir paskalya yumurtası olduğunu düşünüyorum.
JacK TrocinskI

İlgilenen herkes için, --color=test9.11.2 bölümündeki 'TERM' çevre değişkeniinfo msgcat
Gerrit0

7

Bunun için küçük bir senaryo yaptım :)

bir sayıyı niletirseniz nve her rengin ansi indeksiyle birlikte renkli çizgiler yayar (içinde kullanabilirsiniz $(tput setaf <ansi-index>)).

İşte (kısmi) çıktının ekran görüntüsü:

ansi-renkler

ayrıca, bunu dördüncüden çatalladığım (ve biraz değiştirdiğim) aldım :

#!/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"

… Ki şu anki temamda şunu gösteriyor:

terminal dışarı koyar (renkleri)!


Bu Mac'te çalışacak mı?
kyo

Bunlar sahip olabileceğimiz tek 7 renk mi ???
kyo

@ihue - elbette değil, bunun için bir senaryo yazdım .. kontrol et . Bir numarayı n(örn. 256) iletebilirsiniz ve nterminalinizin desteklediği renkleri tükürür .
Eliran Malka

Senaryonuz harika, ama #!/usr/bin/env shiyi bir fikir değil. Varsayılan çizgi olan Ubuntu'nun kabuğuyla çalışmaz. Bunu bash olarak değiştirmek zorunda kaldım.
Teresa e Junior,

5

Son zamanlarda birçok insanın kendimi tavsiye ettiği bu senaryoyu bulmak istedim. NASIL - tldp.org Bash İstemi NASIL - http://tldp.org/HOWTO/Bash-Prompt-HOWTO/x329.html adresinden alınmıştır . Senaryo Daniel Crisman tarafından yazılmıştır.

Sorunun resmindeki ile tamamen aynı çıktı. Komut dosyasının kendisi:

#!/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

Bu, burada TLDP betiğinin değiştirilmiş bir sürümüdür . Standart renkleri ve canlı renkleri gösterir (kod 90-97 ve 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

Örnek çıktı:

gnome-terminal ekran görüntüsü


0

Bu soru aslında bir terminalde renk kodlarının nasıl gösterileceğini araştırdığımda ortaya çıkan bir sonuçtur. Ben de adaleti vermek ve OP'nin tam olarak aradığı şeyi vermek istedim. Ekran görüntüsünün biraz tanıdık olduğunu hatırlıyorum. İlk başta, ben ondan olduğunu düşünmüş Gogh biraz farklıdır ancak. Daha sonra iTerm2 renklerinde kullanılan aynı betiğin farkına vardım .

Yeterince şanslıydılar, aslında nereden geldiği hakkında bir yorum eklediler .

İTerm2'den alınmış, referans için senaryoyu orijinal kredilerle gönderiyorum :

#!/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

İşte eylem senaryosu:

görüntü tanımını buraya girin

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.