Shell-Programmierung fur Unix und Linux



Ähnliche Dokumente
Shell-Programmierung für Unix und Linux

UNIX Shell-Programmierung

Übung: Entwickeln eines Shell-Skripts

Patrick Ditchen 4. Auflage. Shell-Skript Programmierung. Inklusive CD-ROM

Arzu Sanli Ibrahim Canakci

Linux Tutorium. 12. Shellprogrammierung. Version vom :38:56

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

Übung 4: Schreiben eines Shell-Skripts

Linux Prinzipien und Programmierung

LINUX IN A NUTSHELL. 3. Auflage. Ellen Siever, Stephen Spainhour, Stephen Figgins & Jessica P. Hekman

Shell-Programmierung

Shell-Skript-Programmierung

Linux und Shell-Programmierung Teil 5

Unix/Linux Grundlagen für Einsteiger

Aufgabensammlung IT Shellprogrammierung Teil I

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

Desktop ade: Me and my shell

Shell-Skripte in Unix

X Anmelden am System. X System herunterfahren. X Grundlegendes zur Shell. X Das Hilfesystem. X Dateioperationen. X Bewegen im Verzeichnisbaum

C-Programmierung unter TOS ATARI ST

Arithmetik in der tcsh

Übersicht Programmablaufsteuerung

Einführung Unix Shell

Computer & GNU/Linux Einführung Teil 4

Erwin Grüner

Grundlagen der Shellskript-Programmierung

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

Die Shell. Ein Vortrag von Frederik und Michael 1 / 35

Shell-Programmierung. von Rolf Schmidt für. LUG Frankfurt

Unix-Shells. mehrere Befehle in einer Zeile. bash: Grundlagen. Ein- und Ausgaben umlenken. Befehle: Dateien und Verzeichnisse (1)

Einführung in die C-Programmierung

Shellprogrammierung. Einführung in Linux. Antonia Blanke. Operatoren Schleifen Case Funktionen Kommandos Signale Stringmanipulation

Objektorientierte Programmierung in Java

Unix Powerseminar für Datenbankund Applikationsbetreuer

Roberto lerusalimschy. Programmieren mit Lua

Keine Angst vor Linux/Unix

Java-Schulung Grundlagen

PHP 5.4 ISBN Stephan Heller, Andreas Dittfurth 1. Ausgabe, September Grundlagen zur Erstellung dynamischer Webseiten GPHP54

Korn-Shell: Einführung in Shellscripte 1. Übersicht: Einführung - 2. Die Kornshell im Detail - 3.Grundlagen der Programmierung

Programmieren in C. Felder, Schleifen und Fließkommaarithmetik. Prof. Dr. Nikolaus Wulff

SHELL PROGRAMMIERUNG

Multimedia im Netz Wintersemester 2011/12

Tutorium Rechnerorganisation

Shellprogrammierung. Einführung in Linux. Antonia Blanke. Shellprogrammierung Die Linux Shell Besondere Zeichen Pipes Variablen Bedingungen und Tests

I Grundlagen der System-Administration 8

Programmieren in C. Macros, Funktionen und modulare Programmstruktur. Prof. Dr. Nikolaus Wulff

UNIX - LINUX Shell Programmierung

SelfLinux Shellprogrammierung

Allgemeines. Verschiedene Sprachkonzepte C-Sprachfamilie C-ähnliche Programmiersprachen Allgemeines zu C. #include <stdio.h>

Kommandozeilen effizient nutzen und verstehen

Vorlesung Unix-Praktikum

Kommandozeilenverarbeitung durch die Unix-Shell (bash)

Vorbemerkung. Allgemeines zu Shell Scripts. Aufruf. Einfaches Beispiel

Der UNIX-Werkzeugkasten Programmieren mit UNIX

Technische Praxis der Computersysteme 1

Bash-Skripting Linux-Kurs der Unix-AG

Java Kurs für Anfänger LMU SS09 Einheit 1 Javaumgebung

15 Der AWK. (Aho, Weinberger, Kernighan)

Grundkurs Programmieren in Java

Alexander Niemann. Das Einsteigerseminar Objektorientierte Programmierung in Java. bhv

5. Tutorium zu Programmieren

Technische Praxis der Computersysteme I 3. Vorlesung

Rechnen in UNIX-Shell-Prozeduren

Projektverwaltung Problem Lösung: Modulare Programmierung

1Schnelleinstieg 14. 2Wie aus einer einfachen Textdatei. 3 Wie man eigene Programme erstellt 30. Inhaltsverzeichnis. ein Programm wird 20

UNIX-Benutzerumgebung und Shell. die Zuordnung der Zeichen zu den Sonderfunktionen kann durch ein UNIX-Kommando (stty(1)) verändert werden

C/C++ Programmierung

SelfLinux Was ist eine Shell?

Systemverwaltung mittels Skripts

Skripte. Beispiel. M. Fyta Computergrundlagen 73/93

Dr. Monika Meiler. Inhalt

I.1 Die Parrot Assemblersprache

1.103 Regular Expressions - Reguläre Ausdrücke

C++-Entwicklung mit Linux

Programmiersprachen Einführung in C. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm

Prinzipien der Softwareentwicklung S. Strahringer

Kontrollstrukturen - Universität Köln

BASH Handout Vorlesungsbegleitend Version

Programmieren I. Kontrollstrukturen. Heusch 8 Ratz Institut für Angewandte Informatik

2. Programmierung in C

Linux II. Reguläre Ausdrücke Editoren Scripting. 2 Linux II. Linux I II III Res WN/TT NLTK XML Weka E Reguläre Ausdrücke Editoren Scripting

Wiederholung: Prozesse

105.1 Shell, Scripting

VBA-Programmierung: Zusammenfassung

Transkript:

Rainer Krienke Shell-Programmierung fur Unix und Linux Grundlagen, Werkzeuge und praktische Skripte 3., erweiterte Auflage HANSER

Inhaltsverzeichnis Vorwort 11 1 Einleitung 15 1.1 Die Unix-Shell 15 1.2 Shell-Varianten im Uberblick 16 2 Die Shell als Kommandointerpreter 19 2.1 Grundlagen 19 2.1.1 Kommandos 19 2.1.2 Metazeichen der Shell, Quoting 20 2.1.3 Konzept der Ein- und Ausgabe 23 2.1.4 Konzept der Pipes 25 2.1.5 Konzept der Shell- und Environment-Variablen 26 2.1.6 Bearbeitung der Kommandozeile 28 2.1.7 Gruppieren von Kommandos 29 2.1.8 Arbeiten mit Sub-shells 31 2.1.9 Kontrolle von Prozessen (Jobcontrol) 32 2.2 Die Bourne-, Bourne-Again- und Korn-Shell 33 2.2.1 Unterstiitzung der Kommandoeingabe 33 Abkiirzung eines Loginverzeichnisses mit ~ 34 Arbeiten mit der Kommando-History 34 Editieren der Kommandozeile 35 Vervollstandigung von Datei- und Verzeichnisnamen 36 2.2.2 Arbeiten mit Shell- und Environment-Variablen 37 Arrays in der Bourne-Again-Shell 39 Arrays in der Korn-Shell 41 Haufig verwendete Variablen 42 Metazeichen zur Dateinamenersetzung in der Korn-Shell 44 2.2.3 Konfigurationsoptionen der Shell 45 2.2.4 Aliase 47 2.2.5 Shellinterne Optimierung der Kommandoausfiihrung 48 2.2.6 Startup-Dateien 49 2.3 Die C-Shell und die TC-Shell 52 2.3.1 Unterstiitzung der Kommandoeingabe 52 Abkiirzung eines Loginverzeichnisses mit ~ 52

Inhalt Arbeiten mit der Kommando-History 53 Editieren der Kommandozeile in der TC-Shell 55 Vervollstandigen von Dateinamen in der C-Shell 56 Vervollstandigen von Dateinamen in der TC-Shell 57 2.3.2 Arbeiten mit Shell- und Environment-Variablen 58 Arrays in der C- und TC-Shell 59 Haufig verwendete Variablen 60 Konfigurations-Optionen der Shell 62 2.3.3 Aliase 63 2.3.4 Shellinterne Optimierung der Kommandoausfuhrung 64 2.3.5 Startup- und Shutdown-Dateien 65 2.4 Vergleich der Leistungsmerkmale der Shells 66 3 Die Shell als Programminterpreter 69 3.1 Grundlagen des Shell-Programmierens 69 3.1.1 Einfuhrung 69 3.1.2 Shell- versus C-Programmierung 72 3.1.3 Built-in-Programme 76 3.1.4 Vergleichs- und Testoperationen 78 3.1.5 Starten von Shell-Skripten 82 3.1.6 Schreibkonventionen 84 3.2 Programmieren mit sh, ksh und bash 85 3.2.1 Arbeiten mit Shell-Variablen 85 Spezielle Variablenersetzungen 85 3.2.2 Bearbeitung der Kommandozeile 90 Grundlagen 90 Das Kommando shift 93 3.2.3 Setzen der Stellungsparameter mit dem Kommando set 94 3.2.4 Moglichkeiten zur Dateneingabe 95 Grundlagen 95 Erweiterungen in der Bourne-Again- und Korn-Shell 96 3.2.5 Kontrollstrukturen 97 Die if... then...elif... else... f i-anweisung 97 Die while... do... done-anweisung 100 Die for... in... do... done-anweisung 103 Die case... in... esac-anweisung 105 Die for ( ( ; ; )) -Anweisung der ksh und bash 107 Die select-anweisung der ksh und bash 108 Kommandogruppen mit der {} -Anweisung Ill 3.2.6 Built-In-Kommandos HI Das Built-in eval 114 Das Built-in printf in der Bourne-Again- und Korn-Shell 115 Das Built-in trap 120

Inhalt Der typeset-befehl der Bourne-Again- und Korn-Shell 122 3.2.7 Vergleichsfunktionen der Korn- und Bourne-Again-Shell 124 3.2.8 Arithmetik in der Korn- und Bourne-Again-Shell 126 Grundlagen 126 Operatoren in arithmetischen Ausdriicken 129 Zusammenfassung 130 3.2.9 Shell-Funktionen 132 Grundlagen 132 Besonderheiten in der Korn- und Bourne-Again-Shell 135 3.2.10 Debuggen von Shell-Skripten 137 3.2.11 Bearbeiten von Optionen mit getopts 139 3.2.12 Weitere Ein-/Ausgabemoglichkeiten 141 Erweiterte Ein-/Ausgabeumlenkung in Skripten 141 Arbeiten mit Dateideskriptoren 143 3.3 Programmieren mit der csh, tcsh 144 3.3.1 Arbeiten mit Shell-Variablen 144 Spezielle Variablenersetzungen 145 3.3.2 Bearbeiten der Kommandozeile 147 3.3.3 Setzen von Stellungsparametern 149 3.3.4 Moglichkeiten zur Dateneingabe 149 3.3.5 Ausdriicke 150 Grundlagen 150 Arithmetische Auswertung von Ausdriicken mit @ 153 Auswertung des Riickgabestatus eines Kommandos 155 3.3.6 Kontrollstrukturen 156 Die if-anweisung 156 Die while... end -Anweisung 159 Die repeat-anweisung 161 Die f oreach... end -Anweisung 161 Die Anweisungen break und continue 163 Die switch-anweisung 164 Die goto-anweisung 168 3.3.7 Built-In-Kommandos 170 Das Built-in onintr 172 Die Built-In-Kommandos alias und unalias... : 175 3.3.8 Debuggen von Shell-Skripten 176 3.4 Weitere Techniken 177 3.4.1 Der here-operator 177 3.4.2 Das Kommando expr 180 Verarbeitung arithmetischer Ausdriicke mit expr 180 Operatoren von expr zur Verarbeitung von Zeichenketten 182 Regulare Ausdriicke 183 Verwendung Regularer Ausdriicke mit expr 185 3.5 Vergleich der Leistungsmerkmale der Shells 191

o Inhalt 4 Nutzliche Unix-Werkzeuge 4.1 grep und egrep 193 4.1.1 Suche nach festen Zeichenketten 195 4.1.2 Suche nach Regularen Ausdriicken 197 4.2 awk 200 4.2.1 Muster 203 Reguliire Ausdriicke 203 Vergleiche mit Zeichenketten und numerische Vergleiche 204 Bereichsmuster 207 Start-Stop-Muster 207 Verkniipfungen von Mustern 208 4.2.2 Variablen 208 4.2.3 Vordefinierte Variablen 209 4.2.4 Operatoren und Funktionen in awk-aktionen 212 4.2.5 Kontrollstrukturen 215 Das i f-statement 215 Die while-schleife 217 Die f or-schleife 219 Spezielle Abbruchanweisungen fur Schleifen 220 4.2.6 Arrays 220 4.3 sed 223 4.3.1 Zeilenadressangabe 227 Zeilennummer 227 Zeilennummernbereich 227 Regularer Ausdruck 227 Bereiche mit Regularen Ausdriicken 228 Gemischte Bereiche 228 4.3.2 sed-kommandos 228 Grundlegende Kommandos 229 Pufferkommandos 231 4.3.3 Beispiele 232 4.4 find 235 4.4.1 Grundlagen 236 4.4.2 Beispiele 238 4.5 Das xargs-kommando 239 4.5.1 Grundlagen 239 4.5.2 Beispiele 241 4.6 sort 242 4.6.1 Grundlagen 243 4.6.2 Beispiele 245 4.7 Einsatz von Unix-Utilities in Skripten 246 4.7.1 Nutzung des Backtick-Operators 247 4.7.2 Nutzung der read-anweisung 249 4.7.3 Vergleich beider Ansatze 251

Inherit 5 Shellprogrammierung in der Praxis 253 5.1 Haufige Fehlerquellen 253 5.1.1 Quoting und Trennzeichen 253 5.1.2 Probleme in if- bzw. test-anweisungen 257 5.1.3 Das Dateiformat-Problem 259 5.2 Losungsansatze fiir gangige Probleme 260 5.2.1 Trennung von Pfad und Dateinamen 260 Verwendung von basename und dirname 261 Verwendung von Variablenersetzungen 262 5.2.2 Trennung des Namens einer Datei von deren Endung 263 Verwendung von basename 263 Verwendung des %-Operators in einer Variablenersetzung 264 5.2.3 Ausgaben eines Kommandos verarbeiten 265 5.2.4 Finden von Prozessen 266 5.3 Praktische Beispiele 267 5.3.1 Ein Korn-Shell-Numerierungskript 267 5.3.2 Ein Bourne-Shell groups-utility 274 5.3.3 Aufraumen mit dem C-Shell clean-utility 279 6 Shell-Kurzreferenz 287 6.1 Metazeichen und Quoting 287 6.2 Umlenkung der Ein- und Ausgabe 288 6.2.1 Vergleichs- und Testoperationen 289 6.3 Startup-Dateien 291 6.4 Bourne-, Bourne-Again- und Korn-Shell 292 6.4.1 Variablen 292 6.4.2 Konfigurationsoptionen 296 6.4.3 Kontrollstrukturen 297 Die if... then...elif... else... f i-anweisung 298 Die while... do... done-anweisung 298 Die for... in... do... done-anweisung 298 Die for ( ( ; ; ) ) -Anweisung der ksh und bash 299 Die case... in... esac-anweisung 299 Die select-anweisung in der Korn-Shell 300 Kommandogruppen mit der {} -Anweisung 300 6.4.4 Built-in- Anweisungen 301 6.4.5 Arithmetische Operatoren 304 6.4.6 Erweiterte Ein-/Ausgabeumlenkung in Skripten 306 6.5 C- und TC-Shell 306 6.5.1 Variablen 307 6.5.2 Konfigurationsoptionen 309 6.5.3 Kontrollstrukturen 310 Die i f - Anweisung 310

10 Inhalt Die while... end-anweisung 311 Die repeat -Anweisung 311 Die f oreach... end-anweisung 312 Die switch-anweisung 312 Die go to-anweisung 313 6.5.4 Built-in-Anweisungen 313 6.5.5 Arithmetische Operatoren 315 Glossar 319 Index 323