Unix-Shells

Aug. 13, 2011·
Julio Batista Silva
Julio Batista Silva
· 2 Min Lesezeit

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)
  1. C shell (csh)

    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.

  2. TC shell (tcsh)

    Im Wesentlichen C‑Shell mit Extras wie Tab‑Completion, Zeilen‑Editor und besserer History.

  3. Bourne Shell (sh)

    Die traditionelle Shell (Stephen Bourne, Bell Labs, 1977). War Standard in Unix Version 7 und ist weiterhin verbreitet.

  4. Bourne‑again Shell (Bash)

    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.

  5. Korn shell (ksh)

    1983 von David Korn (AT&T Bell Labs). Voll kompatibel zu Bourne‑Shell, mit vielen zusätzlichen Features, teils aus der C‑Shell übernommen.

  6. Z shell (zsh)

    1990 von Paul Falstad (Princeton). Sehr umfassend; lässt sich als Erweiterung der Bourne‑Shell mit Features aus bash, ksh, tcsh verstehen und bringt eigene Funktionen (z. B. Rechtschreibkorrektur) mit.

Da Zsh meine Lieblings‑Shell ist, beschreibe ich Installation und Konfiguration (Arch Linux).

  1. In /etc/shells prüfen, welche Shells installiert sind. Falls zsh fehlt, installieren:

    sudo pacman -S zsh
    
  2. Installation testen und Grundkonfiguration vornehmen:

    zsh
    
  3. Zsh als Standard‑Shell setzen (wirkt nach erneutem Login):

    chsh -s $(which zsh)
    
  4. Hauptkonfigurationsdatei ~/.zshrc bearbeiten.

    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/zsh
    

    Meine Dotfiles: https://github.com/jbsilva/dotfiles.


Julio Batista Silva
Autoren
Senior Cloud-Entwickler
comments powered by Disqus