Ką reiškia skirtingos ls spalvos?

Ką reiškia skirtingos "Ubuntu" komandos ls spalvos? Pavyzdžiui, kai įvedu ls komandą viename iš savo aplankų, vienas iš failų yra šviesiai žalias, o kitas (kuris yra aplankas) - mėlynas su žaliu paryškinimu.

Ką reiškia šios spalvos ir ar yra koks nors visų spalvų vadovas?

Sprendimas
  • Mėlyna: Katalogas
  • žalias: Vykdomas arba atpažįstamas duomenų failas
  • Mėlyna: Simbolinių nuorodų failas
  • Geltona su juodu fonu: Įrenginys
  • Rausvas: Grafinio vaizdo failas
  • Raudona: Archyvinis failas
  • Raudona su juodu fonu: Neveikianti nuoroda

Jūsų informacija:

  • Jei norite išjungti spalvą, turite pakomentuoti šias .bashrc eilutes.

      # įjunkite ls spalvų palaikymą ir pridėkite patogius slapyvardžius
      #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
  • Taip pat, jei norite matyti savo bash spalvų reikšmes,tuomet nukopijuokite/įklijuokite šiuos kodus į terminalą.

      eval $(echo "no:global default;fi:normalus failas;di:katalogas;ln:simbolinė nuoroda;pi:įvardytas vamzdis;so:lizdas;do:durys;bd:blokinis įrenginys;cd:simbolinis įrenginys;or:našlaičių simbolinė nuoroda;mi: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"
        atlikta
      }

Išvestis:

Pastaba:

  • Norėdami gauti daugiau informacijos, terminale įveskite man dir_colors.
Komentarai (8)

Galite sužinoti, kokias spalvas naudoja ls, pažiūrėję į kintamąjį $LS_COLORS:

  • Turkio spalva: garso failai1
  • Ryškiai raudona: Archyvai ir suspausti failai2
  • Violetinė: vaizdai ir vaizdo įrašai3

Be to, failai spalvinami pagal atributus:


  1. aac, au, flac, mid, 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, jar, rar, ace, zoo, cpio, 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.


Visa ši informacija pateikiama dircolors --print-database išvestyje, tačiau jos formatas gana neįskaitomas.

Čia pateikiamas techninis paaiškinimas, kas vyksta:

Pavyzdys:

CHR 40;33;01

Spalvų kodą sudaro trys dalys:

  • Pirmoji dalis prieš kabliataškį reiškia teksto stilių.

    • 00=vienas, 01= paryškintas, 04=uždengtas, 05= mirksintis, 07=atvirkštinis, 08= paslėptas.
  • Antroji ir trečioji dalys yra spalva ir fono spalva:

    • 30=juoda, 31=raudona, 32=žalia, 33=geltona, 34=mėlyna, 35=magenta, 36=žydra, 37=balta.

Kiekvieną dalį galima praleisti, darant prielaidą, kad pradedama iš kairės, t. y. "01" reiškia paryškintą, "01;31" reiškia paryškintą ir raudoną. Terminale spausdinti spalvotai galima instrukciją išbraukus su \33[ ir užbaigus ją su m. 33 arba 1B šešioliktainėje skaičiavimo sistemoje yra ASCII ženklas "ESCAPE" (specialus ASCII simbolių rinkinio ženklas). Pavyzdys:

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

Spausdina "Hello World" ryškiai raudona spalva.

Komanda ls su argumentu --color=auto (Ubuntu sistemoje ls yra ls --color=auto slapyvardis) peržiūri visus failų pavadinimus ir pirmiausia bando suderinti skirtingus tipus, pavyzdžiui, Executable, Pipe ir pan. Tada bando suderinti reguliarias išraiškas, pavyzdžiui, *.wav, ir išspausdina gautą failo pavadinimą, pridėtą prie šių bash spalvą keičiančių instrukcijų.

Komentarai (1)

Jei komandinėje eilutėje įrašysite dircolors (taip pat veikia echo $LS_COLORS), vienoje eilutėje gausite daugybės failų tipų kodų ir spalvų sąrašą. dircolors --print-database rodo juos po 1 eilutę. Čia pateikiamas trumpas sąrašas (stengiausi įrašyti svarbiausius). Apačioje yra paaiškinimas, ką reiškia skirtingi kodai kiekvienos eilutės pabaigoje:

NORMAL 00 # visuotinis numatytasis nustatymas, nors viskas turėtų būti kažkas.
FILE 00 # normalus failas
DIR 01;34 # katalogas
LINK 01;36 # simbolinė nuoroda. (Jei nustatysite 'target', o ne
 # skaitinę reikšmę, spalva bus tokia, kaip failo, į kurį nurodoma.)
FIFO 40;33 # vamzdis
SOCK 01;35 # lizdas
DOOR 01;35 # durys
BLK 40;33;01 # bloko įrenginio tvarkyklė
CHR 40;33;01 # simbolių įrenginio tvarkyklė
ORPHAN 40;31;01 # symlink į neegzistuojantį failą arba nestatutinį failą
SETUID 37;41 # failas, kuris yra setuid (u+s)
SETGID 30;43 # failas, kuris yra setgid (g+s)
STICKY_OTHER_WRITABLE 30;42 # dir, kuris yra lipnus ir kitaip rašomas (+t,o+w)
OTHER_WRITABLE 34;42 # dir, kuris yra kitas rašomas (o+w) ir nėra "sticky
STICKY 37;44 # dir su nustatytu "sticky" bitu (+t), bet ne kitaip rašomas
# archyvai arba suspaustas (ryškiai raudona spalva)
.tar 01;31
.tgz 01;31
# vaizdų formatai
.jpg 01;35
.jpeg 01;35
.gif 01;35
.bmp 01;35
# garso formatai
.aac 00;36
.flac 00;36
.ogg 00;36
  • Atributų kodai: 00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed
  • Teksto spalvų kodai: 30=juoda 31=raudona 32=žalia 33=geltona 34=mėlyna 35=magenta 36=žydra 37=balta
  • Fono spalvos kodai: 40=juoda 41=raudona 42=žalia 43=geltona 44=mėlyna 45=magenta 46=žydra 47=balta

Jei norite su tuo pažaisti, pateikiame pavyzdį, kaip nustatyti spalvą faile:

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

Taip *.ogg ir .mp3 bus nustatyta bold magenta spalva. Jei tai įrašysite į savo .bashrc failą, tai taps nuolatine spalva.

Komentarai (4)