csh (C Shell) wurde 1978 von Bill Joy an der University of California, Berkeley, entwickelt und mit BSD Unix verbreitet. Ihre Syntax lehnt sich an die Programmiersprache C an. csh führte mehrere Komfort-Features ein, die heute selbstverständlich sind: History, Aliase und Job Control.

Erste Schritte

setenv PATH "$PATH:/usr/local/bin"
alias ll 'ls -l'
history
!!            # letztes Kommando wiederholen
!$            # letztes Argument wiederholen

Kernkonzepte

  • setenv / set: Umgebungs- bzw. lokale Variablen (set var = wert, Zugriff über $var)
  • alias: Kurzbefehle definieren
  • history: Liste der letzten Kommandos, Wiederholung über !-Kürzel
  • Job Control: jobs, fg, bg, %1 für Hintergrund-/Vordergrundprozesse
  • switch/case: C-artige Verzweigung in Skripten
  • foreach: Schleife über Listen

Einordnung

csh war als interaktive Shell sehr beliebt, ihre Skriptsprache gilt jedoch als fehleranfällig und ist nicht POSIX-konform — für Skripte empfiehlt sich bis heute die Bourne-Shell-Familie wie Bash. Die C-Shell-Linie lebt in tcsh weiter, das als direkter Nachfolger fast überall csh ersetzt hat.