Wat betekenen de verschillende kleuren in Ubuntu's ls
commando? Bijvoorbeeld, als ik het ls
commando in een van mijn mappen typ, krijg ik een van de bestanden in lichtgroen, de andere (wat een map is) in blauw met groene highlighting.
Wat betekenen die kleuren, en is er een handleiding over al die kleuren?
Voor uw informatie:
Om de kleur uit te zetten, moet je de volgende regels in .bashrc
uitcommentariëren.
# schakel kleurenondersteuning van ls in en voeg ook handige aliassen toe
#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
Ook als u uw eigen bash kleurbetekenissen wilt zien, kopieer/plak dan de volgende codes in uw terminal.
<!-- taal: bash -->
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=:
voor i in $LS_COLORS
doe
echo -e "\e[${i#*=}m$( x=${i%=*}; [ "${!x}" ] && echo "${!x}" || echo "$x" )\e[m"
gedaan
}
Uitvoer:
Note:
man dir_colors
in terminal. Je kunt erachter komen welke kleuren ls
gebruikt door te kijken naar de $LS_COLORS
variabele:
Bovendien worden bestanden gekleurd volgens attributen:
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.
Al deze informatie staat in de uitvoer van dircolors --print-database
, maar de opmaak is nogal onleesbaar.
Hier's een technische uitleg van wat's er gebeurt:
Voorbeeld:
CHR 40;33;01
De kleurcode bestaat uit drie delen:
Het eerste deel voor de puntkomma geeft de tekststijl weer.
Het tweede en derde deel zijn de kleur en de achtergrondkleur:
Elk deel kan worden weggelaten, ervan uitgaande dat het links begint. d.w.z. "01" betekent vet, "01;31" betekent vet en rood. En je zou je terminal in kleur kunnen laten printen door de instructie te escapen met 33[
en te eindigen met een m
. 33, of 1B in hexadecimaal, is het ASCII teken "ESCAPE" (een speciaal teken in de ASCII karakterset). Voorbeeld:
"\33[1;31mHello World\33[m"
Drukt "Hello World" af in helder rood.
Het commando ls
met het argument --color=auto
(op Ubuntu is ls
een alias voor ls --color=auto
) doorloopt alle bestandsnamen en probeert eerst verschillende types te matchen, zoals Executable, Pipe enzovoort. Daarna probeert het overeen te komen met reguliere expressies zoals *.wav en drukt de resulterende bestandsnaam af, ingesloten in deze kleur veranderende instructies voor bash.
Als u dircolors
intypt (echo $LS_COLORS
werkt ook) vanaf de commandoregel, krijgt u een lijst met codes en kleuren voor veel bestandstypen op 1 regel. dircolors --print-database
toont ze 1 regel per keer. Hier is een korte lijst (ik heb geprobeerd de belangrijkste erin te zetten). Onderaan staat een uitleg over wat de verschillende codes aan het eind van elke regel betekenen:
NORMAL 00 # global default, hoewel alles iets zou moeten zijn. FILE 00 # normaal bestand DIR 01;34 # directory LINK 01;36 # symbolische link. (Als je dit op 'target' zet in plaats van een # numerieke waarde, is de kleur zoals voor het bestand waarnaar verwezen wordt). FIFO 40;33 # pijp SOCK 01;35 # socket DOOR 01;35 # deur BLK 40;33;01 # blok apparaatstuurprogramma CHR 40;33;01 # karakter apparaatstuurprogramma ORPHAN 40;31;01 # symlink naar niet-bestaand bestand, of niet-stat'kundig bestand SETUID 37;41 # bestand dat setuid is (u+s) SETGID 30;43 # bestand dat setgid is (g+s) STICKY_OTHER_WRITABLE 30;42 # dir die sticky en other-writable is (+t,o+w) OTHER_WRITABLE 34;42 # dir die overschrijfbaar is (o+w) en niet kleverig STICKY 37;44 # dir met de sticky bit ingesteld (+t) en niet other-writable # archieven of gecomprimeerd (helder rood) .tar 01;31 .tgz 01;31 # afbeeldingsformaten .jpg 01;35 .jpeg 01;35 .gif 01;35 .bmp 01;35 # audio-indelingen .aac 00;36 .flac 00;36 .ogg 00;36
00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed
30=zwart 31=rood 32=groen 33=geel 34=blauw 35=magenta 36=cyaan 37=wit
40=zwart 41=rood 42=groen 43=geel 44=blauw 45=magenta 46=cyaan 47=wit
Als je hier wat mee wilt spelen is hier een voorbeeld van hoe je een kleur instelt voor een bestand:
export LS_COLORS=$LS_COLORS:"*.ogg=01;35":"*.mp3=01;35"
Dit zal *.ogg
en .mp3
in bold magenta
zetten. En als je dit in je .bashrc
bestand zet, zal het permanent worden.