Ls'deki farklı renkler ne anlama geliyor?

Ubuntu'daki farklı renkler nelerdir ls komuta mı demek? Örneğin, yazarken ls klasörlerimden birinde, dosyalardan birini açık yeşil renkte, diğeri (bir klasör olan) yeşil vurgulamalı mavi renkte alıyorum.

Bu renkler ne anlama geliyor ve tüm renkler hakkında herhangi bir kılavuz var mı?

  • Mavi: Dizin
  • Yeşil: Yürütülebilir veya tanınan veri dosyası
  • Camgöbeği (Gök Mavisi): Sembolik bağlantı dosyası
  • Siyah arka plan ile sarı: Aygıt
  • Macenta (Pembe): Grafik görüntü dosyası
  • Kırmızı: Arşiv dosyası
  • Siyah arka plan ile kırmızı: Kırık bağlantı

Bilginize...:

  • Rengi kapatmak için aşağıdaki satırları açıklamalısınız: .bashrc.

    # 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ızı 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ı:
terminal output

Not:

Hangi renklerin olduğunu öğrenebilirsiniz ls bakarak kullanır $LS_COLORS değişken:

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

Ayrıca dosyalar özniteliklere göre renklendirilir:

alt text


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

  2. tar, tgz, arj, taz, LZMA, TZ, TZ, zıp, z, Z, DZ, gz, xz, bz2, bz, tbz, tbz2, tz, deb, rpm, kavanoz, rar, bir göz, hayvanat bahçesi, tikpio, 7z, rz.

  3. jpg, jpeg, gif, bmp, pbm, pgm, ppm, tga, xbm, xpm, tif, tiff, png, 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, yuv, cgm, emf, axv, anx, ogv, ogx.


Tüm bu bilgiler çıktıda yer almaktadır dircolors --print-database ancak biçimlendirmesi 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 bölüm metin stilini temsil eder.

    • 00 = yok, 01 = kalın, 04 = alt çizgi, 05 = yanıp sönme, 07 = ters, 08 = gizli.
  • İ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.

Her parça soldan başlayarak atlanabilir. yani "01" kalın, "01;31" kalın ve kırmızı anlamına gelir. Ve terminalinizin talimattan kaçarak renkli yazdırmasını sağlarsınız \33[ ve bir ile biten m. 33 veya onaltılık 1B ASCII işareti "kaçış" (ASCII karakter kümesindeki özel bir karakter) 'dir. Örnek:

"\33[1;31mHello World\33[m"

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

Komut ls argüman ile --color=auto (ubuntu'da, ls için bir takma addır ls --color=auto) tüm dosya adlarından geçer ve önce Yürütülebilir Dosya, Kanal vb. Gibi farklı türlerle eşleşmeye çalışır. Daha sonra * gibi normal ifadelerle eşleşmeye çalışır.wav ve bash için bu renk değiştirme talimatlarında yer alan sonuçtaki dosya adını yazdırır.

Bu daha da genişliyor Karthick87'nin cevabı.


Varsayılan ayar ile tam liste

  • Renksiz (beyaz): Dosya veya dosya adı olmayan metin (örn. ls -l) veya çoklu hardlink dosyası
  • Kalın mavi: dizin
  • Kalın camgöbeği: sembolik bağ
  • 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 yuva
  • Camgöbeği: ses dosyası
  • Siyah arka plan ile sarı: boru (AKA FIFO)
  • Siyah arka plan ile kalın sarı: cihazı engelle veya karakter aygıtı
  • Siyah arka plan ile kalın kırmızı: yetim sembolik bağ veya eksik dosya
  • Kırmızı arka plan ile renklendirilmemiş: set-user-ID dosyası
  • Sarı arka plan ile siyah: set-group-ID dosyası
  • Kırmızı arka plan ile siyah: yeteneği olan dosya
  • Mavi arka plan ile beyaz: yapışkan dizin
  • Yeşil arka plan ile mavi: diğer yazılabilir dizin
  • Yeşil arka plan ile siyah: yapışkan ve diğer yazılabilir dizin

Koyu kırmızının turuncu, siyahın koyu gri, camgöbeği mavi / yeşil ve koyu macenta mor / pembe / lavanta gibi göründüğünü unutmayın.

Renkleri göstermek için komut dosyası

#!/bin/bash# For LS_COLORS, print type and description in the relevant color.declare -A descriptions=(    [bd]="block device"    [ca]="file with capability"    [cd]="character device"    [di]="directory"    [do]="door"    [ex]="executable file"    [fi]="regular file"    [ln]="symbolic link"    [mh]="multi-hardlink"    [mi]="missing file"    [no]="normal non-filename text"    [or]="orphan symlink"    [ow]="other-writable directory"    [pi]="named pipe, AKA FIFO"    [rs]="reset to no color"    [sg]="set-group-ID"    [so]="socket"    [st]="sticky directory"    [su]="set-user-ID"    [tw]="sticky and other-writable directory")IFS=:for ls_color in $LS_COLORS; do    color="${ls_color#*=}"    type="${ls_color%=*}"    # Add description for named types.    desc="${descriptions[$type]}"    # Separate each color with a newline.    if [[ $color_prev ]] && [[ $color != "$color_prev" ]]; then        echo    fi    printf "\e[%sm%s%s\e[m " "$color" "$type" "${desc:+ ($desc)}"    # For next loop    color_prev="$color"doneecho

Varsayılan ayar ile çıktı:

gnome-terminal screenshot - default

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

gnome-terminal screenshot - custom

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

Renkler ve açıklamalar 14.04 ile 17.10 arasında aynıdır.

Eğer yazarsan dircolors (echo $LS_COLORS ayrıca çalışır) komut satırından, 1 satırda çok sayıda dosya türü için kodların ve renklerin bir listesini alırsınız. dircolors --print-database onlara bir seferde 1 satır gösterir. İşte kısa bir liste (en önemlilerini koymaya çalıştım). En altta, her satırın sonundaki farklı kodların neyi temsil ettiğine dair bir açıklama var:

NORMAL 00 # genel varsayılan, her şey bir şey olmalı.DOSYA 00 # normal dosya 01;34 # directoryLİNK 01;36 # sembolik bağ. (Bunu bir # sayısal değer yerine 'hedef' olarak ayarlarsanız, işaret edilen dosya için renk aynıdır.) FIFO 40; 33 # pipeSOCK 01; 35 # socketDOOR 01; 35 # doorBLK 40; 33;01 # block device driverCHR 40; 33;01 # character device driverORPHAN 40; 31; 01 # varolmayan dosyaya sembolik bağlantı veya stat'able olmayan fileSETUID 37; 41 # setuıd olan dosya (u + s) SETGID 30; 43 # setgıd olan dosya (g + s) STİCKY_OTHER_WRİTABLE 30; 42 # yapışkan ve diğer yazılabilir dir (+ t, o + w) OTHER_WRİTABLE 34; 42 # diğer yazılabilir dir (o + w) ve stickySTİCKY değil 37; 44 # dır, yapışkan bit kümesiyle (+ t) ve diğer yazılabilir # arşivlerle veya sıkıştırılmış (parlak kırmızı) değil.katran 01;31.tgz 01;31 # görüntü formatları.jpg 01;35.jpeg 01;35.gıf 01;35.bmp 01;35 # ses formatları.aac 00;36.flac 00;36.ögg 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
  • Arka plan renk kodları: 40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white

Bununla oynamak istiyorsanız, bir dosya için bir rengin nasıl ayarlanacağına dair bir örnek:

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

Bu ayarlanacak *.ogg ve .mp3 -e doğru bold magenta. Ve eğer içine koyarsan .bashrc dosya kalıcı hale gelecektir.

Buradaki cevapların hiçbiri Ubuntu'nun en son sürümlerindeki 256 renk seçeneğini içermiyor. Renk eksikliğim var (bazı renkler bana yakın sorun veriyor), bu yüzden siyah üzerindeki varsayılan mavi dizini okumak benim için çok zor. Bunu değiştirmek için benim araştırmam takip ediyor.

Tip dircolors -p |less geçerli renk kodunuzu görmek için.

Gelmeme .bashrc, yalnızca sistem renk kodundan yararlanmak için değil, aynı zamanda ~/ içinde bir tane de yapılandırılmalıdır.bu nedenle, dircolors çıktısını dircolors'a dökün.dircolor, böylece bu komutu kullanarak başlayabilirsiniz.dircolors -p > ~/.dircolors

Alternatif: çok benzer bir 256 renk dircolors pick up seebi güneşlendi. proje.

Tut şunu. en renkli komut dosyası ve komutla çalıştırın colortest -w böylece tüm renkleri aynı anda görebilirsiniz. Bir renk seçin. Turuncu # 208'i seviyorum. Bunun metin rengi olmasını istiyorum, bu yüzden bu bilgiyi genişletilmiş renk kodlarında kullanarak bunu uygulayabilirim.

Demek bir rengin var, şimdi ne olacak. Önce dizeyi oluşturmalıyız.

İlk sayı, büyük olasılıkla 00 olan bir öznitelik kodu olacaktır, ancak yanıp sönmesini istiyorsanız 05 ile gidin:

Bir öznitelik kodu seçin: 00 = yok 01 = kalın 04 = alt çizgi 05= yanıp sönme 07 = ters 08 = gizli

Sonraki seçim ekle ;38;5; 00;38; 5 almak için metin renginizi belirtmek için bu öznitelik koduna; ve sonra renginizi ekleyin. 208'i seçtim, böylece 00;38;5;208.

Üzerine bir arka plan da koymak istiyorsanız, colortest komut dosyasıyla başka bir renk seçin (56 diyelim) ve ekle ;48;5; arka plan için ve 56 renk için toplam bir dize elde etmek için 00;38;5;208;48;5;56.

Şimdi sende, onunla ne yapacaksın?

vim ~/.dircolors ve yukarıda belirlediğimiz dizeye (benim için DİR) değiştirmek istediğiniz bölümü bulun "00;38;5;208".

Bu hemen geçerli olmayacak, yapılandırmayı yüklemeniz gerekecek. Kullanmak dircolors ~/.dircolors LS_COLORS değişkeninizi ayarlamak için get koduna. Bunu terminal oturumunuza yapıştırabilir veya terminalinizi kapatıp yeniden açabilirsiniz. Bunu bir dosyaya da aktarabilir ve bir kabuk betiği olarak çalıştırabilirsiniz.

Aynı işlemi 16 renkle yapabilirsiniz. Özel;38; 5 veya;48; 5 malzemelerine ihtiyacınız yok. Sadece sayıları dizeye atın ve sadeliğin tadını çıkarın.

Sayesinde Ve ve seebi bu konudaki notları ve kodları için.