next up previous contents index
Next: Bourne-Shell Up: Eine Einführung in die Previous: joe

Muscheln

Die Shell stellt die Arbeitsumgebung  einer Systembenutzerin dar, sie umgibt sie im gewissen Sinne wie die Muschel ihre Perle. (Vermutlich ist dies der Ursprung für den etwas eigentümlichen Namen.) Sie setzt dem Benutzer  den Befehlsprompt  vor, interpretiert seine Kommandos , gibt sie an die Maschine  weiter und liefert deren Antwort an den Benutzer zurück.  In ihr lassen sich diverse Umgebungsvariablen (environment variable) setzen, die von Anwendungen dann ausgewertet werden können.

Es gibt verschiedene Shells, die alle ihre Vorzüge und Nachteile haben. Auf dem Server  im Rechenzentrum  wurde standardmäßig die Bourne-Shell sh für Benutzer eingetragen. Sie ist sehr elementar und häufig der Grund, warum Anfänger ihr Unix-System nur als kryptisch und unkomfortabel in der Bedienung kennen. Daher wurde im RZ eine weitere zusätzliche Shell eingerichtet - die Bourne Again Shell bash. Es gibt noch weitere Shells (csh, ksh), die aber nicht eingehend behandelt, sondern nur am Rande mit vorgestellt und kurz verglichen werden (wer sich freiwillig für diese Shells entscheidet, weiß in der Regel was sie tut).

  table977
Tabelle:  Übersicht über Eigenschaften verschiedener Shells. Quelle: [2]

 

Die Shell wird nach erfolgtem Login  vom System für die Benutzerin  aufgerufen, bietet ihr den Befehlsprompt  und wartet auf ihre Eingaben. Vorher jedoch liest die Shell eine oder mehrere Startup-Dateien  , in der Anweisungen für sie stehen und Variablenzuweisungen erfolgen. Diese Startup-Dateien beginnen, wie eingangs erwähnt, mit einem Punkt und sind daher für ein ls ohne Option  -l nicht sichtbar. Tabelle 6.1 gibt eine kurze Übersicht über die Startup-Dateien der verschiedenen Shells und deren Namen. $ENV ist dabei der Wert der Variable ENV. Das Dollarzeichen vor einer Variablen weist die Shell jeweils an, diese zu referenzieren.

Ein Beispiel für eine Startup-Datei:

# @(#)stdprofile        Revision: 1.3     10/4/90 02:52:52
#	This is the default standard profile provided to a user.
#	They are expected to edit it to meet their own needs.

MAIL=/usr/mail/${LOGNAME:?}
export PATH="$PATH:$HOME/bin"
export PS1="`whoami`@`uname -n`\:`pwd` \$ "
export PS2='> '
export TERM=vt220
 

Der Variablen MAIL wird der Pfad  zu der Datei  zugewiesen, in der das Mailsystem des Systems  die elektronische Post des Benutzers ablegt. Die Shell überpruft in regelmäßigen Abständen den Status dieser Datei. Bei einer Änderung (Größe, Zugriffszeit)  informiert die Shell den Benutzer mit

You have mail in /usr/mail/arthur

über das Eintreffen neuer Mail .

Die Variablen PS1 und PS2 stehen für den primären und den sekundären Prompt der Shell. Im interaktiven Betrieb  zeigt die Shell den primären Prompt. Wenn weitere Eingaben für die Abarbeitung eines Kommandos  benötigt werden, erscheint der sekundäre Prompt. Die in der Beispieldatei verwendeten Kommandos gehören zum Standard-Unix-Befehlsumfang und erzeugen einen primären Prompt in der Formgif:

arthur@trillian:~$

Da in den zugewiesenen Variablenwerten Leerzeichen vorkommen, muß der gesamte Ausdruck in Hochkommata gesetzt werden. Die Shell würde sonst das Leerzeichen als Wort- und damit Befehlsende  interpretieren.

TERM verweist auf Dateien bzw. Einstellungen, die im Zusammenhang mit der eingestellten Terminalemulation  wichtig sindgif.

PATH ist der Verzeichnispfad, in dem die Shell nach ausführbaren Kommandos sucht. Durch die im Beispiel vorgenommene Erweiterung des Suchpfades um das Verzeichnis $HOME/bin besteht die Möglichkeit, innerhalb des eigenen Heimatverzeichnisses ausführbare Dateien zu speichern und diese ohne den vorangehenden kompletten Pfad aufrufen zu können.

Einige der angegebenen Shells bieten die Möglichkeit an, bereits ausgeführte Kommandos  zu wiederholen, ohne die komplette Befehlszeile  erneut abtippen zu müssen (History). Die Job-Control ermöglicht es, laufende Prozesse anzuhalten, in den Hintergrund zu schicken oder aus dem Hintergrund zurück in den Vordergrund zu holen.




next up previous contents index
Next: Bourne-Shell Up: Eine Einführung in die Previous: joe

Kai Altenfelder
Mon Dec 2 08:36:57 MET 1996