Unix-Shells
Eine Unix‑Shell (in der Bedeutung hier) ist ein Kommando‑Interpreter, der eine Schnittstelle bietet, um Unix/Unix‑ähnliche Systeme zu bedienen. Über die Jahre wurden verschiedene Shells mit unterschiedlichen Eigenschaften entwickelt. Hier kommentiere ich kurz die bekanntesten und gebe Tipps zur Konfiguration der Shell, die ich nutze.
Im folgenden Diagramm sind die sechs populärsten Shells so angeordnet, dass eine untere die Funktionen der oberen erweitert; Shells aus verschiedenen Zweigen sind inkompatibel.
csh (C shell) sh (Bourne shell)
| / \
| | ksh (Korn shell)
| | |
tcsh (TC shell) bash zsh (Z shell)
Von Bill Joy an der UC Berkeley entwickelt (1978 in BSD), war sie beliebt fürs Scripting, da die Syntax an C erinnert; wird aber wegen Implementierungsproblemen kritisiert.
Im Wesentlichen C‑Shell mit Extras wie Tab‑Completion, Zeilen‑Editor und besserer History.
Die traditionelle Shell (Stephen Bourne, Bell Labs, 1977). War Standard in Unix Version 7 und ist weiterhin verbreitet.
Von Brian Fox fürs GNU‑Projekt (1989) als Ersatz für die Bourne‑Shell mit vielen Erweiterungen. In vielen Linux‑Distributionen und macOS Standard.
1983 von David Korn (AT&T Bell Labs). Voll kompatibel zu Bourne‑Shell, mit vielen zusätzlichen Features, teils aus der C‑Shell übernommen.
1990 von Paul Falstad (Princeton). Sehr umfassend; lässt sich als Erweiterung der Bourne‑Shell mit Features aus
bash,ksh,tcshverstehen und bringt eigene Funktionen (z. B. Rechtschreibkorrektur) mit.
Da Zsh meine Lieblings‑Shell ist, beschreibe ich Installation und Konfiguration (Arch Linux).
In
/etc/shellsprüfen, welche Shells installiert sind. Falls zsh fehlt, installieren:sudo pacman -S zshInstallation testen und Grundkonfiguration vornehmen:
zshZsh als Standard‑Shell setzen (wirkt nach erneutem Login):
chsh -s $(which zsh)Hauptkonfigurationsdatei
~/.zshrcbearbeiten.Eine einfache Möglichkeit ist Oh My Zsh:
git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc chsh -s /bin/zshMeine Dotfiles: https://github.com/jbsilva/dotfiles.
Links
- Kommentare: http://linuxfinances.info/info/unixshells.html
- Vergleichstabelle: http://www.faqs.org/faqs/unix-faq/shell/shell-differences/
- Arch Wiki – Zsh: https://wiki.archlinux.org/index.php/Zsh
- Anpassung verschiedener Shells: http://www.understudy.net/custom.html
- Unterschiede: http://www.softlab.ntua.gr/facilities/documentation/unix/shelldiff.html
- Kommentare zu Shell und Skripten: http://faculty.plattsburgh.edu/jan.plaza/computing/help/shells.html
- Zsh – Offizielle FAQ: http://zsh.sourceforge.net/FAQ/zshfaq01.html
- Zsh Lovers: http://grml.org/zsh/zsh-lovers.html
- Oh My Zsh (Framework): https://github.com/robbyrussell/oh-my-zsh
- ZSH Wiki: http://zshwiki.org