Bash¶
Die Bash - als defakto Standard-Shell - ist die erste Shell-Anlaufstelle für Linux-User.
Gerne nutzen wir die grafischen Oberflächen und Tools unter dem Desktop unserer Wahl. Aber wenn es darum geht unser System sauber zu verwalten und zu admininstrieren, dann wenden wir uns einer Shell zu.
Für einen kurzen Überblick über die aktuellen verfügbaren Shell auf einem System:
$ cat /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/bash
/usr/bin/bash
/bin/rbash
/usr/bin/rbash
/bin/dash
/usr/bin/dash
/bin/zsh
/usr/bin/zsh
/usr/bin/tmux
Auf dem hier dargestellten System wurde die zsh und tmux bereitgestellt.
Wir konzentrieren uns aber auf die Bourne Again Shell BASH den Nachfolger der sh.
Hinweis
Ich habe mich in den letzten Jahren zur Nutzung der ZSH entschlossen. Aber wie immer bei Linux: wir dürfen auf unseren Systemen selber wählen, oder natürlich auch mehrere Shell nutzen.
Wer gerne unterschiedliche Shells nutzt, aber die Erscheinung und Nutzung einheitlich halten möchte, der kann sich ja mal mit dem Tools Starship beschäftigen. Diese Aufrüschung des Terminals macht nur in Terminalemulatoren (gnome-terminal, konsole, xterm, urxvt, st, alacritty, kitty) inklusive sogenannter Nerdfonts einen Sinn - das rohe TTY lässt man oft einfach.
Fangen wir erst einmal mit zwei meiner Basistools an: für die Arbeit in der Shell ist eine effiziente Suche von Dateien/Ordner und das Finden von Befehlen sehr wichtig!
fzf¶
Die rekursive Suche mit Strg + r
und das Suchen von Dateien und Ordnern mit Strg + t
auf die
richtige Weise mit dem Fuzzy Finder.
Quelle für Tool fzf: Github Repo FZF (mit Erläuterungen für die Betriebssystemeinbindungen)
Einfache Inbetriebnahme bei Debian: apt install fzf
Am Besten schaut man für die Einbindung von FZF in die Paketinfos: apt show fzf
Dort findet man dann Distro/Shell-Erläuterungen: /usr/share/doc/fzf/README.Debian
. Für die Einbindung
in die Bash benötigen wir die folgenden zwei Zeilen:
source /usr/share/doc/fzf/examples/key-bindings.bash
source /usr/share/doc/fzf/examples/completion.bash
Danach natürlich nicht das Sourcing der Bashrc vergessen (z.B.): source ~/.bashrc
Das mitgebrachte Manual man fzf
erläutert wie immer die hier sehr umfangreiche Nutzung.
z - Change Directory¶
Irgendwann wird man es leid immer dieselben Verzeichnisse aufzurufen und mit Tab zu vervollständigen.
Über viele Jahre hat hier das Tool j - autojump
gute Dienste geleistet. Mit z - jump around
geht es
noch schlanker und schneller.
Quelle für Tool z: Github Repo rupa/z (also bitte git bereitstellen)
Ich stelle mir das Git-Repo für z
gerne einfach im Home-Dir ~
bereit:
cd ~
git clone https://github.com/rupa/z.git
echo 'source ~/z/z.sh' >> ~/.bashrc
Und natürlich wieder die .bashrc
neu einladen: source ~/.bashrc
.
Jetzt muss man erst einmal ein paar klassische cd
für Verzeichnisse aufbauen. Dann merkt und gewichtet
sich das Tool z
diese Pfade und man kann mit z
hierüber eine Übersicht anzeigen lassen oder dann
mit z teilpf
und Tab schnell in die bekannten Pfade wechseln.
Starship.rs¶
Mit dem in Rust geschriebenen Starship-Projekt kann man sich eine Befehlszeile mit einer einzigenen Konfigurationsdatei ~/.config/starship.toml
definieren. Diese Konfiguration lässt sich dann per One-Liner in der jeweiligen Shell-Konfiguration (Bash, Zsh, Fish, PowerShell, …) einfügen.

Starship.rs¶
Kurzanleitung: (Bitte gerne das Skript vorab herunterladen und analysieren!)
sh -c "$(curl -fsSL https://starship.rs/install.sh)"
Einbinden in die Bash:
eval "$(starship init bash)"
Aber wie gesagt: Starship lässt sich in diverse Shell von diversen OS integrieren: siehe Github-Projektseite zu Starship
Als Trainer stelle ich gerne auch eine erste Konfigurationsdatei für Starship ( ~/.config/starship.toml
) bereit.
Letzte Anmerkung: für die Darstellung von Ligaturen, Wingdings oder gar Emojis sind spezielle Schriften (engl.: Fonts) nötig.
Die folgenden Abschnitte sollen verschieden Techniken rund um die BASH darstellen, anbieten und vertiefen.
… tbc …