So ändern Sie die Farbe Ihres Linux-Terminals

Sie können Ihrem Linux-Terminal mit speziellen ANSI-Kodierungseinstellungen Farbe hinzufügen, entweder dynamisch in einem Terminalbefehl oder in Konfigurationsdateien, oder Sie können vorgefertigte Themen in Ihrem Terminalemulator verwenden. In jedem Fall ist der nostalgische grüne oder bernsteinfarbene Text auf einem schwarzen Bildschirm völlig optional. Dieser Artikel zeigt, wie Sie Linux so bunt (oder einfarbig) machen können, wie Sie wollen.

Terminal-Fähigkeiten

Moderne Systeme sind normalerweise mindestens auf xterm-256color voreingestellt, aber wenn Sie erfolglos versuchen, Ihrem Terminal Farbe hinzuzufügen, sollten Sie Ihre TERM-Einstellung überprüfen.

Historisch gesehen waren Unix-Terminals buchstäblich genau das: physische Punkte am buchstäblichen Endpunkt (Terminierung) eines gemeinsam genutzten Computersystems, wo Benutzer Befehle eingeben konnten. Sie unterschieden sich von den Fernschreibern (weshalb wir auch heute noch /dev/tty-Geräte in Linux haben), die oft dazu benutzt wurden, Befehle aus der Ferne einzugeben. Terminals hatten CRT-Monitore eingebaut, so dass die Benutzer an einem Terminal in ihrem Büro sitzen und direkt mit dem Großrechner interagieren konnten. Röhrenmonitore waren teuer – sowohl in der Herstellung als auch in der Steuerung; es war einfacher, einen Computer groben ASCII-Text ausspucken zu lassen, als sich um Anti-Aliasing und andere Feinheiten zu kümmern, die für moderne Informatiker selbstverständlich sind. Die technologische Entwicklung schritt jedoch auch damals schnell voran, und es wurde schnell klar, dass bei der Entwicklung neuer Videoterminals neue Funktionen optional verfügbar sein mussten.

Zum Beispiel unterstützte der schicke neue VT100, der 1978 auf den Markt kam, ANSI-Farbe, so dass ein Computer Farbausgaben liefern konnte, wenn ein Benutzer den Terminaltyp als vt100 identifizierte, während ein einfaches serielles Gerät diese Option nicht hatte. Das gleiche Prinzip gilt auch heute noch, und es wird durch die Umgebungsvariable TERM festgelegt. Sie können Ihre TERM-Definition mit echo:

$ echo $TERM
xterm-256color

überprüfen. Die veraltete (aber auf einigen Systemen im Interesse der Abwärtskompatibilität noch beibehaltene) Datei /etc/termcap definierte die Fähigkeiten von Terminals und Druckern. Die moderne Version davon ist terminfo, die sich je nach Distribution entweder in /etc oder /usr/share befindet. Diese Dateien listen die Funktionen verschiedener Terminals auf, von denen viele durch historische Hardware definiert sind: Es gibt Definitionen für vt100 bis vt220 sowie für moderne Softwareemulatoren wie xterm und Xfce. Der meisten Software ist es egal, welchen Terminaltyp Sie verwenden; in seltenen Fällen kann es vorkommen, dass Sie eine Warnung oder einen Fehler über einen falschen Terminaltyp erhalten, wenn Sie sich bei einem Server anmelden, der die Kompatibilität prüft. Wenn Ihr Terminal auf ein Profil mit sehr wenigen Funktionen eingestellt ist, Sie aber wissen, dass der von Ihnen verwendete Emulator mehr kann, dann können Sie Ihre Einstellung ändern, indem Sie die Umgebungsvariable TERM definieren. Sie können dies tun, indem Sie die TERM-Variable in Ihre ~/.bashrc-Konfigurationsdatei exportieren:

export TERM=xterm-256color

Speichern Sie die Datei und laden Sie Ihre Einstellungen neu:

$ source ~/.bashrc

ANSI-Farbcodes

Moderne Terminals haben ANSI-Escape-Sequenzen für “Meta”-Funktionen übernommen. Dabei handelt es sich um spezielle Zeichensequenzen, die von einem Terminal als Aktionen anstelle von Zeichen interpretiert werden. Diese Sequenz löscht beispielsweise den Bildschirm bis zum nächsten Prompt:

$ printf `3 

Or you can use dircolors directly:

$ dircolors --print-database

# image formats
.jpg 01;35
.jpeg 01;35
.mjpg 01;35
.mjpeg 01;35
.gif 01;35
.bmp 01;35
.pbm 01;35
.tif 01;35
.tiff 01;35

If that looks cryptic, it’s because it is. The first digit after a file type is the attribute code, and it has six options:

  • 00 none
  • 01 bold
  • 04 underscore
  • 05 blink
  • 07 reverse
  • 08 concealed

The next digit is the color code in a simplified form. You can get the color code by taking the final digit of the ANSII code (32 for green foreground, 42 for green background; 31 or 41 for red, and so on).

Your distribution probably sets LS_COLORS globally, so all users on your system inherit the same colors. If you want a customized set of colors, you can use dircolors for that. First, generate a local copy of your color settings:

$ dircolors --print-database > ~/.dircolors

Bearbeiten Sie Ihre lokale Liste wie gewünscht. Wenn Sie mit Ihrer Auswahl zufrieden sind, speichern Sie die Datei. Ihre Farbeinstellungen sind nur eine Datenbank und können nicht direkt von ls verwendet werden, aber Sie können dircolors verwenden, um Shellcode zu erhalten, den Sie verwenden können, um LS_COLORS zu setzen:

$ dircolors --bourne-shell ~/.dircolors
LS_COLORS='rs=0:di=01;34:ln=01;36:mh=00:
pi=40;33:so=01;35:do=01;35:bd=40;33;01:
cd=40;33;01:or=40;31;01:mi=00:su=37;41:
sg=30;43:ca=30;41:tw=30;42:ow=34;

export LS_COLORS

Kopieren Sie diese Ausgabe und fügen Sie sie in Ihre ~/.bashrc-Datei ein und laden Sie sie erneut. Alternativ können Sie diese Ausgabe auch direkt in Ihre .bashrc-Datei kopieren und neu laden.

$ dircolors --bourne-shell ~/.dircolors >> ~/.bashrc
$ source ~/.bashrc

Sie können die Bash auch dazu bringen, .dircolors beim Start aufzulösen, anstatt die Konvertierung manuell durchzuführen. Realistischerweise werden Sie die Farben wahrscheinlich nicht oft ändern, so dass dies zu aggressiv sein könnte, aber es ist eine Option, wenn Sie planen, Ihr Farbschema häufig zu ändern. Fügen Sie diese Regel in Ihre .bashrc-Datei ein:

] && eval "`dircolors --sh $HOME/.dircolors`"

Sollten Sie eine .dircolors-Datei in Ihrem Home-Verzeichnis haben, wertet Bash diese beim Start aus und setzt LS_COLORS entsprechend.

Color

Farben in Ihrem Terminal sind eine einfache Möglichkeit, sich eine schnelle visuelle Referenz für bestimmte Informationen zu geben. Allerdings sollten Sie sich nicht zu sehr auf sie verlassen. Schließlich sind Farben nicht universell, und wenn jemand anderes Ihr System benutzt, sieht er die Farben vielleicht nicht so wie Sie. Wenn Sie eine Vielzahl von Werkzeugen für die Interaktion mit Computern verwenden, könnten Sie außerdem feststellen, dass einige Terminals oder Remote-Verbindungen nicht die Farben bereitstellen, die Sie erwarten (oder überhaupt Farben).

Abgesehen von diesen Warnungen können Farben in einigen Arbeitsabläufen nützlich sein und Spaß machen, also erstellen Sie eine .dircolor-Datenbank und passen Sie sie nach Belieben an.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.