Vor- und Nachteile verschiedener Shells

Ratgeber: Shells für Linux und Unix richtig nutzen

Die C-Shell: csh

Für BSD wurde die C-Shell entwickelt. In dieser kann bereits die Kommandozeile editiert werden; außerdem besitzt die C-Shell eine History-Funktion, über die frühere Kommandos wiederholt werden können. Darüber hinaus hat der Entwickler Bill Joy eine Job-Kontrollmöglichkeit implementiert. Mit der Tastenkombination [Strg-Z] kann das Ausführen eines Kommandos gestoppt und dann beispielsweise mit dem Befehl bg in den Hintergrund verschoben werden.

Die C-Shell wird heutzutage kaum noch benutzt. Das mag unter anderem an einigen Unzulänglichkeiten der Skriptmöglichkeiten liegen: So werden beispielsweise Fehlermeldungen nur auf der Standardausgabe ausgegeben. Andere Shells wie die Tenex-C-Shell tcsh und die Korn-Shell sind inzwischen in die Fußstapfen der C-Shell getreten und haben diese weitgehend abgelöst.

Die Debian-Almquist-Shell: dash

Die dash (Debian-Almquist-Shell) ist in Debian und Ubuntu die Standard-Shell für Shell-Skripte. Weil die dash aber im interaktiven Modus unkomfortabel ist, bleibt die bash die User-Standard-Shell. Ziel der dash-Entwicklung war es, die Shell so klein wie möglich zu halten und die Ausführung der Skripte dementsprechend zu beschleunigen. Die POSIX-konforme Implementation von /bin/sh ist ein Abkömmling der NetBSD-Version der ash (Almquist Shell), und die ist wiederum eine Neuimplementierung der Bourne-Shell.

Die dash wurde 1997 von BSD auf Linux portiert und heißt seit 2002 dash. In der Manpage empfehlen die Entwickler, Setuid-Shell-Skripte unbedingt zu vermeiden, da diese ein erhebliches Sicherheitsrisiko darstellen. Ein kleineres Problem, auf das die Entwickler hinweisen: Die Parameter der drei möglichen Promptstrings sollten festgelegt werden, bevor sie angezeigt werden.