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?
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ą.
<!-- kalba: bash -->
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:
man dir_colors
. Galite sužinoti, kokias spalvas naudoja ls
, pažiūrėję į kintamąjį $LS_COLORS
:
Be to, failai spalvinami pagal atributus:
aac, au, flac, mid, midi, mka, mp3, mpc, ogg, ra, wav, axa, oga, spx, xspf.
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.
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ų.
Antroji ir trečioji dalys yra spalva ir fono spalva:
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ų.
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
00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed
30=juoda 31=raudona 32=žalia 33=geltona 34=mėlyna 35=magenta 36=žydra 37=balta
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.