Τι σημαίνουν τα διαφορετικά χρώματα στην εντολή ls
του Ubuntu; Για παράδειγμα, όταν πληκτρολογώ την εντολή ls
σε έναν από τους φακέλους μου, λαμβάνω ένα από τα αρχεία με ανοιχτό πράσινο χρώμα, το άλλο (που είναι φάκελος) με μπλε χρώμα με πράσινη επισήμανση.
Τι σημαίνουν αυτά τα χρώματα και υπάρχει κάποιο εγχειρίδιο για όλα τα χρώματα;
Για την ενημέρωσή σας:
bashrc`.
# ενεργοποιήστε την υποστήριξη χρώματος του ls και προσθέστε επίσης εύχρηστα ψευδώνυμα
#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
Επίσης, αν θέλετε να δείτε τις δικές σας σημασίες χρώματος bash,τότε αντιγράψτε/επικολλήστε τους παρακάτω κώδικες στο τερματικό σας.
<!-- language: 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",
done
}
Έξοδος:
Σημείωση:
man dir_colors
στο τερματικό. Μπορείτε να μάθετε τι χρώματα χρησιμοποιεί η ls
κοιτάζοντας τη μεταβλητή $LS_COLORS
:
Επιπλέον, τα αρχεία χρωματίζονται ανάλογα με τα χαρακτηριστικά τους:
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.
Όλες αυτές οι πληροφορίες περιέχονται στην έξοδο της εντολής dircolors --print-database
, αλλά η μορφοποίησή της είναι μάλλον δυσανάγνωστη.
Ακολουθεί μια τεχνική εξήγηση του τι συμβαίνει:
Παράδειγμα:
CHR 40;33;01
Ο κωδικός χρώματος αποτελείται από τρία μέρη:
Το πρώτο μέρος πριν από την άνω τελεία αντιπροσωπεύει το στυλ του κειμένου.
Το δεύτερο και το τρίτο μέρος είναι το χρώμα και το χρώμα φόντου:
Κάθε μέρος μπορεί να παραλειφθεί, υποθέτοντας ότι ξεκινά από τα αριστερά. π.χ. "01" σημαίνει έντονο, "01;31" σημαίνει έντονο και κόκκινο. Και θα μπορούσατε να κάνετε το τερματικό σας να εκτυπώσει έγχρωμο εκτυπωτή διαφυγής της εντολής με \33[
και τελειώνοντάς την με ένα m
. Το 33, ή 1B σε δεκαεξαδικό σύστημα, είναι το σύμβολο ASCII "ESCAPE" (ένας ειδικός χαρακτήρας στο σύνολο χαρακτήρων ASCII). Παράδειγμα:
"\33[1;31mHello World\33[m"
Εκτυπώνει το "Hello World" με έντονο κόκκινο χρώμα.
Η εντολή ls
με το όρισμα --color=auto
(στο Ubuntu, το ls
είναι ένα ψευδώνυμο για το ls --color=auto
) περνάει από όλα τα ονόματα αρχείων και προσπαθεί πρώτα να ταιριάξει με διαφορετικούς τύπους, όπως Executable, Pipe και ούτω καθεξής. Στη συνέχεια προσπαθεί να ταιριάξει με κανονικές εκφράσεις όπως *.wav και εκτυπώνει το όνομα αρχείου που προκύπτει, περικλείεται σε αυτές τις οδηγίες αλλαγής χρώματος για το bash.
Αν πληκτρολογήσετε dircolors
(το echo $LS_COLORS
λειτουργεί επίσης) από τη γραμμή εντολών, θα λάβετε μια λίστα κωδικών και χρωμάτων για πολλούς τύπους αρχείων σε 1 γραμμή. Το dircolors --print-database
τα εμφανίζει 1 γραμμή κάθε φορά. Εδώ είναι μια σύντομη λίστα (προσπάθησα να βάλω τα πιο σημαντικά). Στο κάτω μέρος υπάρχει μια εξήγηση σχετικά με το τι αντιπροσωπεύουν οι διαφορετικοί κωδικοί στο τέλος κάθε γραμμής:
<pre>, NORMAL 00 # παγκόσμια προεπιλογή, αν και όλα θα πρέπει να είναι κάτι. FILE 00 # κανονικό αρχείο DIR 01;34 # κατάλογος LINK 01;36 # συμβολικός σύνδεσμος. (Αν το ορίσετε αυτό σε 'target' αντί για ένα
FIFO 40;33 # σωλήνας SOCK 01;35 # υποδοχή DOOR 01;35 # πόρτα BLK 40;33;01 # οδηγός συσκευής μπλοκ CHR 40;33;01 # οδηγός συσκευής χαρακτήρων ORPHAN 40;31;01 # symlink σε ανύπαρκτο αρχείο, ή σε αρχείο που δεν μπορεί να καταχωρηθεί SETUID 37;41 # αρχείο που είναι setuid (u+s) SETGID 30;43 # αρχείο που είναι setgid (g+s) STICKY_OTHER_WRITABLE 30;42 # dir που είναι sticky και other-writable (+t,o+w) OTHER_WRITABLE 34;42 # dir that is other-writable (o+w) and not sticky STICKY 37;44 # dir με το sticky bit ρυθμισμένο (+t) και όχι other-writable
.tar 01;31 .tgz 01;31
.jpg 01;35 .jpeg 01;35 .gif 01;35 .bmp 01;35
.aac 00;36 .flac 00;36 .ogg 00;36 </pre>,
00=καμία 01=έντονη 04=υπογράμμιση 05=αναβοσβήνει 07=αντίστροφη 08=κρυφή
30=μαύρο 31=κόκκινο 32=πράσινο 33=κίτρινο 34=μπλε 35=ματζέντα 36=κυανό 37=λευκό
40=μαύρο 41=κόκκινο 42=πράσινο 43=κίτρινο 44=μπλε 45=ματζέντα 46=κυανό 47=λευκό
Αν θέλετε να παίξετε με αυτό εδώ είναι ένα παράδειγμα για το πώς να ορίσετε ένα χρώμα για ένα αρχείο:
export LS_COLORS=$LS_COLORS:"*.ogg=01;35":"*.mp3=01;35"
Αυτό θα θέσει τα *.ogg
και .mp3
σε bold magenta
. Και αν το βάλετε στο αρχείο σας .bashrc
θα γίνει μόνιμο.