Unix-Tools, WS 01/02
Veranstalter:
Dr. Jan Bredereke
Unter Unix stehen leistungsfähige Tools
zur Verfügung, um Daten zu analysieren
und zu manipulieren, insbesondere im
Zusammenspiel mit weiteren Programmen. Ziel
dieses Kurses ist es, sich mit einigen oft
gebrauchten Werkzeugen vertraut zu machen
und zu wissen, wie und wann man sie
nutzbringend anwenden kann. Ich habe dabei
die folgende Auswahl getroffen:
- sed: kleiner batchorientierter Zeilen-Editor
- perl: Skriptsprache zur Datenanalyse und -manipulation
bei kleinen und großen Aufgaben
- make: Automatisieren der Compilierung von
Programmen aus vielen Quelldateien
- lex: Lexikalische Analyse
- yacc: Syntaktische Analyse
sed ist insbesondere in Shell-Skripten nützlich, um
Informationen aus Dateien oder der Standardausgabe von Kommandos zu
selektieren und zu manipulieren. Wenn komplexere solche Aufgaben zu
bewältigen sind, hilft perl. perl ist sowohl für
kurze Skripte gut geeignet als auch für große,
ausgewachsene Programme wie etwa aktive Webseiten mit
Datenbankanbindung. Wir werden uns allerdings im wesentlichen auf
die Grundlagen von perl beschränken, die für
Alltagsaufgaben ausreichen. make erlaubt die
Automatisierung der vielen Schritte, die zur Generierung eines
Programms aus vielen Quelldateien notwendig sind. Insbesondere dient
es der Verwaltung der Abhängigkeiten dieser Schritte, was bei
Programmänderungen wichtig wird. lex und yacc
generieren Frontends für selbstgeschriebene, spezialisierte
Analyseprogramme, z.B. für Compiler, Interpreter und
interaktive Benutzerschnittstellen.
Dieser Kurs hat 2 SWS, so daß man sich darüber wohl
nicht prüfen lassen kann. Insbesondere als Ergänzung zur
Vorlesung Betriebssysteme ist ein Besuch für Interessierte aber
mit Sicherheit trotzdem sinnvoll.
Dienstags 13:00 s.t. - 14:30 Uhr,
MZH
5300
Beginn: 23.10.2001
Bei meiner Vorbereitung werde ich folgende Bücher und Manuals verwenden:
- N. N.:
sed(1) Manual-Seite
in: LunetIX Linuxhandbuch (Juli 1993).
(ps/gzip 7 kB)
- Mike Haertel, James A. Woods und David Olson:
grep(1) Manual-Seite
in: LunetIX Linuxhandbuch (Juli 1993).
(ps/gzip 5 kB)
- Randal L. Schwartz and Tom Phoenix:
Learning Perl
O'Reilly, 3. Auflage (Juli 2001). ISBN 0-596-00132-0.
- Larry Wall, Tom Christiansen und Jon Orwant:
Programming Perl
O'Reilly, 3. Auflage (Juli 2000). ISBN 0-596-00027-8.
- Richard M. Stallman und Roland McGrath:
GNU Make -
A Program for Directing Recompilation
Version 3.79. Free Software Foundation (April 2000). ISBN-1-882114-80-9.
GNU General Public License.
(ps/gzip 300 kB -
dvi/gzip 179 kB)
- John R. Levine, Tony Mason und Doug Brown:
lex & yacc
O'Reilly, zweite korrigierte Auflage (1995). ISBN 1-56592-000-7.
- Vern Paxson:
Flex, version 2.5
University of California (1990).
(ps/gzip 108 kB)
- Charles Donelly and Richard Stallman:
Bison
Free Software Foundation (1995). ISBN-1-882114-45-0.
GNU General Public License.
(ps/gzip 186 kB)
- David MacKenzie and Ben Elliston:
Autoconf - Creating Automatic Configuration Scripts
Edition 2.52, for Autoconf Version 2.52.
Free Software Foundation (Juli 2001).
(ps/gzip 309 kB -
dvi/gzip 187 kB)
- David MacKenzie and Tom Tromey:
Automake
For version 1.5.
Free Software Foundation (August 2001).
(ps/gzip 157 kB -
dvi/gzip 77 kB)
Die Perl-Bücher gibt es auch in deutscher Ausgabe,
allerdings das erste noch nicht in der dritten Auflage.
U.a. im Addison-Wesley-Verlag gibt es ähnliche Bücher,
insbesondere vom Autoren Helmut Herold.
Ich kann keine besseren Lehrbücher schreiben als die, die es
schon gibt. Wer aber den Ablauf meiner Vorlesung noch einmal
nachvollziehen möchte, kann sich meine Skriptnotizen ansehen,
die unter anderem alle Folien und an die Tafel geschriebenen Dinge
enthalten, sowie Stichpunkte dazu und die Dateien der
Online-Vorführungen.
Die gesamten Skriptnotizen sind als
ps/gzip (203 Seiten, 907kB)
verfügbar, inklusive eines Inhaltsverzeichnisses am Ende.
Es gibt sie auch als
pdf (2,4MB).
Es sind auch noch die einzelnen Kapitel verfügbar, so wie sie
während der Vorlesung nacheinander bereit gestellt wurden:
- Kapitel 1: Überblick + Kapitel 2: sed
23.-30.10.2001 (ps/gzip, 222 kB)
- Kapitel 3: Perl
30.10.2001-13.11.2001
(Kap. 3.1-3.9: ps/gzip, 114 kB)
13.11.2001
(Kap. 3.10-3.11: ps/gzip, 188 kB)
20.11.2001
(Kap. 3.12-3.16: ps/gzip, 74 kB)
27.11.2001
(Kap. 3.17-3.18: ps/gzip, 79 kB)
4./11.12.2001
(Kap. 3.19-3.23: ps/gzip, 115 kB)
- Kapitel 4: Make
11./18.12.2001
(Kap. 4.1-4.9: ps/gzip, 112 kB)
8.1.2002
(Kap. 4.10-4.17: ps/gzip, 229 kB)
22.1.2002
(Kap. 4.18-4.21: ps/gzip, 163 kB)
- Kapitel 5: Lex
22.1.2002
(Kap. 5.1-5.3: ps/gzip, 80 kB)
29.1.-5.2.2002
(Kap. 5.4-5.12: ps/gzip, 126 kB)
- Kapitel 6: Yacc
5.2.2002
(ps/gzip, 109 kB)
- Lösungen der Hausaufgaben und Online-Aufgaben
- Kapitel 2
(ps/gzip, 58 kB)
- Kapitel 3
(bis Kap. 3.8: ps/gzip, 61 kB)
(bis Kap. 3.15: ps/gzip, 60 kB)
(bis Kap. 3.16: ps/gzip, 60 kB)
Die im Kurs online entwickelten Skripte dazu:
Das Logfile für die
Web-Log-Aufgabe.
- Kapitel 4: keine
- Kapitel 5
(bis Kap. 5.3: ps/gzip, 75 kB)
(bis Kap. 5.12: ps/gzip, 76 kB)
Die im Kurs online entwickelten Programme dazu:
- Taschenrechner-Programm, 22.1.2002:
- C-Code-u.-Kommentar-Zeilenzähler, 29.1.2002:
Beispiel-Eingabe-Dateien dazu:
- Kapitel 6
(ps/gzip, 75 kB)
Keine.
brederek@informatik.uni-bremen.de,
letzte Änderung 7. Februar 2002