# zsh installieren und einrichten: von apt bis zur schlanken .zshrc

> zsh installieren, als Standard-Shell setzen und einrichten: schlank ohne Framework oder mit Oh My Zsh, mit Plugins, Prompt, Startzeiten und Deinstallation.

Source: https://www.jpkc.com/db/blog/zsh-installieren/

Ich arbeite in meiner eigenen Umgebung mit zsh, und jedes Mal, wenn ich einen neuen Rechner oder Server einrichte, stehe ich vor denselben Fragen: Paket installieren, Standard-Shell umstellen — und dann Oh My Zsh oder lieber eine eigene, schlanke `.zshrc`? Den Anstoß zu diesem Artikel hat eine kompakte [Anleitung bei Linux TLDR](https://linuxtldr.com/installing-zsh/) (englisch) gegeben. Ich gehe denselben Weg, aber an ein paar Stellen anders: mit einer Variante ganz ohne Framework, mit gemessenen Startzeiten, mit dem aktuellen Stand von Powerlevel10k und mit einer Deinstallation, die deine History nicht gleich mitlöscht.

Wenn du nur die Befehle brauchst, spring direkt zu [Schritt 1](#schritt-1-zsh-installieren). Die wichtigsten Kommandos und Optionen zum täglichen Arbeiten stehen im [Cheat-Sheet zu zsh](https://www.jpkc.com/db/cheatsheets/shell-system/zsh/); hier geht es um Installation, Einrichtung und Pflege.

## Die Kurzfassung

| Was | Wie |
| --- | --- |
| **Installieren** | `sudo apt install zsh` · `sudo dnf install zsh` · `sudo pacman -S zsh` · auf macOS schon da |
| **Standard-Shell** | `chsh -s "$(command -v zsh)"`, danach ab- und wieder anmelden |
| **Erster Start** | Menü von `zsh-newuser-install`: `0` legt eine `.zshrc` an, die nur einen Kommentar enthält |
| **Ohne Framework** | eigene `.zshrc` mit History, Completion und zwei Plugins aus dem Paketmanager |
| **Mit Framework** | Oh My Zsh: Installer erst ansehen, dann ausführen; Updates mit `omz update` |
| **Startzeit** (gemessen) | leer 9 ms · eigene `.zshrc` ~45 ms, mit zwei Plugins ~65–70 ms · Oh My Zsh 97 ms, mit zwei Plugins 139 ms |
| **Prompt** | Powerlevel10k läuft, wird aber kaum noch gepflegt; Alternativen: Starship, Pure, eingebauter Prompt |
| **Deinstallieren** | erst die Shell zurückstellen, dann das Paket entfernen |

## Was zsh ist — und welche Version du bekommst

Die Z-Shell hat Paul Falstad als Student in Princeton geschrieben, laut [Wikipedia](https://de.wikipedia.org/wiki/Z_shell) erschien die erste Version 1990. Den Namen hat er vom Login eines Tutors übernommen, Zhong Shao, dessen Kürzel „zsh" lautete. Anders als oft zu lesen ist zsh keine erweiterte Bash: Die [zsh-FAQ](https://zsh.sourceforge.io/FAQ/zshfaq01.html) (englisch) beschreibt sie als die Standard-Shell, die der Korn-Shell am meisten ähnelt — mit Anleihen bei csh und tcsh und vielen eigenen Erweiterungen obendrauf.

Bekannt geworden ist sie vor allem durch zwei Entscheidungen: Apple nutzt zsh [seit macOS 10.15 Catalina](https://support.apple.com/de-de/102360) als Standard für neue Benutzerkonten, und [Kali Linux](https://www.kali.org/blog/kali-linux-2020-4-release/) (englisch) hat 2020 umgestellt. Auf den meisten Linux-Distributionen bleibt bash der Standard, zsh liegt aber überall im offiziellen Paketangebot.

Bei der Version lohnt ein genauer Blick. Nach 5.9 vom Mai 2022 gab es vier Jahre lang kein Release, dann kamen im Mai und Juli 2026 die [Versionen 5.9.1 und 5.9.2](https://zsh.sourceforge.io/News/) (englisch), überwiegend Fehlerkorrekturen; 5.9.1 hat unter anderem die PCRE-Unterstützung auf PCRE2 umgestellt. Die stabilen Distributionen sind noch nicht so weit:

| System | zsh-Version im Standard-Repository |
| --- | --- |
| Debian 12 / 13 | 5.9 |
| Ubuntu 24.04 / 26.04 LTS | 5.9 |
| Fedora 43 / 44 | 5.9 |
| Arch Linux, Homebrew | 5.9.2 |

Für den Alltag ist das egal — 5.9 ist ausgereift, und alles in diesem Artikel funktioniert damit. Ich installiere zsh deshalb immer aus der Distribution und nicht aus einer Fremdquelle.

## Schritt 1: zsh installieren

Das Paket heißt überall `zsh`:

```bash
# Debian, Ubuntu, Linux Mint
sudo apt install zsh

# Fedora, RHEL, AlmaLinux, Rocky Linux
sudo dnf install zsh

# Arch, Manjaro, EndeavourOS
sudo pacman -S zsh

# macOS: zsh is preinstalled; Homebrew has the newer 5.9.2
brew install zsh
```

Danach prüfst du, ob alles da ist und ob der Paketmanager zsh als erlaubte Login-Shell eingetragen hat:

```bash
zsh --version
grep zsh /etc/shells
```

Debian, Ubuntu und Fedora tragen `/bin/zsh` und `/usr/bin/zsh` bei der Installation selbst in `/etc/shells` ein. Bevor du irgendetwas umstellst, kannst du zsh einfach mit `zsh` starten und dich umsehen. Mit `exit` bist du wieder in deiner alten Shell.

## Schritt 2: zsh als Standard-Shell setzen

Die Login-Shell steht unter Linux in `/etc/passwd` (auf macOS in den Verzeichnisdiensten), und `chsh` ändert sie:

```bash
chsh -s "$(command -v zsh)"
```

`chsh` fragt nach deinem Passwort und akzeptiert nur Pfade, die in `/etc/shells` stehen. Die Änderung greift erst bei der nächsten Anmeldung — meld dich also ab und wieder an. Ob es geklappt hat, zeigt dir:

```bash
getent passwd "$USER" | cut -d: -f7   # should print /usr/bin/zsh or /bin/zsh
```

Auf macOS gibt es `getent` nicht, dort prüfst du mit `dscl . -read ~/ UserShell`.

Drei Stolperstellen:

- **Homebrew-zsh auf macOS.** Die neuere zsh unter `$(brew --prefix)/bin/zsh` (Apple Silicon: `/opt/homebrew/bin/zsh`, Intel: `/usr/local/bin/zsh`) steht nicht in `/etc/shells`. Trag sie dort ein (`echo "$(brew --prefix)/bin/zsh" | sudo tee -a /etc/shells`), bevor du `chsh` aufrufst. Für den Alltag reicht aber auch die zsh, die macOS mitbringt.
- **Fedora-Minimalinstallationen.** In schlanken Images fehlt `chsh`. Es steckt in `util-linux`, also `sudo dnf install util-linux`.
- **Server.** Stell auf einem entfernten Server nicht die Shell von root um, und lass beim ersten Test eine zweite SSH-Sitzung offen. Eine kaputte `.zshrc` sperrt dich nicht aus, kann das Anmelden aber unangenehm machen.

## Schritt 3: Der erste Start

Startet zsh zum ersten Mal und findet keine der Dateien `.zshenv`, `.zprofile`, `.zshrc` oder `.zlogin`, erscheint der Einrichtungsassistent `zsh-newuser-install`. Die Optionen:

- **`q`** beendet ohne Änderung. Der Assistent kommt beim nächsten Start wieder.
- **`0`** legt eine `.zshrc` an, die nur einen Kommentar enthält. Das ist die richtige Wahl, wenn du gleich Oh My Zsh installierst oder deine eigene Datei schreibst.
- **`1`** führt durch Menüs für History, Completion, Tastenbelegung und gängige Shell-Optionen.
- **`2`** übernimmt die Konfiguration, die der Systemverwalter empfiehlt. Diese Option gibt es nur, wenn `/etc/zsh/newuser.zshrc.recommended` existiert — Debian und Ubuntu liefern die Datei mit. Für einen schnellen, brauchbaren Start ist das eine gute Wahl.

Gut zu wissen: zsh liest beim Start mehrere Dateien in fester Reihenfolge. Für dich als Nutzer zählen vor allem zwei. In `~/.zshenv` gehört nur, was wirklich jede zsh braucht, auch nicht interaktive Skripte — etwa ein `PATH`-Zusatz. Alles für die interaktive Arbeit, also Prompt, History, Completion, Aliasse und Plugins, gehört in `~/.zshrc`. Die vollständige Reihenfolge steht im [Handbuch](https://zsh.sourceforge.io/Doc/Release/Files.html) (englisch).

## Schritt 4: Die schlanke Variante ohne Framework

Bevor du zu Oh My Zsh greifst: zsh bringt das meiste selbst mit. Completion, Menüauswahl, eine gute History und sogar Git-Informationen im Prompt brauchen kein Framework. Das ist meine Grundausstattung als Startpunkt:

```zsh title="~/.zshrc"
# History: keep a lot, share it between terminals, drop duplicates
HISTFILE=~/.zsh_history
HISTSIZE=10000
SAVEHIST=10000
setopt SHARE_HISTORY HIST_IGNORE_ALL_DUPS HIST_IGNORE_SPACE

# Convenience
setopt AUTO_CD            # type a directory name to cd into it
bindkey -e                # emacs-style line editing (Ctrl-A, Ctrl-E, ...)

# Completion with an interactive menu
zmodload zsh/complist
autoload -Uz compinit && compinit
zstyle ':completion:*' menu select

# Prompt: user@host, directory, git branch on the right
autoload -Uz vcs_info
precmd() { vcs_info }
zstyle ':vcs_info:git:*' formats '%b'
setopt PROMPT_SUBST
PROMPT='%n@%m %~ %# '
RPROMPT='${vcs_info_msg_0_}'

# Plugins from the package manager (Debian/Ubuntu paths) — highlighting last
source /usr/share/zsh-autosuggestions/zsh-autosuggestions.zsh
source /usr/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
```

Die beiden Plugins holst du unter Debian und Ubuntu mit `sudo apt install zsh-autosuggestions zsh-syntax-highlighting`; Fedora und Arch haben gleichnamige Pakete, die Pfade können abweichen. Ein paar Details zu dieser Datei:

- **`HISTFILE` und `SAVEHIST` musst du setzen.** Ohne `HISTFILE` speichert zsh die History laut [Handbuch](https://zsh.sourceforge.io/Doc/Release/Parameters.html) (englisch) gar nicht, und `SAVEHIST` legt fest, wie viele Einträge in der Datei landen. macOS setzt beides schon in `/etc/zshrc`.
- **`SHARE_HISTORY` allein genügt.** Viele Anleitungen setzen zusätzlich `INC_APPEND_HISTORY`. Das Handbuch zu den [Optionen](https://zsh.sourceforge.io/Doc/Release/Options.html) (englisch) sagt aber, dass `SHARE_HISTORY` dieses Verhalten schon enthält und die Option dann ausgeschaltet sein sollte.
- **`HIST_IGNORE_SPACE`** hält Befehle mit führendem Leerzeichen aus der History heraus. Praktisch, wenn du einmal ein Token auf der Kommandozeile tippen musst.
- **`zsh-syntax-highlighting` muss zuletzt geladen werden.** Das schreiben die Autoren ausdrücklich in ihre [Installationsanleitung](https://github.com/zsh-users/zsh-syntax-highlighting/blob/master/INSTALL.md) (englisch), und sie empfehlen sogar die manuelle Einbindung statt eines Frameworks.
- **Unter Ubuntu läuft `compinit` sonst doppelt.** Dort ruft schon `/etc/zsh/zshrc` `compinit` auf. Schreib `skip_global_compinit=1` in deine `~/.zshenv`, dann übernimmt das allein deine `.zshrc`.

Mit `source ~/.zshrc` oder einem neuen Terminal ist alles aktiv. Diese Datei startet in meiner Messung in 65 bis 70 Millisekunden, ohne die beiden Plugins in gut 40 — mehr dazu [weiter unten](#wie-schnell-startet-deine-zsh).

## Schritt 5: Oh My Zsh installieren

[Oh My Zsh](https://github.com/ohmyzsh/ohmyzsh) (englisch) ist das bekannteste Framework für zsh: mehrere Hundert Plugins, weit über hundert Themes, eine Update-Funktion und eine große Community. Wenn du viel ausprobieren willst, ist es ein bequemer Einstieg. Voraussetzung sind `git` und `curl` oder `wget`.

Die offizielle Installation ist ein Einzeiler, der ein Skript aus dem Netz direkt ausführt. Das Projekt selbst rät, fremde Installationsskripte vorher anzusehen — und genau so mache ich es:

```bash
curl -fsSL -o install-omz.sh https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh
less install-omz.sh        # read it first
sh install-omz.sh
```

Was dabei passiert: Das Skript klont das Repository nach `~/.oh-my-zsh`, benennt eine vorhandene `.zshrc` nach Rückfrage in `.zshrc.pre-oh-my-zsh` um, legt eine neue an und stellt auf Wunsch die Standard-Shell um. Für automatische Einrichtungen gibt es Schalter: `--unattended` ändert weder die Shell noch startet es zsh danach, `--keep-zshrc` lässt deine bisherige `.zshrc` stehen.

Die neue `.zshrc` ist gut kommentiert. Die zwei wichtigsten Zeilen sind `ZSH_THEME="robbyrussell"` für das Aussehen und `plugins=(git)` für die geladenen Plugins.

**Updates.** Oh My Zsh fragt standardmäßig alle zwei Wochen, ob es sich aktualisieren soll. Manuell geht es mit `omz update`. Das Verhalten steuerst du in der `.zshrc`, und zwar **vor** der Zeile `source $ZSH/oh-my-zsh.sh`:

```zsh
zstyle ':omz:update' mode reminder   # prompt (default) | auto | reminder | disabled
zstyle ':omz:update' frequency 14    # days between checks
zstyle ':omz:update' cooldown 10     # only apply changes that are at least 10 days old
```

Die Option `cooldown` ist neu und gefällt mir besonders: Oh My Zsh übernimmt dann nur Änderungen, die schon ein paar Tage alt sind. Das ist dieselbe Idee wie die Quarantäne für frische Pakete, die pnpm 11 und Bun mit `minimumReleaseAge` kennen; mehr dazu in [Anthropic und Bun](https://www.jpkc.com/db/blog/bun-anthropic-claude-code/#sicherheit-der-teil-der-mich-am-meisten-beschaeftigt). Ein Framework, das sich selbst aus einem Git-Repository aktualisiert, ist schließlich auch eine Lieferkette.

## Schritt 6: Plugins mit Oh My Zsh

Die mitgelieferten Plugins liegen in `~/.oh-my-zsh/plugins`, eigene oder fremde gehören nach `~/.oh-my-zsh/custom/plugins` (Variable `$ZSH_CUSTOM`). Die beiden Plugins aus Schritt 4 installierst du dort so:

```bash
git clone --depth=1 https://github.com/zsh-users/zsh-autosuggestions \
  "${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/zsh-autosuggestions"
git clone --depth=1 https://github.com/zsh-users/zsh-syntax-highlighting \
  "${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting"
```

Wichtig ist der zweite Teil, der in Anleitungen gern nur in einem Screenshot steht: Klonen allein lädt nichts. Du musst die Plugins in der `.zshrc` eintragen, `zsh-syntax-highlighting` wieder als letztes:

```zsh
plugins=(git zsh-autosuggestions zsh-syntax-highlighting)
```

Danach lädt `omz reload` die Konfiguration neu. Tipp ein paar Buchstaben eines früheren Befehls, und autosuggestions schlägt den Rest grau vor; mit der Pfeiltaste nach rechts übernimmst du ihn.

## Schritt 7: Ein Prompt, der zu dir passt

Viele Anleitungen empfehlen an dieser Stelle [Powerlevel10k](https://github.com/romkatv/powerlevel10k) (englisch). Das Theme ist schnell und hübsch, aber du solltest wissen, worauf du dich einlässt: Seit Mai 2024 steht ganz oben im README, dass das Projekt nur noch sehr eingeschränkt unterstützt wird, keine neuen Funktionen bekommt, die meisten Fehler nicht mehr behoben werden und Hilfeanfragen ignoriert werden. Das letzte Release ist vom Januar 2024. Es funktioniert weiterhin — aber ich würde heute nichts Neues mehr darauf aufbauen.

Wenn du es trotzdem nutzt, dann auf dem Weg, den das README für Oh My Zsh vorsieht:

```bash
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git \
  "${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k"
# then in ~/.zshrc:  ZSH_THEME="powerlevel10k/powerlevel10k"
```

Der Assistent startet beim nächsten Öffnen von zsh selbst, später jederzeit mit `p10k configure`. Für die Symbole empfiehlt das README die Nerd-Font MesloLGS NF, die du in deinem Terminal einstellst.

Die Alternativen:

- **[Starship](https://starship.rs/de-DE/)** ist ein Prompt in Rust, der in zsh, bash, fish und PowerShell gleich aussieht und aktiv gepflegt wird. Eingebunden wird er mit einer Zeile am Ende der `.zshrc`: `eval "$(starship init zsh)"`. Auch hier gilt: Das Installationsskript erst ansehen, oder Starship über den Paketmanager installieren, wo es angeboten wird.
- **[Pure](https://github.com/sindresorhus/pure)** (englisch) ist minimalistisch und schnell, gut für alle, die einen ruhigen Prompt mit Git-Status wollen.
- **Der eingebaute Prompt** aus Schritt 4 mit `vcs_info` braucht gar nichts zusätzlich. Mit `autoload -Uz promptinit && promptinit` und `prompt -l` siehst du außerdem die Themes, die zsh selbst mitbringt.

## Wie schnell startet deine zsh?

Ein Framework kostet Startzeit, und die merkst du bei jedem neuen Terminal-Tab. Ich habe das in einem frischen Debian-13-Container gemessen, jeweils als Mittelwert aus 20 Starts von `zsh -i -c exit` nach einem ersten Aufwärmlauf:

| Konfiguration | Startzeit |
| --- | --- |
| leere `.zshrc` | 9 ms |
| die `.zshrc` aus Schritt 4 ohne die beiden Plugins | 42–46 ms |
| die `.zshrc` aus Schritt 4 komplett, mit zwei Plugins | 64–70 ms |
| Oh My Zsh mit Standard-Konfiguration (`git`-Plugin) | 97 ms |
| Oh My Zsh mit autosuggestions und syntax-highlighting | 139 ms |

Die absoluten Zahlen hängen stark vom Rechner und seiner Last ab, die Verhältnisse kaum. Absolut ist das alles schnell. Auf älterer Hardware, über ein Netzlaufwerk oder mit vielen Plugins wird aus 100 Millisekunden aber schnell eine spürbare halbe Sekunde. Deine eigene Konfiguration misst du so:

```zsh
# Quick check: total for 10 starts — divide by 10 for the average
time (for i in {1..10}; do zsh -i -c exit; done)

# Which part of your .zshrc costs the time?
# Add at the very top of ~/.zshrc:   zmodload zsh/zprof
# Add at the very bottom:            zprof
```

`zprof` listet nach dem Start die Funktionen mit ihrem Zeitanteil auf. Die üblichen Verdächtigen sind Versionsmanager wie nvm, Completion-Skripte großer Werkzeuge und zu viele Plugins.

## Was in zsh anders ist als in bash

Für die tägliche Arbeit fühlt sich zsh fast wie bash an. Ein paar Unterschiede überraschen aber jeden einmal — ich habe sie alle in derselben Testumgebung nachgestellt:

- **Arrays beginnen bei 1.** `a=(eins zwei drei); echo $a[1]` gibt in zsh `eins` aus, in bash `${a[1]}` dagegen `zwei`.
- **Keine automatische Wortaufteilung.** `v="a b"; for x in $v; do …` durchläuft in zsh einen Wert, in bash zwei. Das ist sicherer, bricht aber manches bash-Snippet.
- **Rekursives Globbing ist eingebaut.** `**/*.md` findet in zsh alle Markdown-Dateien in Unterordnern; bash braucht dafür erst `shopt -s globstar`.
- **Ein führendes `=` ist besonders.** `echo ===test` bricht in zsh mit `==test not found` ab, weil zsh `=befehl` durch den Pfad des Befehls ersetzt. Wenn du solche Trennlinien ausgibst, setz sie in Anführungszeichen.

Daraus folgt eine einfache Regel: **Deine Skripte bleiben bash- oder sh-Skripte.** Die Shebang-Zeile `#!/bin/bash` oder `#!/bin/sh` entscheidet, welche Shell ein Skript ausführt, nicht deine Login-Shell. zsh ist für die interaktive Arbeit da. Wenn du ein Shell-Snippet in zsh ausprobieren willst, das für sh geschrieben ist, startest du es mit `emulate sh -c '…'`.

## Sauber deinstallieren

Wenn zsh nicht zu dir passt, ist die Reihenfolge entscheidend. Entfernst du das Paket, während zsh noch deine Login-Shell ist, landest du bei der nächsten Anmeldung im Nichts.

```bash
# 1. Remove Oh My Zsh first, while you are still in zsh
uninstall_oh_my_zsh

# 2. Switch your login shell back, log out and in again, then check
chsh -s "$(command -v bash)"
getent passwd "$USER" | cut -d: -f7

# 3. Only now remove the package
sudo apt remove zsh          # or: sudo dnf remove zsh / sudo pacman -R zsh
```

`uninstall_oh_my_zsh` löscht `~/.oh-my-zsh`, benennt die aktuelle `.zshrc` mit Datumsstempel um und stellt deine alte `.zshrc.pre-oh-my-zsh` wieder her. Hatte der Installer die Shell umgestellt, stellt es sie auch zurück. Bist du schon in bash, existiert die Funktion nicht mehr; dann rufst du `sh ~/.oh-my-zsh/tools/uninstall.sh` auf.

Danach räumst du gezielt auf, statt mit `rm -rf .zsh*` alles auf einmal zu löschen. Das würde auch `~/.zsh_history` und die Sicherungskopien treffen, die du vielleicht noch brauchst:

```bash
ls -a ~ | grep -E 'zsh|p10k|oh-my'   # see what is there first
rm -f ~/.zcompdump* ~/.p10k.zsh      # caches and the Powerlevel10k config
```

## FAQ

### Brauche ich Oh My Zsh?

Nein. Alles, was die meisten Menschen an Oh My Zsh schätzen — Completion mit Menü, gute History, Git im Prompt, Vorschläge und Hervorhebung beim Tippen —, bekommst du mit der `.zshrc` aus Schritt 4 und zwei Paketen. Oh My Zsh lohnt sich, wenn du viele Plugins ausprobieren willst und dir die Pflege abnehmen lassen möchtest.

### Ist `curl … | sh` gefährlich?

Ein Skript direkt aus dem Netz auszuführen heißt, dem Server und der Verbindung in diesem Moment komplett zu vertrauen. Bei bekannten Projekten über HTTPS ist das Risiko überschaubar, aber das Ansehen kostet eine Minute. Lade das Skript herunter, lies es, führ es dann aus.

### Funktionieren meine bash-Aliasse in zsh?

Meistens ja. Einfache `alias`-Zeilen kannst du aus der `.bashrc` in die `.zshrc` kopieren. Funktionen, die mit Arrays oder Wortaufteilung arbeiten, solltest du testen, weil zsh sich dort anders verhält.

### Wo trage ich meinen PATH ein?

In `~/.zshenv`, wenn ihn auch nicht interaktive zsh-Aufrufe brauchen, sonst in `~/.zshrc`. Auf macOS setzen die Systemdateien den PATH beim Login, eigene Ergänzungen gehören dort meist in `~/.zprofile`.

### Ist Powerlevel10k noch sicher nutzbar?

Es funktioniert, und es gibt keinen Grund, es sofort zu entfernen. Weil kaum noch Fehler behoben werden, würde ich bei einer neuen Einrichtung aber zu Starship, Pure oder dem eingebauten Prompt greifen.

## Fazit

zsh ist in zwei Minuten installiert und als Standard-Shell gesetzt. Die eigentliche Entscheidung kommt danach: Framework oder nicht. Oh My Zsh ist bequem und kostet dich in meiner Messung rund 100 Millisekunden pro Start, mit zwei Plugins fast 140. Eine eigene `.zshrc` mit zsh-Bordmitteln und denselben zwei Plugins aus dem Paketmanager kommt mit der Hälfte aus und hängt an keiner Update-Kette außer der deiner Distribution. Für mich ist das der bessere Startpunkt, weil ich jede Zeile kenne, die beim Öffnen eines Terminals läuft. Wenn du gern ausprobierst, nimm Oh My Zsh, aber mit `cooldown` und einem Prompt, der noch gepflegt wird.

## Weiterlesen

Die wichtigsten Kommandos, Glob-Qualifier und Optionen für den Alltag stehen im [Cheat-Sheet zu zsh](https://www.jpkc.com/db/cheatsheets/shell-system/zsh/), zum Vergleich gibt es die Cheat-Sheets zu [bash](https://www.jpkc.com/db/cheatsheets/shell-system/bash/) und [fish](https://www.jpkc.com/db/cheatsheets/shell-system/fish/). Wie ich die Lieferkette meiner Build-Werkzeuge absichere, steht in [Node.js und npm absichern](https://www.jpkc.com/db/blog/nodejs-npm-absichern/), und wie du Node.js selbst installierst und aktuell hältst, in [Node2Shell und die Frage danach](https://www.jpkc.com/db/blog/node2shell-nodejs-installieren/).

**Quellen:** [zsh-Handbuch](https://zsh.sourceforge.io/Doc/Release/) · [zsh-FAQ](https://zsh.sourceforge.io/FAQ/) · [zsh-News](https://zsh.sourceforge.io/News/) · [Oh My Zsh](https://github.com/ohmyzsh/ohmyzsh) · [Powerlevel10k](https://github.com/romkatv/powerlevel10k) · [zsh-syntax-highlighting](https://github.com/zsh-users/zsh-syntax-highlighting) (alle englisch) · [Z shell bei Wikipedia](https://de.wikipedia.org/wiki/Z_shell) · [zsh im Wiki von ubuntuusers.de](https://wiki.ubuntuusers.de/Zsh/)

