Bald ist Neujahr, da hat man keine Lust mehr an ernsthafte Arbeiten zu denken.
Alle versuchen, etwas für die Feiertage zu dekorieren: das Haus, das Büro, den Arbeitsplatz... Lassen Sie uns auch etwas verschönern! Zum Beispiel die Eingabeaufforderung. In gewisser Weise ist die Eingabeaufforderung auch ein Arbeitsplatz.
In einigen Distributionen ist sie bereits "verschönert":

In anderen ist sie grau und unauffällig:

Und wir können zum Beispiel so etwas machen:

Natürlich sind die Geschmäcker verschieden. Wenn Ihnen eine solche Gestaltung geschmacklos und unangemessen erscheint, wissen Sie, dass diese Sichtweise absolut berechtigt ist. Und wenn auch Sie etwas von der festlichen Stimmung hinzufügen möchten, lesen Sie weiter einen kleinen Neujahrsartikel von Cloud4Y.
Zuerst erkläre ich, wie die Terminalausgabe "verschönert" wird. Dies geschieht mithilfe von Escape-Sequenzen. Genauer gesagt, von Steuersequenzen des ANSI/VT100-Terminals. Dies bedeutet automatisch, dass Ihr Terminalemulator diesen Standard unterstützen muss, sonst gibt es kein weihnachtliches Wunder. Und ja, es wird vorausgesetzt, dass $SHELL bash ist.
Diese Befehle werden Escape-Sequenzen genannt, weil zu Beginn jeder von ihnen das ASCII-Zeichen „Escape“ steht. Es gibt viele Steuersequenzen, und sie ermöglichen es beispielsweise, Terminaleinstellungen anzuzeigen, die Anzeige und Cursorbewegung zu steuern, Schriftarten zu ändern, Text zu löschen und zu verbergen. Von all den Möglichkeiten wählen wir eine aus – die Änderung der Text- und Hintergrundfarbe.
Führen Sie die Steuersequenz aus *ESC*[{attr1};...;{attrn}m
Als Symbol Escape wird seine oktale Form verwendet, das heißt 33. Was die Attribute betrifft, hier ist eine kurze Liste möglicher Werte:
0 Alle Attribute zurücksetzen
1 Bright (erhöhte Helligkeit)
2 Dim (gedämpft)
4 Underscore (Unterstreichung)
5 Blink (Blinken)
7 Reverse (Umkehrung)
8 Hidden (Text verbergen)
Foreground Colours (Schriftfarbe, mit dieser Farbe wird der Text angezeigt):
30 Black (schwarz)
31 Red (rot)
32 Green (grün)
33 Yellow (gelb)
34 Blue (blau)
35 Magenta (purpur)
36 Cyan (cyan)
37 White (weiß)
Background Colours (Papierfarbe oder Hintergrundfarbe):
40 Black (schwarz)
41 Red (rot)
42 Green (grün)
43 Yellow (gelb)
44 Blue (blau)
45 Magenta (purpur)
46 Cyan (cyan)
47 White (weiß)
Bitte beachten Sie, wenn Sie jetzt im Terminal den Befehl eingeben: echo 33[0;31mein Text 33[0m’
… dann erhalten Sie erwartungsgemäß ein monochromes Kauderwelsch:

Warum? Weil Sie die erweiterten Funktionen des Befehls echo aktivieren mussten. Es reicht aus, einen kleinen Parameter hinzuzufügen: echo -e '33[0;31mSome text 33[0m'
Jetzt wird die Ausgabe korrekt angezeigt:
![]()
Wir haben die Ausgabe im Terminal angepasst. Schauen wir nun, wie wir die Eingabeaufforderung farbig gestalten können.
Das erfolgt durch die Änderung der PS1-Variable. Diese Variable ist für die Eingabeaufforderung verantwortlich. Ihr Aussehen kann ebenfalls geändert werden, unter anderem durch Escape-Sequenzen. Allerdings gibt es einen kleinen Unterschied: Die Sequenz muss mit dem Zeichen “ beginnen,[und mit dem Zeichen “ enden,]sonst wird sie im Terminal angezeigt.
Alle möglichen Befehlssequenzen sind ausführlich im Bash-Handbuch aufgeführt, daher schlage ich den Lesern vor, selbst zu wählen, was sie in der Eingabeaufforderung sehen möchten. Als Beispiel gebe ich meinen PS1-Variablenwert an:
[ 33[34;1m]t[ 33[0m],[ 33[32m]u@l@h[ 33[0m]:[ 33[33m]W[ 33[0m],[ 33
[31m]![ 33[0m]$n
Ich entschlüssle diesen seltsamen Befehl:
[ 33[34;1m] — aktiviert eine hellblaue (zweiter Attribut) Schriftfarbe
t – zeigt die aktuelle Uhrzeit im Format HH:MM:SS an
[ 33[0m] – setzt die Schriftfarbe zurück
, — einfach ein Komma (überraschend, oder?)
[ 33[32m] — aktiviert die grüne Schriftfarbe
u@l@h – gibt den Benutzernamen, die Terminalgerät-Nummer und den kurzen Hostnamen aus, getrennt durch das Zeichen “@”
[ 33[0m] — setzt die Schriftfarbe erneut zurück
: — einfach ein Doppelpunkt (überraschend!)
[ 33[33m] — aktiviert die gelbe Schriftfarbe
W – zeigt den aktuellen Verzeichnismamen an
[ 33[0m] — setzt die Schriftfarbe wieder zurück
, — noch ein Komma (wer hätte das gedacht!)
[ 33[31m] — aktiviert die rote Schriftfarbe
! — gibt die Nummer des Befehls im Terminal aus
[ 33[0m] — nicht vergessen, die Schriftfarbe zurückzusetzen
$ — gibt “#” für root und “$” für alle anderen aus
n – Zeilenumbruch. Warum? Damit der Befehl am linken Rand des Fensters beginnt und nicht an der Position des Endes der Eingabeaufforderung.
Wo soll die Variable neu definiert werden? Am logischsten ist es in ~/.bashrc.
Das Aussehen der Eingabeaufforderung ist nur durch Ihre Fantasie begrenzt. Im Grunde genommen spricht nichts dagegen, mit den oben beschriebenen Werkzeugen die Eingabeaufforderung wie einen Weihnachtsbaum zu gestalten. Allerdings wird eine solche Einladung sehr unhandlich sein, und die Arbeit wird dadurch sicher nicht einfacher. Den Baum könnte man einfach über der Eingabeaufforderung beim Systemstart ausgeben (wir müssen ja schließlich ~/.bashrc bearbeiten). Trauen Sie sich! Und danke für Ihre Aufmerksamkeit.

Was gibt es noch Nützliches im Blog zu lesen
→
→
→
→
→
Abonnieren Sie unseren -Kanal, um keinen neuen Artikel zu verpassen! Wir schreiben nicht häufiger als zweimal pro Woche und nur wenn es nötig ist. Außerdem erinnern wir daran, dass der Unternehmens-Cloud-Anbieter Cloud4Y die Aktion „Cloud FZ-152 zum Preis des Gewöhnlichen“ gestartet hat. Anträge können eingereicht werden .
Quelle: habr.com
