9. Die Arbeitsumgebung

Die Shell ist das wichtigste Programm Ihrer Arbeitsumgebung. Unter DOS heißt die Shell command.com. Die Shell interpretiert die Befehle, die Sie auf der Kommandozeile eingeben und kommuniziert so mit dem Rest des Betriebssystems. Sie können auch Shellskripte schreiben, die den DOS-Batchdateien ähnlich sind. Es handelt sich dabei um eine Folge von Befehlen, die hintereinander ausgeführt werden.

Zwei Shells werden von FreeBSD automatisch installiert: csh und sh. csh ist für die Arbeit auf der Kommandozeile komfortabler, Skripten sollten allerdings für sh (oder für bash) geschrieben werden. Mit echo $SHELL können Sie herausfinden, welche Shell benutzt wird.

Die csh-Shell ist zwar nicht schlecht, aber die tcsh-Shell kann alles, was die csh kann und einiges mehr. Sie erlaubt es Ihnen, ausgeführte Befehle mit den Pfeiltasten wieder aufzurufen und diese sogar zu verändern. Dateinamen oder Befehle können mit der Tabulator-Taste automatisch vervollständigt werden (csh nutzt dafür ESC) und mit cd - können Sie schnell in das zuletzt verwendete Verzeichnis wechseln. Auch der Prompt lässt sich unter der tcsh-Shell wesentlich einfacher anpassen. All diese Eigenschaften erleichtern den Umgang mit dem Betriebssystem.

Wollen Sie eine neue Shell installieren, gehen Sie wie folgt vor:

  1. Installieren Sie die Shell als Port oder Paket genau so, wie Sie jedes andere Programm als Port oder Paket installieren würden. Rufen Sie dann rehash sowie which tcsh auf (wir nehmen hier an, dass Sie tcsh installieren wollen), um sicher zu gehen, dass alles korrekt installiert wurde.

  2. Als root editieren Sie nun /etc/shells, und fügen eine Zeile für die neue Shell ein, in unserem Fall also /usr/local/bin/tcsh. Danach speichern Sie die Datei (Einige Ports erledigen diesen Schritt automatisch für Sie.).

  3. Nutzen Sie chsh, um tcsh dauerhaft als Ihre Shell zu definieren. Alternativ geben Sie einfach tcsh ein, ohne sich neu am System anzumelden.

Anmerkung: Bei früheren Versionen von FreeBSD und einigen anderen Versionen von UNIX® traten Probleme auf, wenn root eine andere Shell als sh oder csh zugewiesen wurde; sie hatten dann keine funktionierende Shell, wenn das System im Single-User-Modus ausgeführt wurde. Die Lösung besteht darin, su -m einzugeben, um root zu werden, weil damit root die tcsh zugewiesen wird, da diese Shell Teil der Umgebung ist. Dies kann auch fest als Alias in .tcshrc eingetragen werden:

alias su su -m

Wenn tcsh startet, werden /etc/csh.cshrc und /etc/csh.login eingelesen (analog zur csh). Ebenfalls eingelesen werden .login und .cshrc des Heimatverzeichnisses, falls .tcshrc nicht gefunden wurde. Sie können auch einfach .cshrc nach .tcshrc kopieren.

Da tcsh nun installiert ist, kann der Prompt angepasst werden. Details dazu finden Sie in tcsh(1). Die hier vorgeschlagene Zeile können Sie in Ihre .tcshrc eintragen. Dadurch wird angezeigt, wie viele Befehle bereits eingegeben wurden. Außerdem erhalten Sie die aktuelle Uhrzeit sowie das aktuelle Arbeitsverzeichnis. Für den gewöhnlichen Benutzer wird ein > und für root ein # ausgegeben. Dabei handelt es sich um die Standardeinstellung von tcsh:

set prompt = "%h %t %~ %# "

Diese Zeile sollte an derselben Stelle eingefügt werden, wie die vorhandene "set prompt" Zeile oder nach "if($?prompt) then". Kommentieren Sie die alte Zeile aus, damit diese notfalls wieder benutzt werden kann. Vergessen Sie auch auf keinen Fall die Leerzeichen und Hochkommata. .tcshrc wird neu eingelesen, wenn Sie source .tcshrc eingeben.

Eine Liste aller Umgebungsvariablen erhalten Sie, wenn Sie am Prompt env eingeben. Sie sehen dann den Default-Editor, -Pager, -Terminaltyp und viele andere Umgebungsvariablen. Falls Sie sich von einem entfernten Rechner anmelden und ein Programm nicht starten können, weil das Terminal dazu nicht in der Lage ist, kann die Eingabe von setenv TERM vt100 sehr hilfreich sein.

Wenn Sie Fragen zu FreeBSD haben, schicken Sie eine E-Mail an <de-bsd-questions@de.FreeBSD.org>.
Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie eine E-Mail an <de-bsd-translators@de.FreeBSD.org>.