Zusammenfassung
Der Benutzer kann, soll und will in der Regel nicht direkt mit der Hardware des Rechners oder der unmittelbar darüber liegenden Schicht kommunizieren, da diese Schnittstellen nur aus Programmen über Systemaufrufe zugänglich sind.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Notes
Die Eingabe-Vervollständigung erfolgt im Stil des (heute nicht mehr anzutreffenden) Betriebssystems TENEX, daher auch das ›T‹ im Namen.
Für die A-Shell ist auch die Bezeichnung ›Adventure Shell‹ zu finden.
Auf einigen älteren UNIX-Systemen führt rsh allerdings nicht zu einer Remote Shell, sondern zu einer Restricted Shell.
Die aktuelle Version der bash zum Zeitpunkt der Entstehung dieses Textes ist 2.05b.0.
Normalerweise sind die gültigen Trennzeichen white spaces, d. h. das Leerzeichen, das Tabulatorzeichen (<tab>) und das Zeilenende (<neue zeile > = <new line>). Sie können jedoch mit Hilfe der Shell-Variablen IFS neu definiert werden.
Die Shell merkt sich die Position (im Gesamtdateibaum) der gefundenen Datei, um sie beim nächsten Aufruf schneller erreichen zu können. Diese interne Suchliste kann durch das Komman-do hash-r gelöscht und somit ein Neuaufbau veranlasst werden.
Die Konzepte dieser Komfortfunktionen entstammen der C-Shell und der Korn-Shell, wurden aber von den Entwicklern der bash weiter verfeinert und bis und Unüberschaubarkeit erweitert.
Viele dieser Funktionen — insbesondere das Wiederholen und Editieren bereits eingegebener Kommandos — bringen in der Tat eine deutliche Komfort-und Produktivitätssteigerung. Bei einigen Funktionen ist jedoch der Aufwand, sie tatsächlich und schnell zu nutzen, größer als der mögliche Gewinn an Schnelligkeit. Kurz: Dauert die Anwendung einer Komfortfunktion länger als die (unkomfortable) Eingabe eines Kommandos, kann durchaus auch auf die Komfortfunktion verzichtet werden.
Die Bedienung des vi, wie sie auch für das Editieren der Kommandozeile im vi-Modus gilt, ist im Kapitel 5.2 auf Seite 461 beschrieben.
Die Umlenkung ist damit auch nicht mehr in der Argumenteliste enthalten, welche die Shell dem aufgerufenen Programm bzw. Kommando übergibt. Die Umlenkung darf an beliebiger Position auf der Kommandozeile stehen (d.h. vor, innerhalb oder nach der Parameterliste). Aus Gründen der Übersichtlichkeit wird jedoch die Umlenkungs-angabe als letzte Angabe eines Kommandos empfohlen.
Wurde die Shell-Option noclobber (oder die Aufrufoption —C) gesetzt, so wird die Datei nicht überschrieben.
Hintergrundprozesse können damit nicht von der Tastatur lesen, was sehr wichtig ist, um Verwechslungen bei der Eingabe zu verhindern.
Für einen Hintergrundprozess ist ohne explizite Umlenkung nicht die Tastatur, sondern /dev/null die Standardeingabe. Damit wird verhindert, dass der im Hintergrund laufende Prozess dem im Vordergrund laufenden Prozess Eingaben wegnimmt.
Prozesse werden in der Fachsprache auch als jobs bezeichnet; bei der Steuerung von Hintergrundprozessen spricht man daher auch von job control. In der ursprünglichen Bourne-Shell gab es keine job control. Diese wurde erst mit der C-Shell eingeführt, ist seither aber in allen modernen Shells in ähnlicher Form enthalten. Standardmäßig ist die Prozessverwaltung (job control) der bash aktiviert. Sollte das nicht der Fall sein, kann sie mittels ›set-m‹ oder ›set-o monitor‹ eingeschaltet werden.
Die Jobnummer ist nicht systemweit eindeutig, sondern wird von der jeweils startenden Shell vergeben und hochgezählt.
Das Kommando sh ist intern ein Aufruf der bash, führt aber dazu, dass diese sich weitegehend wie die alte Bourne-Shell verhält. Dies ist für die fehlerfreie Abarbeitung älterer oder von UNIX stammender Kommandoprozeduren nützlich.
Eine Zuweisung nach dem Schema ›1=wert‹ ist hier nicht möglich!
Unterbleibt dies, so substituiert die Shell den Wert des einstelligen Parameters und gibt die zweite Stelle einfach mit aus.
Die bash etwa durchläuft bei ihrem Aufruf die Dateien. bush_profile,. bashrc und beim Abmelden die Datei. bash_logout im Verzeichnis $HOME. Eine ausführliche Beschreibung diese Dateien ist auf S. 531 zu finden.
Die geschweiften Klammern zeigen hier keinen optionalen Teil an, sondern sind Teil der Eingabe!
Das Schlüsselwort function ist optional, sollte aber aus Gründen der besseren Lesbarkeit insbe-sondere in längeren Kommandoprozeduren verwendet werden.
Das in der Shell eingebaute Kommando trap ist auch auf Seite 580 beschrieben.
Zu den Signalnummern und ihren symbolischen Namen und Funktion siehe Anhang A.6, Tabelle A. 15 im auf Seite 866.
Hier muss nur nach Nachfolge-Shells der originalen Bourne-Shell gesucht werden; C-Shell-abstammende Shells wie die tcsh durchlaufen die Datei /etc/profile nicht.
UCB steht für ›University of California Berkeley‹ und BSD für ›Berkeley System Distribution‹.
Das ›T‹ der TC-Shell stammt vom Kommandointerpreter des TENEX-Systems, der einige Funktionen bot, die für die TC-Shell übernommen wurden. Das TENEX-System wurde von der Firma Bolt, Beranek & Newman entwickelt, die u. a. auch führend an der Entwicklung des frühen Internet beteiligt war.
/usr/bin/csh ist hier meist ein symbolischer Verweis auf /usr/bin/tcsh.
Anwendung und Kommandos zur Prozesskontrolle funktionieren in bash und tcsh identisch. Siehe hierzu auch Die Steuerung von Hintergrundprozessen (job control) auf Seite 545.
Dies ist normalerweise durch einen Eintrag in der Datei /etc/passwd (letztes Feld) möglich.
Skripten mit Syntax und Kommandos der Bourne-Shell und ihrer Nachfolger (bash, zsh) können von der TC-Shell nicht abgearbeitet werden, was auch umgekehrt gilt.
Per Konvention werden die Variablennamen in der Bourne-und allen davon abstammenden Shells meist in Großbuchstaben, in der C-Shell und ihren Nachfolgern meist in Kleinbuchstaben geschrieben. Dies ist jedoch nicht zwingend.
Author information
Authors and Affiliations
Rights and permissions
Copyright information
© 2003 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Gulbins, J., Obermayr, K., Snoopy (2003). Die Shell als Benutzeroberfläche. In: Linux. X.Systems.press. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-55474-2_6
Download citation
DOI: https://doi.org/10.1007/978-3-642-55474-2_6
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-62464-3
Online ISBN: 978-3-642-55474-2
eBook Packages: Springer Book Archive