Werner Brecht. Einführung in UNIX

Ähnliche Dokumente
Software-Praktikum. Ein praxisorientiertes Vorgehen zur Software-Erstellung

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

Gradle. Ein kompakter Einstieg in modernes Build-Management. Joachim Baumann. Joachim Baumann, Gradle, dpunkt.verlag, ISBN

Der UNIX-Werkzeugkasten Programmieren mit UNIX

Bettina Heberer. Grüne Gentechnik. Hintergründe, Chancen und Risiken

Sandor Vajna Reinhard Ledderbogen. CATIAV5 - kurz und bündig

Grundlagen der doppelten Buchführung

Fortschritte der Psychotherapie Manuale für die Praxis

Band II Heinz-Hermann Krüger Einführung in Theorien und Methoden der Erziehungswissenschaft

Stefan Hering PC TOOLS 6.0. Ein praxisgerechtes Nachschlagewerk

Fortschritte der Psychotherapie Fortschritte der Psychotherapie

Claus von Eitzen. Datenbankanwendungen mit FileMaker Pro

Anpassungsstörung und Akute Belastungsreaktion

Gentechnik geht uns alle an!

Ralf Bohnsack Rekonstruktive Sozialforschung

Stickel Datenbankdesign

Berufseinstieg für Ingenieure

Alfred Böge I Walter Schlemmer. Lösungen zuraufgabensammlung Technische Mechanik

Aktuelle Herausforderungen in der Wirtschaftsförderung

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

Georg Fischer. DOS Profi Utilities mit Turbo Pascal

Zahnbehandlungs- phobie

Verhaltenstherapeutische Hypnose bei chronischem Schmerz

Christina Berghold. Die Szenario-Technik LEITFADEN. zur strategischen Planung mit Szenarien vor dem Hintergrund einer dynamischen Umwelt

Mit freundlichen Empfehlungen KARL STORZ

Lösungen zur Aufgabensammlung Technische Mechanik

Unix/Linux Grundlagen für Einsteiger

Shell-Programmierung für Unix und Linux

Springer-Lehrbuch. Weitere Bände in dieser Reihe

Shell-Programmierung fur Unix und Linux

Führung und Mikropolitik in Projekten

Dezentrale Energiewende

Springer essentials sind innovative Bücher, die das Wissen von Springer DE in kompaktester Form anhand kleiner, komprimierter Wissensbausteine zur

Wilfried Weißgerber. Elektrotechnik für Ingenieure Klausurenrechnen

Praxiswissen Online-Marketing

SelfLinux Was ist eine Shell?

Anita Lenz Stefan Meretz. Neuronale Netze und Subiektivität

Gene Zelazny Wie aus Zahlen Bilder werden

4 l Springer Vieweg. Keine Angst. vor Linux/Unix. Unix-Anwender. Ein Lehrbuch für Linux- und. Christine Wolfinger

Werke der kompakt-reihe zu wichtigen Konzepten und Technologien der IT-Branche: ermöglichen einen raschen Einstieg, bieten einen fundierten

grep kurz & gut John Bambenek and Agnieszka Klus

The New Grove Die großen Komponisten. Herausgeber: Stanley Sadie Deutsche Redaktion: Uwe Schweikert

Martin Scholz, Ute Helmbold (Hrsg.) Bilder lesen lernen

Deutsch für Ärztinnen und Ärzte

Bernd Bleßmann, Jörg Bleßmann. Linux. Aufbau und Einsatz eines Betriebssystems. 1. Auflage. HLuHB Darmstadt. Bestellnummer Bildungsverlag EINS

Zukunftsorientierte Unternehmenssteuerung in der Energiewirtschaft

Felix Huth. Straßenkinder in Duala

Der Weg in die Unternehmensberatung

Anjes Tjarks. Familienbilder gleich Weltbilder

Bibliografische Information der Deutschen Nationalbibliothek:

Linux I II III Res/Pro WN/TT Reguläre Ausdrücke Editoren Scripting. Linux II. 2 Linux II. Reguläre Ausdrücke Editoren Scripting. Ressourcen-Vorkurs

Neuropsychologie der Alkoholabhängigkeit

Die Big Five und ihre Auswirkungen auf das Gründungsverhalten

Coaching in der Sozialwirtschaft

C++ Einführung und professionelle Programmierung

Einführung in Theorien und Methoden der Erziehungswissenschaft

Praktische Anpassung und Einführung des Rational Unified Process in einem E-Business Unternehmen

Peter tom Suden. Die elektronische Rechnung in Handels- und Steuerrecht

Modul 1 Weg mit der Brille

Ratgeber Schlafstörungen

Prüfungstraining für Bankkaufleute

Stefan Kühl. Projekte führen. Eine kurze organisationstheoretisch informierte Handreichung

Andrea Hausmann. Kunst- und Kulturmanagement

Systeme I: Betriebssysteme Kapitel 2 Überblick Betriebssysteme. Wolfram Burgard

Werner Poguntke. Keine Angst vor Mathe

Bernhard Schreyer Manfred Schwarzmeier. Grundkurs Politikwissenschaft: Studium der Politischen Systeme

Neuronale Netze selbst programmieren

. -Aus dem Bereich Computerliteratur

Elmar Buschlinger / Frank Staab UNIX für Software-Entwickler

Werner Poguntke. Keine Angst vor Mathe

Gravitation und Physik kompakter Objekte

Meyer Hautzinger. Ratgeber Manisch-depressive Erkrankung. Informationen für Menschen mit einer bipolaren Störung und deren Angehörige

Lösungen zum Lehrbuch Angewandtes Rechnungswesen

Führungsstile im Vergleich. Kritische Betrachtung der Auswirkungen auf die Mitarbeitermotivation

Tilo Pfeifer/Michael M. Richter (H rsg.) Diagnose von technischen Systemen

Reinhard Ledderbogen Sándor Vajna (Hrsg.) CATIA V5 kurz und bündig

Kataloge der Universitätsbibliothek Rostock / Die Bibliothek Herzog Johann Albrechts I. von Mecklenburg ( )

Ideengeschichte der Physik

Bürgerschaftliches Engagement von Unternehmen

Otger Autrata Bringfriede Scheu. Soziale Arbeit

Digitale Kompetenzen

Was Coaching wirksam macht

Masken und Maskierungen

lngo Dammer Frank Szymkowiak Die Gruppendiskussion in der Marktforschung

Modul 5 Die Nummer 1 für Männer

X.systems.press ist eine praxisorientierte Reihe zur Entwicklung und Administration von Betriebssystemen, Netzwerken und Datenbanken.

Akteure der Außenpolitik. Herausgegeben von T. Jäger, Köln, Deutschland

Unix Grundlagen. - ii - Ambit Professional Seminar Series. Autor: Prof. J. Anton Illik Diplom-Informatiker

Hans-Georg Schumann. Visual Basic Inklusive DVD-ROM

C-Programmierung unter TOS ATARI ST

Software-Praktikum. Überblick und Zeitplan

Annette Weinert. Programmieren mit Ada und C

Programmieren von UNIX-Netzen

Nikolaus Werz. Reinhard Nuthmann (Hrsg.) Abwanderung und Migration in Mecklenburg und Vorpommern

Übung 4: Schreiben eines Shell-Skripts

Anja Schüler. Arbeit für alle?! Berufliche Teilhabe von Menschen mit geistiger Behinderung in Deutschland und den USA.

MegaCAD Lizenzserver

G. Oetzmann. Commodore-Volkscomputer

Qualitative Sozialforschung

Transkript:

Werner Brecht Einführung in UNIX

Effektiv Programmieren in C und C++ von Dielmar Herrmann Programmierhandbuch Visual C++ von Martin Aupperle C/C++ Werla:eugkasten von Arno Damberger Systemnahe Programmierung mit Borland Pascal von Christion Baumgarten Einführung in UNIX von Werner Brecht Verteilte Systeme unter UNIX von Werner Brecht Pattern Recognition and Image Processing in C++ von Dietrich W. Paulus und Joachim Hornegger C unter UNIX von Klaus K. Kannemann UNIX Werbeuge von Klaus K. Kannemann UNIX für Systemverwalter von Andreas Nieden und Werner Geigle Vieweg

Werner Brecht Einführung in UNIX Ein Lehr- und Arbeitsbuch für Studium und Praxis 2. Auflage II v1eweg

Dos in diesem Buch enthaltene Programm-Material ist mit keiner Verpflichtung oder Garantie irgendeiner Art verbunden. Der Autor 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 1993 2. Auflage 1996 Alle Rechte vorbehalten Springer Fachmedien Wiesbaden 1 996 UrsprOnglich erschienen bei Friedr. Vieweg & Sohn Verlagsgesellschaft mbh, Braunschweig/Wiesbaden, 1996 Dos Werk einschliel31ich aller seiner Teile ist urheberrechtlich geschutzt. Jede Verwertung aul3erhalb der engen Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des Verlags unzulăssig und strafbar. Dos gilt insbesondere fur Vervielfăltigungen, Ubersetzungen, Mikroverfilmungen und die Einspeicherung und Verarbeitung in elektronischen Systemen. Gedruckt auf săurefreiem Papier ISBN 978-3-528-15329-8 ISBN 978-3-663-12073-5 (ebook) DOI 10.1007/978-3-663-12073-5

Inhaltsverzeichnis Vorwort IX 1 Systemcharakteristika 1 1.1 Historie 1 1.2 Standardisierung 3 1.3 Eigenschaften des UNIX-Systems 5 2 Erste Kommandos und Werkzeuge 11 2.1 Arbeitsweise einer Shell 11 2.2 Dateikommandos und vi 15 2.3 Weitere Kommandos und Werkzeuge 22 3 Dateisystem 37 3.1 Dateien und Dateiverzeichnisse 37 3.2 Zugriffsrechte 48 3.3 Verweise (Links) auf Dateien 51 4 Interaktives Arbeiten mit der Bourne-Shell 59 4.1 Bourne-Shell, C-Shell und Korn-Shell 59 4.2 Aufbau von Shell-Kommandos 60 4.3 Redirection und Pipelines 63 4.4 Prozeßverwaltung 70 4.5 Expandierung von Dateinamen 73 4.6 Kommando-Trenner und -Gruppen 76

VI Inhaltsverzeichnis 5 Einfache Kommandoprozeduren (Shell-Scripts) 79 5.1 Erzeugen und Starten eines Scripts 79 5.2 Benutzerdefinierte Variablen 81 5.3 Lesen von der Standard-Eingabedatei 84 5.4 Entwertungsmechanismen 85 5.5 Export von Variablen 89 6 Shell-Variablen 95 6.1 Umsetzbare Shell-Variablen 95 6.2 Nicht umsetzbareshell-variablen 99 6.3 Argumente aus der Kommandozeile 101 6.4 Wertzuweisung an die Variablen 1, 2,..., 9 103 7 Kommandoausführung 107 7.1 Punkt-Kommando 107 7.2 Kommandosubstitution 111 7.3 Reihenfolge der Shell-Aktionen 113 8 Kontrollstrukturen 117 8.1 test-kommando und if-verzweigung 117 8.2 for-schleifen und expr-tool 125 8.3 while-konstruktion 129 8.4 Verlassen von Schleifen 130 8.5 case-verzweigungen 132 9 Kommandoprozeduren mit Eingaben 137 9.1 Lesen von einer Datei 137 9.2 Here-Scripts 139 9.3 Abfangen von Signalen 141

Inhaltsverzeichnis VII 10 Textmusterverarbeitung 10.1 Reguläre Ausdrücke 10.2 grep-familie 10.3 Einführung in das awk-tool 147 147 150 153 11 C-Schnittstelle 11.1 Systemaufrufe 11.2 Aufbau eines einfachen C-Programms 11.3 s-bit-mechanismus 163 163 165 168 12 UNIX in Lokalen Netzen 12.1 Client-Server-Modell 12.2 TELNET und FTP 12.3 NFS 12.4 X-Window 173 173 177 184 189 13 Systemverwaltung 13. 1 Superuser 13.2 Bootstrap 13.3 Zeitlich verschobene Aufträge 13.4 Gefährdung des Rechenbetriebs 199 199 201 203 206 Lösungen zu den Übungsaufgaben ASCII-Tabelle Abkürzungen Literaturverzeichnis Register 211 225 227 229 231

Vorwort An der Technischen Fachhochschule in Berlin vertrete ich unter anderem das Fachgebiet Betriebssysteme und halte seit Jahren regelmäßig durch praktische Übungen unterstützte Vorlesungen über UNIX. Ein Schwerpunkt stellt dabei die Handhabung dieses Betriebssystems dar. Die Fähigkeit, UNIX bedienen zu können, ist unabdingbare Voraussetzung für das Hauptstudium zumindest in unseren Informatikstudiengängen. Seitens der Informatikstudentinnen und -Studenten, aber auch aus den Anwendungsstudiengängen wird in letzter Zeit verstärkt nach einem modernen, auch die neuen Anwendungsbereiche ansprechenden, an der Praxis orientierten Lehr- und Arbeitsbuch für UNIX-Anfänger gefragt. Offensichtlich läßt das entsprechende Literaturangebot doch eine Reihe von Wünschen zumindest für diesen Personenkreis offen. Ganz konkret wird immer wieder die Bitte vorgetragen, das Vorlesungsmanuskript zu veröffentlichen. In den Schulungszentren des zum Daimler-Benz-Konzern gehörenden CAPdebis-Systemhauses werden seit einer Reihe von Jahren Seminare über UNIX durchgeführt, die ein breites inhaltliches Spektrum abdecken. Eines dieser Seminare wird von mir unter der Bezeichnung UNIX für Anwender (fast) regelmäßig mehrmals im Jahr mit beachtlichen Teilnehmerzahlen abgehalten. Der Seminarinhalt deckt sich grob mit der bereits erwähnten einführenden Lehrveranstaltung an der Technischen Fachhochschule Berlin, was daran liegt, daß sich beide ständig gegenseitig beeinflussen. Auch aus dem Kreis der Seminarteilnehmer wird regelmäßig nach einem entsprechenden Lehr- und Arbeitsbuch gefragt. Das kontinuierliche Interesse an praxisbezogenen Einführungen in das Arbeiten mit UNIX als Anwender oder Anwendungsprogrammierer ist bemerkenswert. Offensichtlich wird es derzeit durch parallel laufende Entwicklungen im Bereich der Personal-Computer nicht (oder kaum) beeinträchtigt. Der ständig zunehmende Einsatz vernetzter Systeme auf UNIX-Basis verursacht eine ständig steigende Anzahl von Umstellungen von Anwendungsprogrammen auf UNIX-Systeme. Das Schlagwort Downsizing beschreibt einen speziellen Aspekt solcher Umstellungen. Er bezieht sich auf die Übertragung von Anwendungsprogrammen von Großrechnern auf ein Netzwerk von kleineren (UNIX-)Rechnern. Diese sind als sogenannte Offene Systeme herstellerunabhängig, flexibler und kostengünstiger als Großrechner und können diese sehr sinnvoll ergänzen und manchmal auch ersetzen. Aus dieser Entwicklung ist das Interesse an einer praktischen, auf Anwendungsaspekte und -programmierung zugeschnittenen Einführung in UNIX verständlich.

X Vorwort Daß gerade UNIX als Betriebssystem in Rechnernetzen so häufig eingesetzt wird, hat gute Gründe. Unter anderem stützt man sich mit UNIX auf ein Betriebssystem, das durch seinen tausendfachen und inzwischen langjährigen praktischen Einsatz nahezu fehlerfrei geworden ist. Dazu kommt, daß UNIX alle gängigen Programmiersprachen und ein breites Spektrum von Software Werkzeugen, sogenannte Tools oder Utilities, zur Verfügung stellt. Diese Werkzeuge können auf eine elegante Weise in ihrem Ablauf gesteuert und miteinander kombiniert werden. Das hat zur Folge, daß Anwender und Anwendungsprogrammierer anspruchsvolle Aufgaben durchführen können, ohne Programme in C oder FORTRAN usw. schreiben zu müssen. Es stehen Dienstprogramme jeder Komplexität zur Verfügung. Das reicht von Tools wie wc (Word Count), mit dem die Zeichen in einer Datei gezählt werden können, bis hin zu yacc (Yet another Compiler Compiler), mit dessen Hilfe aus der Angabe von Grammatikregeln ein C-Programm entsteht, das nach seiner Übersetzung erkennt, ob gegebene Zeichenfolgen den zugrundeliegenden Grammatikregeln genügen. Die Komplexität von yacc verbietet eine Behandlung in der vorliegenden Einführung. In das UNIX-Betriebssystem sind schon sehr früh Netzwerkdienste integriert worden. Beispielsweise steht mit NFS ein Dateidienst zur Verfügung, der bei Zugriffen auf Dateien anderer Rechner das zugrundeliegende Netzwerk vollkommen unsichtbar macht, so daß der Anwender noch nicht einmal zu wissen braucht, daß die Datei, mit er gerade arbeitet, nicht auf seinem Rechner lokal vorhanden ist. Und mit dem X-Window-System ist ein mächtiges Werkzeug zur Gestaltung fensterorientierter Benutzeroberflächen vorhanden. Alle Dienstprogramme bilden zusammen mit dem Kommandointerpreter, der als Shell bezeichnet wird, eine außergewöhnlich produktive Arbeits- und Entwicklungsumgebung für Anwender und Anwendungsprogrammierer. Unter anderem für diesen Personenkreis ist das Buch konzipiert worden. Aber es sollen auch alle Personen angesprochen werden, die UNIX nur kennenlernen wollen, oder die für ihr weiteres Arbeiten grundlegende UNIX-Kenntnisse benötigen. Es ist nicht beabsichtigt, UNIX-Handbücher zu ersetzen, auch nicht teilweise. Der praktisch übende Leser wird ganz im Gegenteil, wenn er beispielsweise über die gestellten Aufgaben hinausgehen will, einen Zugriff auf derartige, ihm vielleicht sogar On-Line (im Rechner) zur Verfügung stehende Handbücher (Manuals) benötigen. Mit dem Buch soll der Leser in einer handlichen und kompakten Form an UNIX herangeführt werden. Es wird durchgängig die Schreibweise der Bourne-Shell verwendet. Beschrieben werden Funktionen eines UNIX-System-V Release 4.0 (SVR4). Ausnahmen davon sind besonders kenntlich gemacht.

Vorwort XI Eine Bemerkung zur Fachsprache ist angebracht. Es wurde versucht, Fachausdrücke möglichst in deutscher Sprache zu formulieren, ohne dabei sprachliche Ungeheuer zu verwenden. Viele Begriffe widersetzen sich erstaunlich hartnäckig einer eleganten Übertragung ins Deutsche, so daß in einer ganzen Reihe von Fällen die englischen Ausdrücke verwendet werden. Dabei handelt es sich aber stets um Begriffe, fiir die beim Leser erfahrungsgemäß ein gewisses Verständnis vorhanden bzw. leicht zu erzielen ist. Ein paar Worte des Dankes gehen an meine Familie, die mir die Ruhe zum Arbeiten gegeben hat, und an die Kollegen Prof. C. Ratsch und Dipl.-Ing. A. Bergmann aus dem Hochschulrechenzentrum der Technischen Fachhochschule Berlin, die das Manuskript gelesen haben. Beiden verdanke ich eine Fülle kritischer Diskussionen und Anregungen. Auch dem Hause Vieweg gebührt Dank, insbesondere fiir die unbürokratische Zusammenarbeit und die sorgfältige Lektorierung.