G. Martin/M. Trostmann. Programmieren mit UNIX

Ähnliche Dokumente
D. Herrmann. Probleme und Lösungen mi t Turbo-Prolog

Gerhard Moll. Rechenstru kturen und Geometrie mit LOGO

K. Haussmann. logo? logo!

Dietmar Herrmann. Programrnierprinzipien in BASIC und Pascal

H. R. Behrendt/H. Junghans. Einführung in die Anwendung des Betriebssystems Apple DOS (Apple II)

H. Kreth. C. P. Ortlieb. Lehr und Obungsbuch fur die Rechner SHARP PC-1246/47 PC-1251 PC-1260/61 PC-1350 PC-1401/02

Wolfgang Schneider. EinfUhrung in die Anwendung des Betriebssystems MS -DOS

P. P. Bothner W.-M. Kähler. Einführung in die Programmiersprache APL

Jakob Schwarz. DOS Einsteigen leichtgemacht

Ekkehard Kaier. Informationstechnische Grundbildung Multiplan

H. Pudlatz. Einführung in die Programmiersprache Modula-2

Vieweg Programmbibliothek Mikrocomputer 39. Simulationen in BASIC mit dem IBM PC, XT, AT

F. Sause W. Tölle. Einführung in die Programmiersprache C++

Peter F. Orlowski. Simulation und Optimierung von Regelkreisen mit dem IBM AT und Kompatiblen

Der UNIX-Werkzeugkasten Programmieren mit UNIX

Ekkehard Kaier. Informationstechnische Grundbildung Turbo Pascal

Paul Schmitz Werner Dinkelbach (Hrsg.) Arbeitsbuch zum Macintosh

G. Oetzmann. Commodore-Volkscomputer

Ekbert Hering. Mathematische Probleme der Betriebswirtschaft in BASIC mit dem IBM PC

M. Bohmer. Programmieren mit TURBO BASIC

Vieweg Programmbibliothek Mikrocomputer 14. Lineares Optimieren Maximierung- Minimierung 11 HP-41-Programme

Rene Steiner. Theorie und Praxis relationaler Datenbanken

Ekkehard Kaier. Informationstechnische Grundbildung MS-DOS

Regina B. und Rolf B. Baumeister (Hrsg.) Chart Software Training

Wolfgang Schneider. Einführung in BASIC

Anton Liebetrau. Turbo Pascal 4.0. von A.. Z

Berthold Schuppar. Logo-Programmierkurs fur Commodore 64 Logo \md Terrapin Logo (Apple II)

Stefan Hering PC TOOLS 6.0. Ein praxisgerechtes Nachschlagewerk

H. Günther. Programme und Tools für Erddruck und Erdwiderstand mit gekrümmten und ebenen Gleitflächen

Ursula Schindler Kurt Klinner Wolfram Nestler. Excel-Grundlagen der Makroprogrammierung

1 EINLEITUNG Übersicht zum Buch... 5

Wolfgang Schneider. Einführung in BASIC

Ludwig Brandt. Antennentechnik. BASIC-Programme für den PC

Regina B. und Rolf B. Baumeister (Hrsg.) dbase III Software Training

Unix/Linux Grundlagen für Einsteiger

UNIX Shell-Programmierung

Eugen Gehrer. Musik mit dem TI 99/4A

JOrgen Kahmann. Numerische Mathematik Programme fur den T I 59

Hansrobert Kohler. FORTRAN-Trainer

Dieter Lange. Methoden der Signalund Systernanalyse Eine Einfuhrung mit dem Personalcomputer

Georg Fischer. DOS Profi Utilities mit Turbo Pascal

Inhalt. Einführung in die Strukturierte Programmierung 15

Claudia Borchard-Tuch. Computersysteme - Ebenbilder der Natur?

Karl Udo Bromm. BASIC-Programme aus der Mathematik und Physik auf dem Commodore 64

VGA und SuperVGA professionell programmiert

UNIX und С Ein Anwenderhandbuch

Klaus P. Greis WORD 5.5. Einsteigen leichtgemacht

Fortsetzung auf der 3. UmSchlagseite

Klaus-Dieter Tillmann. DFÜ Datenfernübertragung im Apple-Pascal-System

Jurgen Burberg Peter Schneid erlochner. Microsoft Excel 3.0. Einsteigen leichtgemacht

Werner Brecht. Einführung in UNIX

Turbo Pascal 5.0. Programmieren von Mikrocomputem. Band 39. Ekbert Hering Joachim Rasch. fur N aturwissenschaftler und Ingenieure

Inhaltsverzeichnis. Vorwort 1. 1 EINLEITUNG Übersicht zum Buch 5

Dietrich Krekel Wolfgang Trier. Die Programmiersprache PASCAL

Turbo Pascal 5.0/5.s Units und Utilities

Gerd Harbeck. Turbo Pascal unter MS-DOS

Ronald Schnetzer. Business Process Reengineering kompakt und verständlich

Walter Schlee. Einführung in die Spieltheorie

Aufgaben zum Skriptum Informatik

Sichtweisen der Informatik

Annette Weinert. Programmieren mit Ada und C

A. Schelten P.F.E. Sloane G.A. Straka (Hrsg.) Perspektiven des Lemens in der Berufsbildung

Gerd Harbeck. Einfiihrung in Turbo Pascal unter CP/M 80

Aufgabensammlung Technische Mechanik 2

Heribert Meffert Marketing- Arbeitsbuch

Dietmar Abts. Masterkurs Client/Server-Programmierung mit Java

Shell-Programmierung für Unix und Linux

MS SQL Server Einstieg in relationale Datenbanken und SQL Marco Skulschus Marcus Wiederstein

Claus von Eitzen. Datenbankanwendungen mit FileMaker Pro

Ho ward Franklin I J oanne Koltnow I LeRoy Finkel. Spielprogramme für den APPLE Ile

Shell-Programmierung fur Unix und Linux

Aufgaben zum Skriptum Informatik

Hans-Jürgen Holland Uwe Bernhardt. Exeel für Techniker uncl Ingenieure

Ekkehard Kaier. Visual Basic Essentials

Datenbankprogrammierung mit MySQL 5 und PHP 5 Spona

Wilfried Saker. PCLLevelY. Einfiihrung in die Programmierung mit dem HP LaserJet III

Einführung in Perl O'REILLY" 2. Auflage. Randal L. Schwartz & Tom Christiansen. Deutsche Übersetzung von Matthias Kalle Dalheimer

Hans-Jürgen Holland Frank Bracke.!xcel für Techniker und Ingenieure

TopSpeed Modula-2 Units und Utilities

Franco di Primio Hybride Wissensverarbeitung

K. Hoyer und G. Schnell. Einfache Ausgleichsvorgänge der Elektrotechnik

Hans-Georg Kemper Henning Baars. Business Intelligence Arbeits- und Übungsbuch

Regina 8. und Rolf 8. Baumeister (Hrsg.) Word Software Training

UNIX und С. Ein Anwenderhandbuch. Dr.-Ing. Ludwig Claßen DipÜ-Math. Ulrich Oefler VEB VERLAG TECHNIK BERLIN. 3., durchgesehene Auflage

I Grundlagen der System-Administration 8

PETER NORTON. PROG~ffiRHANDBUCH. FÜR DEN mm pe

H. H. Gloistehn. Numerische Methoden bei Integralen und gewohnlichen Differentialgleichungen fur PTR (AOS)

Ariacutty Jayendran. EngUsch fur Maschinenbauer

Karl-Heinz Bruck (Hrsg.) FAHRZEUG VERGLASUNG

Elke WeiklRainhart Lang (Hrsg.) Moderne Organisationstheorien 2

Onshape kurz und bündig

Hanfried Kerle. Getriebetechnik Dynamik für UPN- und AOS-Rechner

III.1 Prinzipien der funktionalen Programmierung - 1 -

Ein- und Ausgabeumlenkung

Günther Bourier. Statistik-Übungen

Fortsetzung auf der 3. Umschlagseite

Aufgabensammlung Fertigungstechnik

Transkript:

G. Martin/M. Trostmann Programmieren mit UNIX

Programmieren von Mikrocomputern Die Bande dieser Reihe geben den Benutzern von Heimcomputern. Hobbycomputern bzw. Personalcomputern iiber die Betriebsanleitung hinaus zusatzliche Anwendungshilfen. Oer Leser findet wertvolle Informationen und Hinweise mit Beispielen zur optimalen Ausnutzung seines Gerates. besonders auch im Hinblick auf die Entwicklung eigener Programme. Bisher erschienene Bande Band 1 Einfiihrung in BASIC Band 16 Einfiihrung in die Anwendung des Betriebssystems M8-DOS Band 3 BASIC fiir Fortgeschrittene Band 17 Einfiihrung in die Anwendung des UCSD p-systems Band 4 Einfiihrung in Pascel von K. Buckner/M. J. Cookson I A. I. Hinxmanl A. Tate Band 6 BASIC-Programmierbuch zu den Band 18 Mikrocomputer COBOL grundlegenden Ablaufstrukturen von W. Kahler der Datenverarbeitung von E. Kaier Band 19 Fortgeschrittene Programmier techniken in Turbo Pascel Band 7 Lehr und Obungsbuch fiir von E. Hering und K. Scheurer Commodor.Volkscomputer von G. Oetzmann Band 20 Einfiihrung in die Anwendung des Betriebssystems Apple DOS Band 9 Einfiihrung in die Anwendung des (Apple III Betriebssystems CP 1M von H. R. Behrendt und H. Junghans Band 10 Datenstrukturen in Pascel und BASIC von O. Herrmann Band 11 Programmierprinzipien in BASIC und Pascal von O. Herrmann Band 13 Strukturiertes Programmieren in BASIC Band 14 Logo Programmierkurs fiir Commodore 64 Logo und Terrapin Logo (Apple III von B. Schuppar Band 22 Einfiihrung in Turbo Pascel unter CP/M80 von G. Harbeck Band 23 Pascal mit der Turtle von K. und K. H. Beelich Band 24 Programmieren mit UNIX von G. Martin und M. Trostmann Band 25 Murmeltierwelt und Pascal von H. Pinke Band 27 Sprachverarbeitung mit LISP und Prolog auf dem PC von J. Handke Band 15 Entwerfen von Program men (Commodore 641 von G. Oetzmann

Programmieren von Mikrocomputern Band 24 G lin ter Martin Manfred Trostmann Programmieren mitunix Eine Einfiihrung in das Betriebssystem 2., durchgesehene und verbesserte Auflage Herausgegeben von Harald Schumny Springer Fachmedien Wiesbaden GmbH

Das in diesem Buch enthaltene Programm-Material ist mit keiner Verpflichtung oder Gar an tie irgendeiner Art verbunden. Die Autoren, der Herausgeber und der Verlag ubernehmen infolgedessen keine Verantwortung und werden keine daraus folgende oder sonstige Haftung ubernehmen, die auf irgendeine Art aus der Benutzung dieses Programm-Materials oder Teilen davon entsteht. 1. Auflage 1986 2., durchgesehene und verbesserte Auflage 1987 Alle Rechte vorbehalten Springer Fachmedien Wiesbaden, 1987 Ursprunglich erschienen bei Friedr. Vieweg & Sohn Verlagsgesellschaft mbh, Braunschweig, 1987 Das Werk einschlieslich aller seiner Teile ist urheberrechtlich geschiitzt. Jede Verwertung aukerhalb der engen Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des Verlags unzulassig und strafbar. Das gilt insbesondere fiir Vervielfaltigungen, Obersetzungen, Mikroverfilmungen und die Einspeicherung und Verarbeitung in elektronischen Systemen. ISBN 978-3-528-14358-9 ISBN 978-3-663-13968-3 (ebook) DOI 10.1007/978-3-663-13968-3

v Inhaltsverzeichnis Vorwort 1 1 Einfiihrung 3 1.1 Historische Entwicklung... 3 1.2 Die Struktur von UNIX............................... 5 1.3 Dateien.......................................... 6 1.3.1 Struktur des Dateisystems... 6 1.3.2 Dateischutz................................... 8 1.3.3 Reprasentation von Dateien...................... 9 1.4 Prozesse... " 10 1.4.1 Definition Prozea............................... 10 1.4.2 Prozeaverwaltung............................... 11 1.4.3 Scheduling und Prioritatenvergabe.................... 15 1.5 Merkmale der Kommandosprache... 17 1.5.1 Ausfiihren von Kommandos........................ 17 1.5.2 Standard Dateien............................... 19 1.5.3 Umlenkung................................... 19 1.5.4 Filter uhd Pipes................................ 21 1.5.5 Metazeichen... 23 1.5.6 Kommando-Sequenzen und Hintergrund-Jobs... 24 1.5.7 Kommandoprozeduren... 25 2 Shell-Kommandos 26 2.1 Zugang zum System... 26 2.2 Manual-Benutzung und Systemauskunft.................... 28 2.3 Statusabfrage...................................... 30 2.4 Navigieren im Dateisystem... " 33 2.5 Datei-Inhalt betrachten............................... 37 2.5.1 Ausgabe am Terminal... 37 2.5.2 Erkennen des Datei-Inhalts......................... 38 2.5.3 Dateien ausdrucken.............................. 39 2.6 Anderungen im Dateisystem... 39 2.6.1 Dateien kopieren... 39 2.6.2 Dateinamen andern... 41 2.6.3 Zugriffsrechte andern... 43 2.6.4 Dateien und Directories loschen... 44 2.6.5 Directories erzeugen... 45 2.7 Prozesse steuern... 45 2.7.1 Prioritaten setzen, Hindergrundprozesse... 46 2.7.2 Prozesse abbrechen... 46

VI Inhaltsverzeiehnis 3 Der Bildschirmeditor vi 3.1 Grundlagen.... 3.1.1 vi aufrufen und beenden.... 3.1.2 Kommando-Eingabe.... 3.1.3 Fenster und Cursor positionieren.... 3.2 Texteingabe und -iinderung.... 3.2.1 Text einfiigen.... 3.2.2 Xndern und Losehen.... 3.2.3 Versehieben und Kopieren von Text.... 3.3 Suehen und Ersetzen.... 3.3.1 Einfaehes Suehen.... 3.3.2 Freies Suehen und Ersetzen.... 3.3.3 Sukzessives Suehen und Ersetzen.... 3.4 Versehiedenes... 57 3.4.1 Dateien einfiigen und ausgeben...................... 57 3.4.2 Ausfiihren von Shell-Kommandos... 57 3.4.3 Makros...................................... 58 3.4.4 Optionen einstellen.............................. 59 4 Programmieren mit Filtern... 60 4.1 Formatierte Ausgabe................................. 64 4.1.1 Das Kommando pr.............................. 64 4.1.2 Mehrspaltige Ausgabe mit pr........................ 65 4.1.3 Zeilenumbrueh................................. 67 4.1.4 Tabulatoren bearbeiten........................... 67 4.2 Sortieren......................................... 68 4.2.1 Der Satz als Sortiersehliissel... 69 4.2.2 Sortieren naeh Feldern... 71 4.2.3 Misehen... 74 4.2.4 Die Grenzen von sort............................. 75 4.3 Zeiehen umwandeln... 76 4.4 Ziihlen...................................... 78 4.4.1 Das Kommando we.............................. 79 4.4.2 Das Kommando uniq............................. 80 4.5 Zeiehenketten suehen................................ 83 4.5.1 Die grep-familie................................ 83 4.5.2 Einfaehe Zeiehenketten suehen...................... 84 4.5.3 Suehen von Mustern... 87 4.5.4 Die Grenzen von grep... 90 4.5.5 Biniires Suehen................................. 90 4.6 Vergleiehen von Dateien... 91 4.6.1 Das Kommando emp............................. 91 4.6.2 Das Kommando diff............................. 92 4.6.3 Das Kommando eomm... 97 48 48 48 50 50 51 51 52 52 54 54 55 56

I nhaltsverzeichnis VII 5 Shell als Programmiersprache 101 5.1 Einfiihrende Beispiele... 101 5.1.1 Ausfiihren einer Kommandoprozedur.................. 102 5.1.2 Argumente... 103 5.1.3 Ablaufbeobachten... 104 5.1.4 Beispiel Telefonbuch-Prozedur... 105 5.2 Shell-Variablen..................................... 105 5.2.1 Format einer Shell-Variablen... 105 5.2.2 Giiltigkeitsbereich von Shell-Variablen... 106 5.2.3 Reservierte Variablen... 107 5.2.4 Zugriff auf den Inhalt einer Variablen.................. 108 5.2.5 Zuweisung an Variablen........................... 108 5.2.6 Variablen einlesen............................... 109 5.3 Kontrollstrukturen.................................. 11 0 5.3.1 Die for-schleife... 111 5.3.2 Die case-anweisung.............................. 112 5.3.3 Boolesche Bedingungen........................... 115 5.3.4 if-an wei sung..., 116 5.3.5 while- und until-schleife... 118 5.4 Fortgeschrittene Anwendungen... 121 5.4.1 Daten und Kommandos... 121 5.4.2 Arithmetik... 122 5.4.3 Signale...................................... 124 6 Problemorientierte Programmiersprachen.................. 126 6.1 Programmieren in C... 129 6.1.1 Programmtext eingeben und aufbereiten................ 129 6.1.2 Yom Quellprogramm zur Programm-Ausfiihrung........... 130 6.2 Programmieren in Pascal... 135 6.2.1 Programmtext eingeben und aufbereiten..., 136 6.2.2 Yom Quellprogramm zur Programm-Ausfiihrung........... 138 6.3 Programmieren in FORTRAN........................... 143 6.3.1 Programmtext eingeben und aufbereiten................ 144 6.3.2 Yom Quellprogramm zur Programm-Ausfiihrung........... 149 7 Fehlersuche und Laufzeitoptimierung... 153 7.1 Der Debugger adb..., 155 7.1.1 Speicherabzug analysieren... 155 7.1.2 Programmablauf unter adb-kontrolle.................. 158 7.2 Der Debugger sdb................................... 160 7.2.1 Speicherabzug analysieren... 160 7.2.2 Programmablauf unter sdb-kontrolle................ 162 7.3 Der Debugger dbx................................... 165 7.3.1 Speicherabzug analysieren... 165 7.3.2 Programmablauf unter dbx-kontrolle.................. 167

VIII I nhaltsverzeichnis 7.4 Laufzeitoptimierung................................. 170 7.4.1 Objektcode-Optimierung.......................... 170 7.4.2 Messungen zur Quellcode-Optimierung................. 172 8 Programmierbare Werkzeuge... 175 8.1 sed - Ein nicht-interaktiver Texteditor..................... 175 8.1.1 Arbeitsweise und Befehlssyntax...................... 176 8.1.2 Zeilen ausgeben................................ 179 8.1.3 Zeichenketten ersetzen... 180 8.1.4 Zeilen liischen, einfugen und andern................... 184 8.2 Listenverarbeitung mit awk... 185 8.2.1 Aufruf und Befehlssyntax... 185 8.2.2 Felder ausgeben................................ 187 8.2.3 Berechnungen durchfuhren......................... 191 8.3 Programmgenerierung mit make... 195 8.3.1 Beschreibung von Abhangigkeiten.................... 197 8.3.2 Implizierte Abhangigkeiten......................... 199 8.3.3 Weitere make-anwendungen........................ 201 Literaturverzeichnis.................................... 204 Sachwortverzeichnis... 207 Die wichtigsten UNIX-Kommandos........................ 218

1 Vorwort UNIX wird mittlerweile von fast allen Rechner-Herstellern angeboten und erhlilt auch von Anwenderseite sehr vie! Aufmerksamkeit. Dies ist der beste Beweis, dag Konzept und Verwirklichung gut sind. Verglichen mit dem hohen Bekanntheitsgrad scheint jedoch das Wissen, wie UNIX anzuwenden ist, eher unzureichend zu sein. Aber gerade der praktische Einsatz bringt fiir aile Seiten letztendlich erst den anhaltenden Erfolg. Dieses Buch ist daher mit der Absicht geschrieben worden, das fiir den Umgang mit UNIX notwendige Wissen bereit zu stellen und wendet sich an diejenigen, welche bereits Grundkenntnisse der Datenverarbeitung in Theorie oder Praxis erworben haben und vor der Aufgabe stehen, UNIX fiir ihre Anwendung einzusetzen. Inhalt und Schwerpunkt dieses Buches ist die Programmierung unter UNIX, wie sie fur den erfolgreichen Einsatz zur Losung der anstehenden Softwareprobleme immer notwendig ist. Dazu wird in den drei ersten Kapite!n zunlichst die Handhabung des eigentlichen Betriebssystems beschrieben und anschliegend auf den Bereich der Programmierung eingegangen: Es werden in Kapite! 4 der Umgang mit Filtern und in Kapite! 5 die "Shell" als Programmiersprache dargestellt, wobei gezeigt wird, dag fiir die Losung eines Problems in dieser Umgebung nicht in jedem Fall ein Programm im herkommlichen Sinne erforderlich ist. In Kapitel 6 wird dann das Arbeiten mit den Programmiersprachen C, Pascal, und FORTRAN besprochen. Kapite! 7 behande!t die Fehlersuche und Laufzeitoptimierung der Programme. 1m letzten Kapite! werden dann einige "programmierbare Werkzeuge" vorgestellt. Als Grundlage fiir aile Aussagen in diesem Buch gilt UNIX System V. Daneben sind auch andere Versionen, insbesondere "Berkely-UNIX" beriicksichtigt. Auf Abweichungen wird im Einze!fall hingewiesen. Der Text selbst einschlieglich der Abbildungen wurde unter UNIX mit dem Formatierer TI-TROFF erstellt. Allen, die mit Anregungen und kritischen Fragen dazu beigetragen haben, das Buch zu gestalten, sei unser Dank an dieser Stelle ausgesprochen. Dies gilt vor allem auch fiir die Studenten in unseren Vorlesungen. Besonders mochten wir uns auch bei Herrn Josef Mester und den vie!en anderen bedanken, die uns bei der aufwendigen Arbeit der Formatierung geholfen haben. Frankfurt am Main Giinter Martin Manfred Trostmann