Zum Inhalt

zsh - Die Standard-Shell von macOS aufbohren

Z shell (zsh) ist eine UNIX Shell, die es den Benutzern ermöglicht direkt mit dem Betriebssystem zu kommunizieren.

Die wohl bekannteste Shell ist Bash, die bei den meisten Linux-Distributionen als Standard gesetzt ist. Bei macOS ist seit der Version 10.15 Catalina die Z shell voreingestellt.

zsh hat einige Vorteile gegenüber der bekannteren Bash, wenn es um die Anpassung an die Vorstellungen des Benutzers geht.

Mit Tools wie oh-my-zsh, Spaceship, NerdFonts, lsd und Neofetch lässt sich zsh auch grafisch ein wenig aufbohren.

.zshrc

Da zsh Bereits auf meinem Mac vorhanden ist, entfällt die Installation.

Fehlt zsh auf deinem System, dann kannst das Tool sehr einfach mit deinem Paketmanager installieren.

sudo apt install zsh

brew install zsh

Nach der Installation kann stu zsh auch sofort verwenden. Aber mehr Spaß macht es mit ein wenig Farbe.

Die zsh Shell wird in der Datei .zshrc konfiguriert.

oh-my-zsh

oh-my-zsh ist eine Sammlung von Plugins und Themes für zsh. Du kannst damit sehr einfach Themes und Erweiterungen nutzen, ohne eine aufwendige Installation und Konfiguration jedes einzelnen Pakets.

Die Installation von oh-my-zsh ist relativ simpel und kann entweder über curl oder wget erfolgen.

sh -c "$(wget https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh -O -)"

In der Konfigurationsdatei .zshrc werden die Einstellungen für oh-my-zsh vorgenommen.

nano .zshrc

Die Plugins aktivierst du ebenfalls in der .zshrc-Datei. Trage dazu einfach den Namen deiner Erweiterung in die Liste ein. Das wars!

plugins=(
battery
brew
copydir
copyfile
git
macos
)

Die Dokumentation von oh-my-zsh findest du auf der offiziellen GitHub-Seite.

Spaceship - Theme

Spaceship ist ein weiteres Theme für zsh. Wenn dir kein Font aus oh-my-zsh gefällt, kannst du das ausprobieren. Das Theme benötigt aber noch spezielle Fonts, um Zeichen für Git im Terminal korrekt dazustellen. Eine Schriftart, die für Spaceship funktioniert ist 👉 FiraCode - Font.

# Repo auf die eigene Festplatte klonen
git clone https://github.com/spaceship-prompt/spaceship-prompt.git "$ZSH_CUSTOM/themes/spaceship-prompt" --depth=1

# Symlink erstellen
ln -s "$ZSH_CUSTOM/themes/spaceship-prompt/spaceship.zsh-theme" "$ZSH_CUSTOM/themes/spaceship.zsh-theme"

Das Theme wird dann in der Konfigurationsdatei .zshrc aktiviert.

ZSH_THEME="spaceship"

lsd

lsd steht für LSDeluxe und erweitert den Standardbefehl ls um ein paar nette Features, wie Farbe, Baumansicht, etc.

Installiert wird LSDeluxe mithilfe von brew.

brew install lsd

Nach der Installation kannst du direkt den Befehl lsd im Terminal verwenden und den Ordnerinhalt auflisten lassen.

lsd

# ...

lsd -lah

Damit du aber wie gewohnt ls eingeben kannst, aber die schöne Ausgabe von lsd erhältst, kannst du einen Alias in der .zshrc anlegen.

Trage einfach am Ende der Datei die Zeile ein:

alias ls='lsd'

Nun kannst du ganz gewohnt den ls-Befehl verwenden.

Möchtest du lsd konfigurieren, musst du die Config-Datei config.yaml manuell im Verzeichnis .config/lsdanlegen.

nano ~/.config/lsd/config.yaml

In die Datei kannst du dann deine Konfiguration eintragen. Du findest ein Beispiel auf der GiHub-Seite:

Fonts

Für die Verwendung mit Spaceship müssen auf dem System NerdFonts installiert sein.

FiraCode

FiraCode kann für das Theme 👉 Spaceship verwendet werden, funktioniert aber nicht korrekt mit 👉 lsd.

FiraCode

Dadurch wird das Font systemweit aktiviert und kann von jeder App genutzt werden.

In der .zshrc ist die Sprache ggf. noch korrekt einzustellen.

nano .zshrc

# You may need to manually set your language environment
# export LANG=en_US.UTF-8
export LANG=de_de.UTF8

Damit FiraCode auch im Terminal verwendet wird, ist das Font dort noch auszuwählen.

FiraCode

Für eine noch bessere Darstellung kann auch FiraCode for Powerline ausgewählt werden.

Nach einem Neustart des Terminals werden die Zeichen von Git korrekt angezeigt.

FiraCode

JetBrainsMono

Das Fonts JetBrainsMono funktioniert mit 👉 lsd und wird eingerichtet wie oben beschrieben.

Die ttf-Dateien lassen sich von GitHub herunterladen. Die Fonts sind im Ordner patched-fonts abgespeichert.

Neofetch

Note

Die Entwicklung von neofetch wurde eingestellt.
Der Beitrag auf It's Foss stellt 7 Alternativen vor:
- 🔗 Neofetch is Dead! Here are 7 Alternatives for Your Linux System vorgestellt.

Neofetch ist ein kleines Script für die Shell, dass Informationen über das Betriebssystem, die Hardware, etc. übersichtlich und grafisch aufbereitet anzeigt. Zusätzlich dazu wird auf der linken Seite ein Bild, z.B. in ASCII-Art, farbig dargestellt.

Neofetch kannst du sehr einfach installieren.

brew install neofetch

Damit du nun alle Informationen auch im Terminal beim Aufruf angezeigt bekommst, musst du in der .zshrc Neofetch aktivieren.

Trage dazu einfach am Ende der Datei die Zeile neofetch ein. Beim nächsten Aufruf des Terminals werden dir die Infos dann ausgegeben.

Die Konfigurationsdatei config.conf befindet sich im Verzeichnis ~/.config/neofetch. Dort kannst du die Anzeige an deine Wünsche anpassen.

zsh - Manuelle Anpassungen

Nach der Installation von oh-my-zsh sind eigentlich keine manuellen Anpassungen mehr notwendig. Die Liste dient der Vollständigkeit.

zshrc - Autoverstollständigung

Die Autoversollständigung ist standardmäßig nicht aktiv, kann aber mit einem Eintrag in der .zshrc problemlos aktiviert werden.

autoload -Uz compinit && compinit

zshrc - Git

Die Anzeige für Git-Repos kann mit dem Code Snippet optimiert werden.

autoload -Uz vcs_info
precmd_vcs_info() { vcs_info }
precmd_functions+=( precmd_vcs_info )
setopt prompt_subst
RPROMPT='${vcs_info_msg_0_}'
# PROMPT='${vcs_info_msg_0_}%# '
zstyle ':vcs_info:git:*' formats '%b'

Gib mir gerne einen Kaffee ☕ aus ❗️

Wenn dir meine Beiträge gefallen und geholfen haben, dann kannst du mir gerne einen Kaffee ☕️ ausgeben.

Donation via PayPalDonation via LiberaPay

Donation via Bitcoin
Bitcoin Address: bc1qfuz93hw2fhdvfuxf6mlxlk8zdadvnktppkzqzj