So konfigurieren Sie die ANSI-Farben des Befehlszeilenterminals

So konfigurieren Sie die ANSI-Farben des Befehlszeilenterminals

Ich verwende Bash insbesondere unter Mac OS X, aber ich glaube, die Antwort wäre Unix-generell.

Ich verwende bereits ANSI-Farben, möchte aber Ordnern, versteckten Dateien usw. andere Farben zuweisen.

Update: Dies war nicht so nützlich wie erwartet, da man versteckten Dateien keine bestimmte Farbe zuweisen kann und Verzeichnisse auch nicht immer die gleiche Farbe haben können, da die Farbe der Sticky Permission Bits Vorrang vor den Verzeichnissen hat (olivgrün im Screenshot).

Antwort1

Ändern Sie Ihr ~/.profile wie folgt. Sie können dies auch in Ihr ~/.bashrc oder ~/.bash_profile einfügen, je nachdem, was Sie bereits haben und verwenden. HINWEIS: Dies zeigt die Standardfarbeinstellung. Ändern Sie das erste e in ein B, wenn Sie rote Verzeichnisse sehen möchten.

    LSCOLORS=exfxcxdxbxegedabagacad

    export LSCOLORS

    export CLICOLOR=1    

Speichern Sie Ihre ~/.profile und führen Sie dann Folgendes aus:

    . .profile

Von der Befehlszeile aus.

Hier sind die verschiedenen Farbeinstellungen und die Reihenfolge der Attribute aus der Manpage „ls“:

LSCOLORS        The value of this variable describes what color to use for which attribute when colors are enabled with CLICOLOR.  This string is a
                 concatenation of pairs of the format fb, where f is the foreground color and b is the background color.
                 The color designators are as follows:

                       a     black
                       b     red
                       c     green
                       d     brown
                       e     blue
                       f     magenta
                       g     cyan
                       h     light grey
                       A     bold black, usually shows up as dark grey
                       B     bold red
                       C     bold green
                       D     bold brown, usually shows up as yellow
                       E     bold blue
                       F     bold magenta
                       G     bold cyan
                       H     bold light grey; looks like bright white
                       x     default foreground or background

                 Note that the above are standard ANSI colors.  The actual display may differ depending on the color capabilities of the terminal in
                 use.

                 The order of the attributes are as follows:

                       1.   directory
                       2.   symbolic link
                       3.   socket
                       4.   pipe
                       5.   executable
                       6.   block special
                       7.   character special
                       8.   executable with setuid bit set
                       9.   executable with setgid bit set
                       10.  directory writable to others, with sticky bit
                       11.  directory writable to others, without sticky bit

                 The default is "exfxcxdxbxegedabagacad", i.e. blue foreground and default background for regular directories, black foreground and red
                 background for setuid executables, etc.

Antwort2

Mit dem Befehl dircolors(1) können Sie einen Befehl generieren, den Sie in Ihrem Shell-Startskript auswerten können, um die Umgebungsvariable LS_COLORS zu setzen, die /bin/ls mitteilt, wie seine Ausgabe eingefärbt werden soll. Details finden Sie unterhttp://linux.die.net/man/5/dir_colors.

verwandte Informationen