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
- https://formulae.brew.sh/formula/zsh#default
- https://manpages.ubuntu.com/manpages/jammy/en/man1/zsh.1.html
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/lsd
anlegen.
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.
-
Lade die zip-Datei herunter https://github.com/tonsky/FiraCode/releases
- Entpacke die zip-Datei und wähle in den Ordnern die
ttf
-Dateien aus.Öffnen mit ... -> Schriftensammlung
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.
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.
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
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.
Follow Me❗️