GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So ändern Sie die Farbe Ihres Linux-Terminals

Sie können Ihrem Linux-Terminal Farbe hinzufügen, indem Sie spezielle ANSI-Codierungseinstellungen verwenden, entweder dynamisch in einem Terminalbefehl oder in Konfigurationsdateien, oder Sie können fertige Designs in Ihrem Terminalemulator verwenden. In jedem Fall ist der nostalgische grüne oder gelbe Text auf einem schwarzen Bildschirm völlig optional. Dieser Artikel zeigt, wie Sie Linux so farbenfroh (oder monochromatisch) gestalten können, wie Sie möchten.

Terminalfähigkeiten

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

Historisch gesehen waren Unix-Terminals buchstäblich das:physische Punkte am buchstäblichen Endpunkt (Terminierung) eines gemeinsam genutzten Computersystems, wo Benutzer Befehle eingeben konnten. Sie waren einzigartig gegenüber den Teletype-Maschinen (weshalb wir heute noch /dev/tty-Geräte in Linux haben), die oft verwendet wurden, um Befehle aus der Ferne auszugeben. Die Terminals hatten eingebaute CRT-Monitore, sodass die Benutzer an einem Terminal in ihrem Büro sitzen und direkt mit dem Mainframe interagieren konnten. CRT-Monitore waren teuer – sowohl in der Herstellung als auch in der Steuerung; Es war einfacher, einen Computer rohen ASCII-Text ausspucken zu lassen, als sich Gedanken über Anti-Aliasing und andere Feinheiten zu machen, die moderne Computeristen für selbstverständlich halten. Die technologischen Entwicklungen gingen jedoch schon damals schnell voran, und es wurde schnell deutlich, dass bei der Entwicklung neuer Videoanzeigeterminals neue Funktionen benötigt wurden, die optional verfügbar sein sollten.

Beispielsweise unterstützte der schicke neue VT100, der 1978 auf den Markt kam, ANSI-Farben. Wenn also ein Benutzer den Terminaltyp als vt100 identifizierte, konnte ein Computer eine Farbausgabe liefern, während ein einfaches serielles Gerät möglicherweise keine solche Option hatte. Das gleiche Prinzip gilt heute und wird durch die Umgebungsvariable TERM gesetzt. Sie können Ihre TERM-Definition mit echo überprüfen :

$ echo $TERM
xterm-256color

Weitere Linux-Ressourcen

  • Spickzettel für Linux-Befehle
  • Spickzettel für fortgeschrittene Linux-Befehle
  • Kostenloser Online-Kurs:RHEL Technical Overview
  • Spickzettel für Linux-Netzwerke
  • SELinux-Spickzettel
  • Spickzettel für allgemeine Linux-Befehle
  • Was sind Linux-Container?
  • Unsere neuesten Linux-Artikel

Die veraltete (aber auf manchen Systemen im Interesse der Abwärtskompatibilität noch gepflegte) 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 Funktionen auf, die in verschiedenen Arten von Terminals verfügbar sind, von denen viele durch historische Hardware definiert sind:Es gibt Definitionen für vt100 bis vt220 sowie für moderne Software-Emulatoren wie xterm und Xfce. Der meisten Software ist es egal, welchen Terminaltyp Sie verwenden; In seltenen Fällen erhalten Sie möglicherweise eine Warnung oder einen Fehler über einen falschen Terminaltyp, wenn Sie sich bei einem Server anmelden, der nach kompatiblen Funktionen sucht. Wenn Ihr Terminal auf ein Profil mit sehr wenigen Funktionen eingestellt ist, Sie aber wissen, dass der von Ihnen verwendete Emulator mehr kann, 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 geerbt. Dies sind spezielle Zeichenfolgen, die ein Terminal als Aktionen statt als Zeichen interpretiert. Diese Sequenz löscht beispielsweise den Bildschirm bis zur nächsten Eingabeaufforderung:

$ printf `\033[2J`

Es löscht nicht Ihren Verlauf; es löscht nur den Bildschirm in Ihrem Terminal-Emulator, also ist es eine sichere und demonstrative ANSI-Escape-Sequenz.

ANSI hat auch Sequenzen, um die Farbe Ihres Terminals einzustellen. Wenn Sie beispielsweise diesen Code eingeben, wird der nachfolgende Text grün:

$ printf '\033[32m'

Solange Sie Farben genauso sehen wie Ihr Computer, können Sie Farben verwenden, um sich daran zu erinnern, bei welchem ​​System Sie angemeldet sind. Wenn Sie beispielsweise regelmäßig SSH-Verbindungen zu Ihrem Server herstellen, können Sie Ihre Server-Eingabeaufforderung auf Grün setzen, damit Sie sie auf einen Blick von Ihrer lokalen Eingabeaufforderung unterscheiden können. Verwenden Sie für eine grüne Eingabeaufforderung den ANSI-Code für Grün vor Ihrem Eingabeaufforderungszeichen und beenden Sie ihn mit dem Code, der Ihre normale Standardfarbe darstellt:

export PS1=`printf "\033[32m$ \033[39m"`

Vordergrund und Hintergrund

Sie sind nicht darauf beschränkt, die Farbe Ihres Textes festzulegen. Mit ANSI-Codes können Sie die Hintergrundfarbe Ihres Textes steuern und einige rudimentäre Stylings vornehmen.

Zum Beispiel mit \033[4m , können Sie Text unterstreichen lassen, oder mit \033[5m Sie können es so einstellen, dass es blinkt. Das mag zunächst albern erscheinen – weil Sie Ihr Terminal wahrscheinlich nicht so einstellen werden, dass es den ganzen Tag Text unterstreicht und blinkt –, aber es kann für ausgewählte Funktionen nützlich sein. Beispielsweise könnten Sie einen dringenden Fehler, der von einem Shell-Skript erzeugt wird, blinken lassen (als Warnung für Ihren Benutzer), oder Sie könnten eine URL unterstreichen.

Zu Ihrer Information finden Sie hier die Farbcodes für Vorder- und Hintergrund. Vordergrundfarben liegen im Bereich 30, Hintergrundfarben im Bereich 40:

Farbe Vordergrund Hintergrund
Schwarz \033[30m \033[40m
Rot \033[31m \033[41m
Grün \033[32m \033[42m
Orange \033[33m \033[43m
Blau \033[34m \033[44m
Magenta \033[35m \033[45m
Cyan \033[36m \033[46m
Hellgrau \033[37m \033[47m
Fallback zum Standard der Distribution \033[39m \033[49m

Für den Hintergrund stehen einige zusätzliche Farben zur Verfügung:

Farbe Hintergrund
Dunkelgrau \033[100m
Hellrot \033[101m
Hellgrün \033[102m
Gelb \033[103m
Hellblau \033[104m
Helllila \033[105m
Blaugrün \033[106m
Weiß \033[107m

Permanenz

Das Festlegen von Farben in Ihrer Terminalsitzung ist nur vorübergehend und relativ bedingungslos. Manchmal hält der Effekt einige Zeilen an; Das liegt daran, dass diese Methode zum Festlegen von Farben auf einer printf-Anweisung beruht, um einen Modus festzulegen, der nur so lange besteht, bis etwas anderes ihn überschreibt.

Die Art und Weise, wie ein Terminalemulator normalerweise Anweisungen darüber erhält, welche Farben zu verwenden sind, stammt von den Einstellungen der Umgebungsvariablen LS_COLORS, die wiederum von den Einstellungen von dircolors gefüllt wird. Sie können Ihre aktuellen Einstellungen mit einer Echo-Anweisung anzeigen:

$ echo $LS_COLORS
rs=0:di=38;5;33:ln=38;5;51:mh=00:pi=40;
38;5;11:so=38;5;13:do=38;5;5:bd=48;5;
232;38;5;11:cd=48;5;232;38;5;3:or=48;
5;232;38;5;9:mi=01;05;37;41:su=48;5;
196;38;5;15:sg=48;5;11;38;5;16:ca=48;5;
196;38;5;226:tw=48;5;10;38;5;16:ow=48;5;
[...]

Oder Sie können dircolors direkt verwenden:

$ 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
[...]

Wenn das kryptisch aussieht, liegt es daran, dass es so ist. Die erste Ziffer nach einem Dateityp ist der Attributcode und hat sechs Optionen:

  • 00 keine
  • 01 fett
  • 04 Unterstrich
  • 05 Blinzeln
  • 07 rückwärts
  • 08 verborgen

Die nächste Ziffer ist der Farbcode in vereinfachter Form. Sie erhalten den Farbcode, indem Sie die letzte Ziffer des ANSII-Codes nehmen (32 für grünen Vordergrund, 42 für grünen Hintergrund; 31 oder 41 für rot usw.).

Ihre Distribution setzt wahrscheinlich LS_COLORS global, sodass alle Benutzer auf Ihrem System dieselben Farben erben. Wenn Sie einen benutzerdefinierten Farbsatz wünschen, können Sie dafür dircolors verwenden. Erstellen Sie zunächst eine lokale Kopie Ihrer Farbeinstellungen:

$ 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, mit dem Sie LS_COLORS setzen können:

$ 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, fügen Sie sie in Ihre ~/.bashrc-Datei ein und laden Sie sie neu. Alternativ können Sie diese Ausgabe direkt in Ihre .bashrc-Datei kopieren und neu laden.

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

Sie können Bash auch dazu bringen, .dircolors beim Start aufzulösen, anstatt die Konvertierung manuell durchzuführen. Realistisch gesehen werden Sie die Farben wahrscheinlich nicht oft ändern, daher kann dies zu aggressiv sein, aber es ist eine Option, wenn Sie vorhaben, Ihr Farbschema häufig zu ändern. Fügen Sie in Ihrer .bashrc-Datei diese Regel hinzu:

[[ -e $HOME/.dircolors ]] && 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.

Farbe

Farben in Ihrem Terminal sind eine einfache Möglichkeit, sich eine schnelle visuelle Referenz für bestimmte Informationen zu verschaffen. Sie sollten sich jedoch nicht zu stark auf sie stützen. Schließlich sind Farben nicht universell. Wenn also jemand anderes Ihr System verwendet, sieht er die Farben möglicherweise nicht so wie Sie. Wenn Sie eine Vielzahl von Tools verwenden, um mit Computern zu interagieren, stellen Sie außerdem möglicherweise fest, dass einige Terminals oder Remote-Verbindungen nicht die Farben liefern, die Sie erwarten (oder Farben überhaupt nicht).

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 Herzenslust an.


Linux
  1. Wie tmux Freude in Ihrem Linux-Terminal macht

  2. Wie Sie Ihrem Linux-Terminal Glück bringen

  3. So durchsuchen Sie das Web vom Terminal unter Linux

  4. So ändern Sie die Identität eines Linux-Systems

  5. So ändern Sie die Standard-Shell in Linux

So ändern Sie Ihren Hostnamen unter Linux

So ändern Sie die Ausgabefarbe von „Echo“ in Linux

So ändern Sie die Standard-Shell im Linux-System

Wie ändere ich das Partitionsschema auf Ihrem Linux-Server?

So ändern Sie das Root-Passwort unter Linux

So ändern Sie das GRUB-Splash-Bild, den Hintergrund und die Schriftfarbe auf Ihrem Linux