zsh, fish und bash: Welche Shell passt?
Kurz: Die Shell ist das Programm, das Terminal-Befehle entgegennimmt; bash ist Standard, zsh und fish bieten mehr Komfort bei Vervollständigung und Anpassung.
Genauer: Wenn du im Terminal tippst, arbeitet eine Shell (Kommandozeileninterpreter). Sie startet Programme, wertet Variablen und Schleifen aus und liest Skripte. Die Wahl beeinflusst Komfort und Skriptverhalten.
Im Detail
bash
Bourne Again Shell: Standard auf den meisten Linux-Distributionen und lange auf macOS. Sehr weit verbreitet, Skripte laufen fast überall. Konfiguration in ~/.bashrc. Gute Basis, aber ohne viele Komfortfunktionen ab Werk.
zsh
Seit macOS Catalina die Standard-Shell des Mac. Weitgehend bash-ähnlich, aber mit besserer Tab-Vervollständigung, Rechtschreibkorrektur, erweitertem Globbing und Themes/Plugins. Das Framework Oh My Zsh (oder leichter: zinit, Prezto) fügt Prompt-Designs, Git-Anzeige und Plugins wie Autosuggestions und Syntax-Highlighting hinzu. Konfiguration in ~/.zshrc.
fish
„Friendly Interactive Shell“: Autovorschläge, farbige Syntaxhervorhebung und gute Vervollständigung sofort ohne Einrichtung. Eigene, vereinfachte Syntax (nicht POSIX-kompatibel): bash-Skripte laufen nicht unverändert. Gut für den interaktiven Alltag. Konfiguration in ~/.config/fish/config.fish.
Weitere und Empfehlung
PowerShell (Objekte statt Text, Windows und plattformübergreifend), nushell (strukturierte Daten), dash (schnell, für Systemskripte), sh (Standardschnittstelle). Faustregel: Skripte in bash/sh schreiben (#!/bin/bash), interaktiv die Lieblingsshell nutzen. Mit echo $SHELL siehst du deine aktuelle, mit chsh -s /bin/zsh wechselst du. Aliase (alias ll='ls -lah') und Funktionen in der Konfigurationsdatei sparen Tipparbeit.
Siehe auch: bash, PowerShell, Shell-Skripte schreiben, Dotfiles, tmux und screen