Brian W. Kernighan • Rob Pike
Der UNIX-Werkzeugkasten Programmieren mit UNIX
Die deutsche Ausgabe besorgte Prof. Dr. A.-T Schreiner H INFORMATIK ! \...
Die deutsche Ausgabe besorgte Prof. Dr. A.-T Schreiner H INFORMATIK ! \J
|
Seih gebietet-
\
Standorts
i
i 11 IC i\.
_
Carl Hanser Verlag München Wien
Xlll
Inhaltsverzeichnis Vorwort Vorwort zur deutschen Ausgabe Kapitel 1: UNIX für Anfänger
v x 1
1.1
2
Die ersten Schritte Grundsätzliches zu Terminals und Tippen - Eine UNIX Sitzung - Anmelden - Kommandos eingeben - Wenn das Terminal verrückt spielt - Tippfehler - Voraustippen - Programm abbrechen - Abmelden - Post - Kommunikation am Terminal Nachrichten - Das Benutzerhandbuch - Computer-unterstützter Unterricht - Spiele 1.2 Der Alltag: Dateien und allgemeine Kommandos Dateien erzeugen: Der Editor - Was für Dateien sind eigentlich da? - Dateierx ausgeben: "cat" und "pr" - Dateien verlagern, kopieren und löschen: "mv", "cp", "rm" - Was ist ein Dateiname? - Eine Handvoll nützlicher Kommandos - Zusammenfassung der Dateikommandos 1.3 Mehr über Dateien: Kataloge Katalog wechseln: "cd" 1.4 Die Shell ,. Abkürzungen für Dateinamen - Ein- und Ausgabe umlenken Pipelines - Prozesse - Die Umgebung maßschneidern 1.5 Der Rest des UNIX Systems Geschichte und Literaturhinweise Kapitel 2: Das Dateisystem 2.1 Grundbegriffe über Dateien 2.2 Was ist eine Datei? ..., 2.3 Kataloge und Dateinamen 2.4 Zugriffsschutz : 2.5 Der Begriff der Inode 2.6 Die Dateihierarchie 2.7 Geräte '. Geschichte und Literaturhinweise X/Kapitel 3: Shell-Benutzung 3.1 3.2 3.3 3.4 3.5 3.6 _£Q3.7
3.8
Struktur einer Kommandozeile Metazeichen Ein Exkurs zu "echo" - Die UNIX und ihr Echo Neue Kommandos erzeugen Kommandoargumente und Parameter Die Ausgabe eines Programms als Argument Shell-Variablen Mehr über Ein- und Ausgabe-Umlenkung Schleifen in Shell-Programmen
Alles sinnvoll verbinden: "bündle" Warum ist die Shell programmierbar? Geschichte und Literaturhinweise ^/Kapitel 4: Filter
104 106 107 109
4.1 4.2 4.3 4.4
109 114 116 123
Die "grep"-Familie Andere Filter Der Pipeline-Editor "sed" Die Muster- und String-Programmiersprache "awk" Felder - Ausgabe - Muster - Die Muster "BEGIN" und "END" Arithmetik und Variablen - Programmablauf - Vektoren Vektoren mit Inhaltadressierung - Strings - Zusammenarbeit mit der Shell - Ein Terminkalender mit Hilfe von "awk" - Was nicht erklärt wurde 4.5 Gute Dateien und gute Filter Geschichte und Literaturhinweise /Kapitel 5: Shell-Programmierung 5.1 "cal" nach Maß 5.2 Was ist "which"? 5.3 Ereignisse abwarten: "while" und "until" Schleifen 5.4 Signale abfangen: "trap" 5.5 Eine Datei ersetzen: "overwrite" 5.6 Prozesse per Namen abbrechen: "zap" 5.7 Leerzeichen contra Argumente: "pick" 5.8 Neuigkeiten: "news" 5.9 Dateiänderungen verfolgen: "get" und "put" 5.10 Ein Blick zurück Geschichte und Literaturhinweise ' Kapitel 6: Programmieren mit "stdio" 6.1 Standard-Ein- und Ausgabe: "vis" 6.2 Kommandoargumente: "vis" Version 2 : 6.3 Dateizugriff: "vis" Version 3 6.4 Einen Schirm auf einmal: " p " :. 6.5 Ein Beispiel: "pick" 6.6 Über Fehler und Fehlersuche 6.7 Ein Beispiel: "zap" 6.8 Im Dialog Dateien vergleichen: "idiff" 6.9 Zugriff auf globale Shell-Variablen .;.-. Geschichte und Literaturhinweise Kapitel 7: UNIX Systemaufrufe 7.1 Elementare Ein- und Ausgabe Filedeskriptoren - Ein- und Ausgabe für Dateien: "read" und "write" - Dateien erzeugen: "open", "creat", "dose", "unlink" Fehlerbehandlung: "errno" - Wahlfreier Zugriff: "Iseek" 7.2 Dateisystem: Kataloge
Dateisystem: Der Begriff der Inode Ein Beispiel für Fehlerbehandlung: "sv" 7.4 Prozesse Elementare Prozeßerzeugung: "execlp" und "execvp" Prozeßsteuerung: "fork" und "wait" 7.5 Signale Zeitintervalle Geschichte und Literaturhinweise Kapitel 8: Programmentwicklung 8.L Stufe 1: Eine Rechenmaschine mit vier Operationen v/ Grammatiken - Eine Übersicht zu "yacc" - Das Programm zu Stufe 1 - Änderungen: Ein negatives Vorzeichen - Exkurs zu "make" ^ Stufe 2: Variablen und Fehlerbehandlung Stufe 3: Beliebige Variablennamen; Standardfunktionen Noch ein Exkurs zu "make" - Ein Exkurs zu "lex" 8.4 Stufe 4: Übersetzung für eine Maschine Ein dritter. Exkurs zu "make" 8.5 Stufe 5: Kontrollstrukturen und Vergleiche 8.6 Stufe 6: Funktionen und Prozeduren; Ein- und Ausgabe 8.7 Qualitätskontrolle 8.8 Ein Blick zurück Geschichte und Literaturhinweise Kapitel 9: Dokumentation ; 9.1 Das "ms" Makropaket Unformatierte Teile - Änderungen der Schriftart - Verschiedene Kommandos - Das "mm" Makropaket 9.2 Die "troff" Ebene Namen für Zeichen - Änderungen in Schrifttyp und -große Elementare "troff" Kommandos - Eigene Makros 9.3 Die Preprozessoren "tbl" und "eqn" Tabellen - Mathematische Formeln - Ausgabe erzeugen ' 9.4 Die Manualseite 9.5 Andere Werkzeuge zur Textaufbereitung Geschichte und Literaturhinweise Kapitel 10: Epilog Anhang 1: Editor-Kurzbeschreibung Die Grundlagen - Ausflug zur Shell mit "!" - Ausgabe Suchmuster - Wo sind wir überhaupt? - Anfügen, Ändern, Löschen, Einfügen - Textersatz - Metazeichen und reguläre Ausdrücke - Globale Kommandos - Zeilen verlagern und kopieren - Marken und Zeilennummern - Zeilen zusammenfügen, zerteilen und umbauen - Dateikommandos - Verschlüsselung Zusammenfassung der Kommandos