Weihnachtsbaum auf der Kommandozeile

Bald im neuen Jahr möchte ich nicht über ernsthafte Arbeit nachdenken.

Jeder versucht, etwas für den Urlaub zu dekorieren: Zuhause, Büro, Arbeitsplatz ... Lassen Sie uns und wir werden etwas dekorieren! Zum Beispiel eine Eingabeaufforderung. In gewissem Maße ist die Befehlszeile auch ein Arbeitsplatz.

In einigen Distributionen ist es bereits "dekoriert":



Bei anderen ist es grau und unauffällig:



Und wir können zum Beispiel so vorgehen:



Natürlich sind der Geschmack und die Farbe aller Marker unterschiedlich. Wenn Ihnen eine solche Färbung ungeschickt und unpassend vorkommt, dann wissen Sie, dass diese Sichtweise jedes Recht auf Leben hat. Und wenn Sie auch ein wenig Neujahrsstimmung hinzufügen möchten, lesen Sie weiter für einen kleinen Neujahrsartikel von Cloud4Y.

Zunächst erkläre ich, wie die Ausgabe des Terminals „farbig“ ist. Dies geschieht mit Escape-Sequenzen. Und genauer - die Steuercodesequenzen des ANSI / VT100-Terminals. Das bedeutet automatisch, dass Ihr Terminal-Emulator diesen Standard unterstützen muss, sonst passiert das Neujahrswunder nicht. Und ja, es wird davon ausgegangen, dass Sie $ SHELL Bash haben.

Diese Befehle werden als Escape-Sequenzen bezeichnet, da sich am Anfang jedes Befehls das ASCII-Escape-Zeichen befindet. Es gibt viele Steuersequenzen, mit denen beispielsweise Terminaleinstellungen angezeigt, die Anzeige und Bewegung des Cursors gesteuert, die Schriftart geändert, Text gelöscht und ausgeblendet werden können. Wir werden eine der vielen Möglichkeiten auswählen - die Farbe von Text und Hintergrund ändern.

Wir führen die Codesequenz *ESC*[{attr1};...;{attrn}m
Als Escape- Zeichen wird dessen oktale Form verwendet, d. H. \ 033 . Zu den Attributen finden Sie hier eine kurze Liste der möglichen Werte:

0 Alle Attribute zurücksetzen.
1 Hell
2 Abm
4 Unterstrich (Unterstrich)
5 Blinken
7 Rückwärts
8 Versteckt (Text verstecken)

Vordergrundfarben (Stiftfarbe, Text wird in dieser Farbe angezeigt):
30 Schwarz
31 Rot
32 Grün
33 Gelb
34 Blau
35 Magenta (Magenta)
36 Cyan (blau)
37 Weiß

Hintergrundfarben (Papierfarbe oder Hintergrundfarbe):
40 Schwarz
41 Rot
42 Grün
43 Gelb
44 Blau
45 Magenta (Magenta)
46 Cyan (blau)
47 Weiß

Bitte beachten Sie, dass, wenn Sie jetzt im Terminal befehlen: echo \033[0;31m \033[0m'

... dann erhalten Sie vorhersehbar eine monochrome Abrakadabra als Ausgabe:



Warum? Weil es notwendig war, die erweiterten Funktionen des Echobefehls zu nutzen. Es reicht aus, einen Schlüssel hinzuzufügen: echo -e '\033[0;31m \033[0m'

Jetzt sieht die Ausgabe richtig aus:



Mit der Färbung wird der Ausgang zum Terminal aussortiert. Nun wollen wir sehen, wie die Eingabeaufforderung eingefärbt wird.

Dies erfolgt durch Ändern der Variablen PS1. Die Variable ist für die Befehlszeile verantwortlich. Das Erscheinungsbild kann auch mithilfe von Escape-Sequenzen geändert werden. Es gibt jedoch einen kleinen Unterschied: Sie müssen die Sequenz mit dem Zeichen " \ [ " beginnen und mit dem Zeichen " \] " enden, da sie sonst auf dem Terminal angezeigt wird.

Alle möglichen Befehlssequenzen werden ausführlich im Bash-Handbuch beschrieben. Daher empfehle ich den Lesern, selbst zu wählen, was sie an der Eingabeaufforderung beobachten möchten. Als Beispiel gebe ich der Variablen PS1 meinen Wert:

\[\033[34;1m\]\t\[\033[0m\],\[\033[32m\]\u@\l@\h\[\033[0m\]:\[\033[33m\]\W\[\033[0m\],\[\033
[31m\]\!\[\033[0m\]\$\n

Ich werde diesen schrecklichen Zauber entziffern:

\ [\ 033 [34; 1m \] - Schaltet die hellblaue Schriftfarbe (zweites Attribut) ein
\ t - Zeigt die aktuelle Uhrzeit im Format HH: MM: SS an
\ [\ 033 [0m \] - Setzen Sie die Einstellungen für die Schriftfarbe zurück
, - nur ein Komma (unerwartet, richtig?)
\ [\ 033 [32m \] - Schaltet die grüne Farbe der Schrift ein
\ u @ \ l @ \ h - Zeigt den Benutzernamen, die Endgerätenummer und den kurzen Hostnamen an, getrennt durch das Symbol "@".
[0m \] - Setzen Sie die Einstellungen für die Schriftfarbe erneut zurück
: - nur ein Doppelpunkt (plötzlich!)
\ [\ 033 [33m \] - Schalte die gelbe Farbe der Schrift ein
\ W - gibt den Namen des aktuellen Verzeichnisses aus
[0m \] - Setzen Sie die Einstellungen für die Schriftfarbe erneut zurück
- ein weiteres Komma (wer hätte das gedacht!)
\ [\ 033 [31m \] - Schaltet die rote Farbe der Schrift ein
\! - Drucken Sie die Befehlsnummer im Terminal aus
[\ 033 [0m \] - Vergessen Sie nicht, die Einstellungen für die Schriftfarbe zurückzusetzen
\ $ - drucke "#" für root und "$" für alle anderen
\ n - Zeilenvorschub. Warum? Damit beginnt der Befehl am linken Fensterrand und nicht am Ende der Eingabeaufforderung.

Wo kann eine Variable überschrieben werden? Der logischste Weg dazu ist ~ / .bashrc.

Das Erscheinen der Einladung ist nur durch Ihre Vorstellungskraft begrenzt. Grundsätzlich hindert Sie nichts daran, mit den oben genannten Tools eine Eingabeaufforderung in Form eines Weihnachtsbaums zu erstellen. Eine solche Einladung wird zwar sehr umständlich sein, und die Arbeit wird sicherlich nicht bequemer sein. Der Weihnachtsbaum kann beim Anmelden einfach über der Befehlszeile angezeigt werden (wir müssen noch ~ / .bashrc bearbeiten). Mach es! Und danke fürs zuschauen.



Was sonst noch nützlich ist, lesen Sie im Cloud4Y- Blog

Konfiguration von top in GNU / Linux
Pentester an der Spitze der Cybersicherheit
Startups, die überraschen können
Benötigen Sie Kissen im Rechenzentrum?
→ Das Haus, das der Roboter gebaut hat

Abonnieren Sie unseren Telegrammkanal , um keinen Artikel mehr zu verpassen! Wir schreiben nicht mehr als zweimal pro Woche und nur geschäftlich. Wir möchten Sie auch daran erinnern, dass Cloud4Y, der Cloud-Anbieter für Unternehmen, die "FZ-152 Cloud zum Preis einer regulären" Aktion lanciert hat. Sie können sich bis zum 31. Dezember bewerben.

Source: https://habr.com/ru/post/de480788/


All Articles