Adventskalender 22. Dezember 2023 - Flüssige Shell

Smalltalk
Antworten
Benutzeravatar
mn77de
Beiträge: 155
Registriert: 23.11.2003 16:53:53
Wohnort: Übersee
Kontaktdaten:

Adventskalender 22. Dezember 2023 - Flüssige Shell

Beitrag von mn77de » 22.12.2023 10:37:42

Hallo und guten Morgen alle zusammen :-)

Dieses Jahr ist bei mir so viel los, dass ich mit den Türchen des Kalenders einfach nicht hinterher komme. :|
Was ... schon der 22. ?!? 8O
In zwei Tagen ist Weihnachten! 8O 8O 8O
Irre ... und oh ... heute bin ich dran ... :facepalm:

Die Shell
Nun zum Thema "Flüssige Shell!". Heute wollen wir unsere Shell ein kleinwenig pimpen.

Das Terminal ist wirklich ein enorm mächtiges Werkzeug und so hab' ich immer ein paar Fenster offen. Da macht es durchaus Sinn, sich etwas Zeit zu nehmen und alles nach den eigenen Wünschen anzupassen.

Die Basis ist hier die Shell, welche uns eine entsprechende Umgebung bereitstellt und die Befehle entgegen nimmt.
Hier gibt es einige gute und teils sehr interessante Shells, vor allem sei an dieser Stelle "fish" erwähnt. Aber auch der Klassiker "bash" ist gar nicht so verkehrt. Ich persönlich bevorzuge die "zsh", da diese enorme Möglichkeiten zum Anpassen bietet.
Für dieses Türchen benötigen wir allerdings eine Shell die Posix-Kompatibel ist, was "bash" und "zsh" sind. "Fish" geht da eigene Wege und eignet sich leider nicht für dieses Türchen.

Gegebenenfalls kann aber kurzerhand mit ... ... die Bash-Shell gestartet werden, um das heutige Türchen auszuprobieren.

Herausfinden, welche Shell gerade läuft, kann man z.B. mit:

Code: Alles auswählen

echo $0
Aufhübschen
Der Prompt selbst lässt sich über die Variable "PS1" anpassen.
Dies sieht unter Bash z.B. so aus:

Code: Alles auswählen

echo $PS1
\u@\h:\w\$
Dies erzeugt z.B. folgenden Prompt:

Code: Alles auswählen

user@workstation:/home$
Wollen wir den Host ausblenden, den Benutzernamen in grün und den Pfad in blau haben, so könnte dies wie folgt aussehen:

Code: Alles auswählen

PS1="\[\033[0;32m\]\u:\[\033[1;34m\]\w\[\033[0m\]\$"
Damit habe ich früher sehr viel gemacht und mir so meinen eigenen Prompt erstellt.
Es geht mittlerweile aber einfacher ... sehr viel einfacher. :wink:

Adaptiver Prompt
Ein adaptiver Prompt liefert im Idealfall genau das was man braucht ... wenn man es braucht.

So werden Farben automatisch angepasst und zusätzliche Informationen ausgegeben. Dies können z.B. die aktuelle Uhrzeit, eine hohe System-Last, der leer werdende Akku oder Informationen zum aktuellen Git-Repository sein.

Das Anpassen des Prompts übernehmen Tools wie z.B. "Liquidprompt", "Powerline", "Starship" oder "Spaceship".

Liquidprompt
Und da sind wir nun endlich beim eigentlichen Thema. :lol:

Ich persönlich bevorzuge Debianliquidprompt und bin damit sehr zufrieden. Das kleine Tool ist bei mir nicht mehr wegzudenken und so möchte ich es Euch heute vorstellen.

Liquidprompt ist einfach, schnell, gut durchdacht, einfach zu konfigurieren und tut was es soll.

Code: Alles auswählen

apt install liquidprompt
Zum Einrichten führen wir dann folgenden Befehl aus:

Code: Alles auswählen

liquidprompt_activate
Dies schreibt u.a. den Startbefehl in die "~/.bashrc" oder "~/.zshrc".
Beim nächsten Login sollte uns nun bereits der "flüssige Prompt" begrüßen.

Konfiguration
Die Konfiguration von Liquidprompt findet über eine der folgenden Dateien statt:
  1. ~/.liquidpromptrc
  2. ~/.config/liquidpromptrc
  3. /etc/liquidpromptrc
Hierbei wird die allererste gefundene Datei verwendet.

Beim Einrichten wurde bereits eine Beispiel-Konfiguration unter ~/.config/liquidpromptrc angelegt. Diese können wir nun mit unserem Lieblingseditor anpassen. Die einzelnen Punkte sind mit Kommentaren eigentlich gut beschrieben.

Generell sind die Vorgaben bereits sehr gut, weshalb man Liquidprompt auch ohne weitere Anpassungen gut verwenden kann.

Bei mir habe ich z.B. angepasst, dass der Hostname lokal nicht angezeigt wird. Ich weiß vor welchem Rechner ich sitze :-D

Code: Alles auswählen

LP_HOSTNAME_ALWAYS=0
Themes
Liquidprompt bietet mit Themes quasi unendliche Möglichkeiten, das Styling des Prompts zu verändern.

Das gewünschte Theme wird am Anfang der "liquidpromptrc" geladen.
Vordefinierte Themes liegen unter: /usr/share/liquidprompt

Um das Powerline-Theme zu testen:

Code: Alles auswählen

source /usr/share/liquidprompt/powerline.theme
lp_theme powerline
oder:

Code: Alles auswählen

source /usr/share/liquidprompt/alternate_vcs.theme
lp_theme alternate_vcs
Wer mag kann sich hier ein paar weitere Beispiele ansehen:
https://github.com/liquidprompt/liquidp ... iki/Themes

Eigenes Theme
Um das Debian-Theme ein wenig anzupassen, kopieren wir die entsprechende Datei in das Config-Verzeichnis:

Code: Alles auswählen

cp /usr/share/liquidprompt/debian.theme ~/.config/liquidprompt.theme
Hier habe ich z.B. die Farbe des Benutzernamens geändert:

Code: Alles auswählen

LP_COLOR_USER_ALT="$YELLOW"
LP_COLOR_USER_ROOT="$BOLD_RED"
Sehr schön finde ich auch:

Code: Alles auswählen

LP_MARK_DEFAULT="❯"
LP_COLOR_PATH="$BOLD_BLUE"
Nun laden wir noch unser Theme, wozu wir die ~/.config/liquidpromptrc entsprechend anpassen:

Code: Alles auswählen

# source /usr/share/liquidprompt/debian.theme
source ~/.config/liquidprompt.theme
Kompletter Umbau
Was mir an Liquidprompt auch gefällt ist, dass es wirklich sehr einfach aufgebaut ist.
Effektiv ist es ein einzelnes Shell-Skript, das unter /usr/share/liquidprompt/liquidprompt liegt.

Entsprechend kann man diese Datei gut kopieren, anpassen und dann über ~/.bashrc bzw. ~/.zshrc den eigenen Liquidprompt laden.

Für weitere Anpassungen ist die Dokumentation sehr hilfreich:
https://liquidprompt.readthedocs.io/en/stable/

Deaktivieren
Ich habe dies zwar selbst noch nie benötigt, aber liquidprompt lässt sich auch temporär abschalten:

Code: Alles auswählen

liquidprompt_off
bzw.:

Code: Alles auswählen

liquidprompt_on
Zum kompletten deaktivieren von Liquidprompt einfach den Eintrag in der ~/.bashrc, bzw. ~/.zshrc wieder löschen. :|

Fazit
Wer seinen Prompt bis jetzt noch nicht individualisiert hat, hat mit Liquidprompt ein einfaches Tool, das out-of-the-box gute Arbeit verrichtet.
Zudem lässt es sich einfach erweitern und an alle Wünsche anpassen.

ZSH und Liquidprompt sind aus meiner Sicht ein geniales Team. Zu ZSH könnte ich mittlerweile sehr viel erzählen, allerdings würde dies für heute definitiv den Rahmen sprengen.

Nun, ich wünsche Euch viel Freude im Terminal und schöne Weihnachtstage.
Zuletzt geändert von mn77de am 22.12.2023 17:13:17, insgesamt 4-mal geändert.
OpenSource! :THX:

dasebastian
Beiträge: 1886
Registriert: 12.07.2020 11:21:17

Re: Adventskalender 22. Dezember 2023 - Flüssige Shell

Beitrag von dasebastian » 22.12.2023 13:16:08

Hoi und danke für den Beitrag!

Ich habe "meine Bash" auch mehr oder weniger stark angepasst und durchkonfiguriert, ist auch ein Wikiartikel draus entstanden: Wiki-Artikel zum Thema Bash-Konfiguration

Von Debianliquidprompt habe ich heute aber zum ersten Mal gehört, werde wohl über die Feiertage ein bisschen damit spielen. :THX:

Prinzipiell erinnert es mich ein bisschen an die Oh-my-Geschichten, die es ja sogar für Bash gibt. Ich bin da ein bisschen zwiegespalten, weil eigentlich kann man sich das ja auch selber mal mehr mal weniger einfach reinbasteln (was du selber ja auch getan hast).

Cooles Türchen jedenfalls, wieder was gelernt!

Benutzeravatar
mn77de
Beiträge: 155
Registriert: 23.11.2003 16:53:53
Wohnort: Übersee
Kontaktdaten:

Re: Adventskalender 22. Dezember 2023 - Flüssige Shell

Beitrag von mn77de » 22.12.2023 17:11:16

dasebastian hat geschrieben: ↑ zum Beitrag ↑
22.12.2023 13:16:08
Hoi und danke für den Beitrag!
...
Prinzipiell erinnert es mich ein bisschen an die Oh-my-Geschichten, die es ja sogar für Bash gibt. Ich bin da ein bisschen zwiegespalten, weil eigentlich kann man sich das ja auch selber mal mehr mal weniger einfach reinbasteln (was du selber ja auch getan hast).

Cooles Türchen jedenfalls, wieder was gelernt!
Bitte, sehr gerne!

Ich habe erst dieses Jahr auf die ZSH umgestellt und bin damit nun sehr glücklich. Der Einstieg war allerdings alles andere als trivial 8O
Mit Oh-my-zsh bin ich nicht recht warm geworden. Trotzdem läuft mittlerweile alles, inklusive Auto-Suggestion und Syntax-Highlighting.

Auch habe ich nun die letzten Tage, dank Deiner Anregung (Teile und Herrsche) von Mate auf Awesome umgestellt. Halleluja!!!! 8O 8O 8O
Das braucht derzeit noch einiges an Feintuning und Praxis-Tests. Generell ist aber schon sicher, dass dies auf der Workstation meine neue Desktop-Umgebung ist.

Vielleicht wird der Advent ja dieses Jahr etwas länger, dann hänge ich noch ein oder zwei Türchen an. :lol:
OpenSource! :THX:

uname
Beiträge: 12076
Registriert: 03.06.2008 09:33:02

Re: Adventskalender 22. Dezember 2023 - Flüssige Shell

Beitrag von uname » 22.12.2023 17:23:56

mn77de hat geschrieben:Vielleicht wird der Advent ja dieses Jahr etwas länger, dann hänge ich noch ein oder zwei Türchen an.
Gerne.

dasebastian
Beiträge: 1886
Registriert: 12.07.2020 11:21:17

Re: Adventskalender 22. Dezember 2023 - Flüssige Shell

Beitrag von dasebastian » 22.12.2023 18:01:11

mn77de hat geschrieben: ↑ zum Beitrag ↑
22.12.2023 17:11:16
Ich habe erst dieses Jahr auf die ZSH umgestellt und bin damit nun sehr glücklich.
Kann ich mir gut vorstellen, ich habe bisher über Debianzsh nur das beste gehört, sie sieht auch wirklich schick aus. Ich hab auch mal überlegt, war dann aber a)zu unsicher, b)zu pragmatisch und c)zu faul dafür... :lol:
Awesome ... Das braucht derzeit noch einiges an Feintuning und Praxis-Tests. Generell ist aber schon sicher, dass dies auf der Workstation meine neue Desktop-Umgebung ist.
Das freut MICH wieder sehr! Wenn du das in dieser Zeit hinkriegst (Feintuning...), dann bist du eh schnell. Bei mir hat es ca. eineinhalb Jahre gedauert, bis ich nichts mehr zum Verbessern für mich fand und jedes weitere Herumgetrödel ihn wieder schlechter (für mich) gemacht hätte. :wink: Und selbst das stimmt nicht ganz. Gerade für's Türchen habe ich wieder einige Sachen va. rausgelöscht.
Vielleicht wird der Advent ja dieses Jahr etwas länger, dann hänge ich noch ein oder zwei Türchen an. :lol:
Auch von mir ein +1, ich habe letztes Jahr auch einfach aus purer Freude über ein bestimmtes Programm ein Feiertagskastl nachgeworfen, so auf die Art: Mir taugt's, mir egal, ob der Advent vorbei ist, ihr sollt es wissen! :lol:

Benutzeravatar
mn77de
Beiträge: 155
Registriert: 23.11.2003 16:53:53
Wohnort: Übersee
Kontaktdaten:

Re: Adventskalender 22. Dezember 2023 - Flüssige Shell

Beitrag von mn77de » 01.01.2024 11:38:50

Zur Ergänzung habe ich hier noch einen Beitrag über die ZSH veröffentlicht:
viewtopic.php?t=188713
OpenSource! :THX:

Antworten