ls farklı renkler ne anlama geliyor?

297

Ubuntu ls komutundaki farklı renkler ne anlama geliyor? Örneğin, ls komutunu klasörlerimden birine yazdığımda, açık yeşil, diğeri (bir klasör) mavi renkte vurgulama ile dosyalardan birini alırım.

Bu renkler ne anlama geliyor ve tüm renkler hakkında bir el kitabı var mı?

    
sordu Rafid 14.12.2010 09:15

5 cevap

304
  • Mavi : Dizin
  • Yeşil : Yürütülebilir veya tanınmış veri dosyası
  • Gök Mavisi : Sembolik bağlantı dosyası
  • Siyah arka planlı sarı : Cihaz
  • Pembe : Grafik resim dosyası
  • Kırmızı : Arşiv dosyası
  • Siyah arka plana sahip kırmızı : Bozuk bağlantı

Bilgileriniz için:

  • Rengi kapatmak için, aşağıdaki satırları .bashrc olarak yorumlamanız gerekir.

    # enable color support of ls and also add handy aliases
    #if [ -x /usr/bin/dircolors ]; then
    #    test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
    #    alias ls='ls --color=auto'
    #    #alias dir='dir --color=auto'
    #    #alias vdir='vdir --color=auto'
    #
    #    alias grep='grep --color=auto'
    #    alias fgrep='fgrep --color=auto'
    #    alias egrep='egrep --color=auto'
    #fi
    
  • Ayrıca, kendi bash renk anlamlarını görmek istiyorsanız, aşağıdaki kodları terminalinize kopyalayın / yapıştırın.

      
    eval $(echo "no:global default;fi:normal file;di:directory;ln:symbolic link;pi:named pipe;so:socket;do:door;bd:block device;cd:character device;or:orphan symlink;mi:missing file;su:set uid;sg:set gid;tw:sticky other writable;ow:other writable;st:sticky;ex:executable;"|sed -e 's/:/="/g; s/\;/"\n/g')           
    {      
      IFS=:     
      for i in $LS_COLORS     
      do        
        echo -e "\e[${i#*=}m$( x=${i%=*}; [ "${!x}" ] && echo "${!x}" || echo "$x" )\e[m" 
      done       
    } 
    

    Çıktı:

Not:

verilen cevap karthick87 14.12.2010 09:18
85

ls öğesinin $LS_COLORS değişkenine bakarak hangi renklerin kullandığını öğrenebilirsiniz:

  • Turkuaz: ses dosyaları 1
  • Parlak Kırmızı: Arşivler ve sıkıştırılmış dosyalar 2
  • Mor: resimler ve videolar 3

Ayrıca, dosyalar niteliklere göre renklendirilir:

  1. aac, au, flac, orta, midi, mka, mp3, mpc, ogg, ra, wav, axa, oga, spx, xspf.

  2. tar, tgz, arj, taz, lzh, lzma, tlz, txz, zip, z, Z, dz, gz, lz, xz, bz2, bz, tbz, tbz2, tz, deb, rpm, kavanoz, rar, ace, hayvanat bahçesi, cpio, 7z, rz.

  3. jpg, jpeg, gif, bmp, pbm, pgm, ppm, tga, xbm, xpm, tif, tng, svg, svgz, mng, pcx, mov, mpg, mpeg, m2v, mkv, ogm, mp4, m4v, mp4v, vob, qt, nuv, wmv, asf, rm, rmvb, flc, avi, fli, flv, gl, dl, xcf, xwd, yuva, cgm, emf, axv, anx, ogv, OGX.

Tüm bu bilgiler dircolors --print-database çıktısında bulunur, ancak formatı oldukça okunamaz.

İşte neler olduğuna dair teknik bir açıklama:

Örnek:

CHR 40;33;01

Renk kodu üç bölümden oluşur:

  • Noktalı virgülden önceki ilk kısım metin stilini temsil eder.

    • 00 = yok, 01 = kalın, 04 = alt çizgi, 05 = yanıp sönme, 07 = geri, 08 = gizlenmiş.
  • İkinci ve üçüncü kısım, renk ve arka plan rengidir:

    • 30 = siyah, 31 = kırmızı, 32 = yeşil, 33 = sarı, 34 = mavi, 35 = macenta, 36 = camgöbeği, 37 = beyaz.

Soldan başlayarak varsayarak her bölüm ihmal edilebilir. yani "01" kalın anlamına gelir, "01; 31", koyu ve kırmızı anlamına gelir. Ve terminalinizi [ ile komuttan kaçarak ve m ile sonlandırarak renkli baskı yapardınız. Onaltılı olarak 33 veya 1B, ASCII "ESCAPE" (ASCII karakter kümesindeki özel bir karakter) işaretidir. Örnek:

"[1;31mHello World[m"

"Merhaba Dünya", parlak kırmızı renkte yazdırır.

ls komutuyla% co_de komutu (Ubuntu'da%, --color=auto ls için bir takma addır) tüm dosya adlarından geçer ve önce Executable, Pipe ve benzeri gibi farklı türlerle eşleşmeye çalışır. . Daha sonra * .wav gibi düzenli ifadeleri eşleştirmeye çalışır ve bash için bu renk değiştiren talimatlara eklenen sonuç dosya adını yazdırır.

    
verilen cevap Stefano Palazzo 14.12.2010 09:57
27

dircolors yazıyorsanız ( echo $LS_COLORS ayrıca çalışır) komuttan satır 1 satırda çok sayıda dosya türü için kodların ve renklerin bir listesini alacaksınız. dircolors --print-database , bir seferde 1 satırı gösterir. İşte kısa bir liste (en önemli olanları koymaya çalıştım). Altta, her satırın sonunda farklı kodların neyi temsil ettiği hakkında bir açıklama vardır:

NORMAL 00 # global default, although everything should be something.
FILE 00 # normal file
DIR 01;34 # directory
LINK 01;36 # symbolic link. (If you set this to 'target' instead of a
 # numerical value, the color is as for the file pointed to.)
FIFO 40;33 # pipe
SOCK 01;35 # socket
DOOR 01;35 # door
BLK 40;33;01 # block device driver
CHR 40;33;01 # character device driver
ORPHAN 40;31;01 # symlink to nonexistent file, or non-stat'able file
SETUID 37;41 # file that is setuid (u+s)
SETGID 30;43 # file that is setgid (g+s)
STICKY_OTHER_WRITABLE 30;42 # dir that is sticky and other-writable (+t,o+w)
OTHER_WRITABLE 34;42 # dir that is other-writable (o+w) and not sticky
STICKY 37;44 # dir with the sticky bit set (+t) and not other-writable
# archives or compressed (bright red)
.tar 01;31
.tgz 01;31
# image formats
.jpg 01;35
.jpeg 01;35
.gif 01;35
.bmp 01;35
# audio formats
.aac 00;36
.flac 00;36
.ogg 00;36
  • Öznitelik kodları: 00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed
  • Metin renk kodları: 30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white
  • Arkaplan renk kodları: 40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white

Burada bununla oynamak istiyorsanız, bir dosya için renk ayarlamaya dair bir örnek:

export LS_COLORS=$LS_COLORS:"*.ogg=01;35":"*.mp3=01;35"  

Bu, *.ogg ve .mp3 'sini bold magenta olarak ayarlayacaktır. Ve eğer .bashrc dosyanıza koyarsanız kalıcı olur.

    
verilen cevap Rinzwind 14.09.2011 10:25
15

Buradaki cevapların hiçbiri Ubuntu'nun en son sürümlerindeki 256 renk seçeneğini içerir. Renk eksikliğim var (bazı renkler birbirinin yanına sıkıntı veriyor) böylece siyahtaki varsayılan mavi dizin okumak benim için çok zor. Bunu takip etmek benim araştırmamdır.

Mevcut renk kodunuzu görmek için dircolors -p |less yazın.

Varsayılan .bashrc zaten sistem renk kodundan yararlanmak için değil, aynı zamanda ~ / .dircolors dizininde de dircolor'ların çıkışını .dircolor'a dökmek için yapılandırılmalıdır, böylece bu komutu kullanarak başlayabilirsiniz. % Co_de%

Alternatif: seebi'den çok benzer 256 renkli renk tonu seçin solarized projesi.

Bu colortest komut dosyasını yakalayın ve bunu dircolors -p > ~/.dircolors komutuyla çalıştırın. Bir kerede tüm renkler. Bir renk seç. Portakal # 208'i severim. Metin renginin olmasını istiyorum, bu yüzden bu bilgiyi genişletilmiş renk kodlarında kullanıyorum, bunu uygulayabilirim.

Yani bir rengin var, şimdi ne var. İlk önce dizeyi oluşturmalıyız.

İlk sayı, büyük olasılıkla 00 şeklinde bir özellik kodu olacaktır, ancak göz kırpmasını istiyorsanız 05 ile devam edin:

  

Bir özellik kodu seçin: 00 = yok 01 = kalın 04 = alt çizgi 05 = yanıp sönme 07 = geri 08 = gizlenmiş

Sonraki metin karakterinizi 00, 38; 5; 5; ve ardından renginizi ekleyin. 208 aldım, bu yüzden colortest -w aldım.

Ayrıca arka plan üzerinde bir arkaplan koymak isterseniz, colortest komut dosyasıyla başka bir renk seçin (56 diyelim) ve arka plan için ;38;5; değerini ve 00;38;5;208 toplam dizgisi elde etmek için de rengin 56 değerini seçin.

Öyleyse şimdi sahipsin, onunla ne yapacaksın?

;48;5; 'ı ve değiştirmek istediğiniz bölümü (benim için DIR), yukarıda belirttiğimiz dize "00; 38; 5; 208" olarak bulunuz.

Bu hemen uygulanmaz, yapılandırmayı yüklemeniz gerekir. LS_COLORS değişkeninizi ayarlamak için get koduna 00;38;5;208;48;5;56 değerini kullanın. Bunu yalnızca terminal oturumunuza yapıştırabilir veya terminalinizi kapatabilir ve yeniden açabilirsiniz. Bunu bir dosyaya da koyabilir ve bir kabuk komut dosyası olarak çalıştırabilirsiniz.

Aynı prosedürü 16 renkle de yapabilirsiniz. Özel, 38, 5 veya 48; 5 maddeye ihtiyacınız yok. Sadece sayıları diziye at ve sadeliğin tadını çıkar.

Dan ve seebi .

    
verilen cevap flickerfly 22.03.2013 21:45
13

Bu, Karthick87’in cevabı ’nda genişler.

Varsayılan kurulumla

  • Renksiz (beyaz) : dosya veya dosya adı olmayan metin (ör. ls -l çıkışındaki izinler)
  • Kalın mavi : dizin
  • Koyu mavi cyan : sembolik bağlantı
  • Kalın yeşil : yürütülebilir dosya
  • Kalın kırmızı : arşiv dosyası
  • Kalın macenta : resim dosyası, video, grafik vb. veya kapı veya soket
  • Cyan : ses dosyası
  • Siyah arka planlı sarı : boru (AKA FIFO)
  • Siyah arka plana sahip koyu sarı : veya karakter cihazını engelle
  • Siyah arka plana sahip koyu kırmızı : yetim simgesi veya eksik dosya
  • Kırmızı arka planla renklenmemiş : set-user-ID dosyası
  • Sarı arka plana sahip siyah : set-group-ID dosyası
  • Kırmızı arka plana sahip siyah : yetenekli dosya
  • Mavi arkalı beyaz : yapışkan dizin
  • Yeşil arka plana sahip mavi : diğer yazılabilir dizin
  • Yeşil arka plana sahip siyah : yapışkan ve diğer yazılabilir dizin

Renkleri göstermek için komut dosyası

#!/bin/bash
# For LS_COLORS, print type and description in the relevant color.

IFS=:
for ls_color in $LS_COLORS; do
    color="${ls_color#*=}"
    type="${ls_color%=*}"

    # Add descriptions for named types.
    case "$type" in
    bd) type+=" (block device)" ;;
    ca) type+=" (file with capability)" ;;
    cd) type+=" (character device)" ;;
    di) type+=" (directory)" ;;
    do) type+=" (door)" ;;
    ex) type+=" (executable file)" ;;
    fi) type+=" (regular file)" ;;
    ln) type+=" (symbolic link)" ;;
    mh) type+=" (multi-hardlink)" ;;
    mi) type+=" (missing file)" ;;
    no) type+=" (normal non-filename text)" ;;
    or) type+=" (orphan symlink)" ;;
    ow) type+=" (other-writable directory)" ;;
    pi) type+=" (named pipe, AKA FIFO)" ;;
    rs) type+=" (reset to no color)" ;;
    sg) type+=" (set-group-ID)" ;;
    so) type+=" (socket)" ;;
    st) type+=" (sticky directory)" ;;
    su) type+=" (set-user-ID)" ;;
    tw) type+=" (sticky and other-writable directory)" ;;
    esac

    # Separate each color with a newline.
    if [[ $color_prev ]] && [[ $color != $color_prev ]]; then
        echo
    fi

    printf "\e[%sm%s\e[m " "$color" "$type"

    # For next loop
    color_prev="$color"
done
echo

Varsayılan kurulum ile çıkış:

Kurulumumla çıktı (özel dircolors ve özel Solarized terminal teması):

Açıklamaları dircolors -p ve man dir_colors öğesinden aldım ve kendi araştırmamla boşlukları doldurdum.

Renkler ve açıklamalar 14.04 ile 17.10 arasındadır.

    
verilen cevap wjandrea 17.02.2017 22:05

Etiketlerdeki diğer soruları oku