Berichte eines Anfängers:
Verschiedene Shells:
[UNFERTIG]

Was ist eine Shell? So genau weiß ich es auch nicht, aber wie der Leser bereits gemerkt haben sollte, hier gibt ein Anfänger Tips an andere Anfänger, das heisst das ich keine fundierte Kenntnisse habe.

Man könnte eine Shell als Eingabeebene für den Benutzer bezeichnen. Unter Linux findet man in den heutigen Distributionen eine große Auswahl von Shells von Ash bis Zsh.

GNU Derivate und sonstige Clones:

Die Shells die mit Linux mitkommen sind meistens GNU Shells und Clones von Originalen. Die "Borne Again Shell" /bin/bash ist ein Imitator der "Bourne Shell" /bin/sh. Wenn Sie mal "ls -l /bin/sh" tippen sollten Sie in Ihrem Linux eigentlich einen Link auf /bin/bash finden. TCSH ist der Clone der C-Shell. Wobei so genau kann man das nie sagen, da diese Shells sich alle doch weiterentwickeln und eigentlich doch differieren. Also es sind streng genommen keine Clones oder Emulatoren sondern parallel laufende Entwicklungen.

ls -l /bin/shL
/bin/bash

Woran erkenne ich welche Shell ich nutze?
Die Eingabe von "echo $SHELL" sollte dies ausgeben, aber man darf nicht vergessen, hier kommt nur die Ausgabe von der Shell die für einen User Standardmäßig eingestellt ist. Diese steht in der Datei "/etc/passwd", mit "cat" kann man sich diese Datei anzeigen lassen. Jedoch nur der Superuser "root" darf diese Datei manuell ändern.

echo $SHELL
/bin/bash

cat /etc/passwd

Wenn man inzwischen eine andere Shell gestartet hat kann man es aus der Ausgabe von "echo $SHELL" bzw. "cat /etc/passwd" nicht ersehen, aber die Ausgabe von Process-Status "ps" sollte hier helfen: "ps -u" gibt die Usereigenen Tasks aus, das heißt alle Shells die Sie gestartet haben sollten hier aufgeführt sein.

ps -u

Angenommen Sie nutzen die BASH und möchten mal die TCSH nur kurz sehen. Dafür reicht es wenn Sie "tcsh" tippen. Schon sind sie in der TC-Shell. Mit "Ctrl+D" oder der Eingabe von "exit" kommen Sie wieder zu Ihrer ursprünglichen Shell zurück. Eine permanente Änderung kann man mit dem Befehl Change-Shell "chsh" erreichen. Ein Änderung wird bei erneutem login wirksam.

Wenn Sie mal sehen wollen welche Shells Ihnen zur Verfügung stehen können Sie folgendes eintippen:

ls -l /bin/*sh
ls -l /usr/bin/*sh

Wie gesagt, die Skriptsprache /usr/bin/tclsh kann man auch als

"chsh" sollte die zur Verfügung stehenden Shells anzeigen und die Eingabe einer anderen Shell nicht akzeptieren. Haben Sie solch ein "chsh" welches nicht prüft ob die Shell vorhanden ist bzw. für Sie verfügbar ist, kann es beim nächsten Login zu einem kleinen Problem kommen. Sie tippen Ihren Namen und ihr Passwort ein, kriegen aber keine Shell zum arbeiten. In diesem Fall sollte der Superuser "root" Ihre Shell ändern. Dies kann er mit "chsh USERNAME" oder z. B. "chsh USERNAME /bin/bash" erreichen.

Mir ist dies mal aus versehen passiert, ich konnte mich als "root" nicht mehr einloggen und auch als normaler User keinen Superuser-Befehl "su" eingeben.

Sollten Sie zufällig als "root" Ihre Shell "zerschoßen" haben, so bleibt Ihnen immer noch die Möglichkeit den Rechner im Single-User Modus hochzufahren. Beim prompt von LILO tippen Sie die TAB-Taste um zu sehen welche Kernel zur Verfügung stehen und geben dann ein: "KERNELNAME single". So kommen Sie ohne Shell als "root" ins System.

(erstellt ende 1997).