Hva betyr de forskjellige fargene i Ubuntus ls
-kommando? Når jeg for eksempel skriver kommandoen ls
i en av mappene mine, får jeg en av filene i lysegrønn, den andre (som er en mappe) i blått med grønn utheving.
Hva betyr disse fargene, og finnes det noen håndbok om alle fargene?
Til informasjon:
For å slå av fargen må du kommentere ut følgende linjer i .bashrc
.
# aktiver fargestøtte for ls og legg også til praktiske aliaser
#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 grep='grep --color=auto'
# alias fgrep='fgrep --color=auto'
# alias egrep='egrep --color=auto'
#fi
Hvis du også vil se dine egne bash-fargebetydninger, kan du kopiere / lime inn følgende koder i terminalen din.
<!-- språk: 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=:
for i in $LS_COLORS
do
echo -e "\e[${i#*=}m$( x=${i%=*}; [ "${!x}" ] && echo "${!x}" || echo "$x" )\e[m"
ferdig
}
Output:
Note:
man dir_colors
i terminalen. Du kan finne ut hvilke farger ls
bruker ved å se på variabelen $LS_COLORS
:
I tillegg fargelegges filene etter attributter:
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.
All denne informasjonen finnes i utdataene fra dircolors --print-database
, men formateringen er ganske uleselig.
Her er en teknisk forklaring på hva som skjer:
Eksempel:
CHR 40;33;01
Fargekoden består av tre deler:
Den første delen før semikolon representerer tekststilen.
Den andre og tredje delen er fargen og bakgrunnsfargen:
Hver del kan utelates, forutsatt at du starter til venstre. dvs. "01" betyr fet, "01;31" betyr fet og rød. Og du vil få terminalen til å skrive ut i farger ved å escape instruksjonen med \33[
og avslutte den med en m
. 33, eller 1B i heksadesimal, er ASCII-tegnet "ESCAPE" (et spesialtegn i ASCII-tegnsettet). Eksempel:
"\33[1;31mHello World\33[m"
Skriver ut "Hello World" i sterkt rødt.
Kommandoen ls
med argumentet --color=auto
(på Ubuntu er ls
et alias for ls --color=auto
) går gjennom alle filnavnene og prøver først å matche forskjellige typer, som Executable, Pipe og så videre. Deretter prøver den å matche regulære uttrykk som *.wav og skriver ut det resulterende filnavnet, vedlagt disse fargeskiftende instruksjonene for bash.
Hvis du skriver dircolors
(echo $LS_COLORS
fungerer også) fra kommandolinjen, får du en liste med koder og farger for mange filtyper på én linje. dircolors --print-database
viser dem 1 linje om gangen. Her er en kort liste (jeg prøvde å sette inn de viktigste). Nederst er det en forklaring om hva de forskjellige kodene på slutten av hver linje representerer:
NORMAL 00 # global standard, selv om alt skal være noe. FILE 00 # normal fil DIR 01;34 # katalog LINK 01;36 # symbolsk lenke. (Hvis du setter dette til 'mål' i stedet for en # numerisk verdi, er fargen den samme som for filen det pekes til). FIFO 40;33 # rør SOCK 01;35 # stikkontakt DOOR 01;35 # dør BLK 40;33;01 # driver for blokkeringsenhet CHR 40;33;01 # driver for tegn-enhet ORPHAN 40;31;01 # symlink til ikke-eksisterende fil, eller ikke-stat'lig fil SETUID 37;41 # fil som er setuid (u+s) SETGID 30;43 # fil som er setgid (g+s) STICKY_OTHER_WRITABLE 30;42 # dir som er sticky og other-writable (+t,o+w) OTHER_WRITABLE 34;42 # dir som kan skrives av andre (o+w) og ikke er sticky STICKY 37;44 # dir med klebrig bit satt (+t) og ikke skrivbar for andre # arkiver eller komprimert (lys rød) .tar 01;31 .tgz 01;31 # bildeformater .jpg 01;35 .jpeg 01;35 .gif 01;35 .bmp 01;35 # lydformater .aac 00;36 .flac 00;36 .ogg 00;36
00=ingen 01=fet 04=understreket 05=blink 07=omvendt 08=skjult
.30=svart 31=rød 32=grønn 33=gul 34=blå 35=magenta 36=cyan 37=hvit
.40=svart 41=rød 42=grønn 43=gul 44=blå 45=magenta 46=cyan 47=hvit
.Hvis du vil leke med dette, er her et eksempel på hvordan du angir en farge for en fil:
export LS_COLORS=$LS_COLORS:"*.ogg=01;35":"*.mp3=01;35"
Dette vil sette *.ogg
og .mp3
til fet magenta
. Og hvis du legger den i .bashrc
-filen din, blir den permanent.