
Shell-Programmierung
Das umfassende Handbuch
Jürgen Wolf(Author)
Galileo Computing (Publisher)
2nd Edition
Published on 28. December 2007
Book
Mixed media product
804 pages
978-3-8362-1157-4 (ISBN)
Article exhausted; check for reprint
Description
Von der Shellscript-Programmierung profitieren kann der einfache Linux-/UNIX-Anwender bis hin zum System-Administrator. Einfach jeder ambitionierte Linux-User.
In den ersten zehn Kapiteln erfahren Sie alles, was Sie zur Shell-Programmierung wissen müssen. Weitere Kapitel gehen auf die unverzichtbaren Tools grep, sed und awk ein, die in Kombination (oder auch allein) mit der Shellscript-Programmierung zu wertvollen Helfern werden können. Sie erfahren alles zu grundlegenden Kommandos von Linux/UNIX. Das ganze Buch enthält zahlreiche Praxisbeispiele, ist modular zu lesen und hervorragend als Nachschlagewerk geeignet.
Ganz neu ist ein Kapitel zu Tcl/Tk.
Reviews / Votes
Das ideale Buch für all diejenigen, die in die Shell-Programmierung einsteigen möchten [...], aber ebenso ein umfangreiches Nachschlagewerk für User, die sich täglich mit der Shell-Programmierung auseinandersetzen. [...] Ein Muss für jeden System-Administrator und Shell-Liebhaber. [...]More details
Series
Language
German
Place of publication
Bonn
Germany
Publishing group
Rheinwerk
Edition type
Enlarged edition
Dimensions
Height: 24 cm
Width: 16.8 cm
ISBN-13
978-3-8362-1157-4 (9783836211574)
Schweitzer Classification
Other editions
New editions

Book
06/2022
7th Edition
Rheinwerk
€44.90
Available immediately

Stefan Kania | Jürgen Wolf
Shell-Programmierung
Das umfassende Handbuch. Für Bourne-, Korn- und Bourne-Again-Shell (bash). Ideal für alle UNIX-Administratoren (Linux, macOS)
Book
03/2019
6th Edition
Rheinwerk
€44.90
Article exhausted; check for reprint

Jürgen Wolf | Stefan Kania
Shell-Programmierung
Das umfassende Handbuch. Für Bourne-, Korn- und Bourne-Again-Shell (bash)
Book
03/2016
5th Edition
Rheinwerk
€39.90
Article exhausted; check for reprint
Previous edition

Book
09/2005
1st Edition
Galileo Computing
€44.90
Article exhausted; check for reprint
Content
1 ... Einführung ... 29
... 1.1 ... Voraussetzungen an den Leser ... 29
... 1.2 ... Was ist eine Shell? ... 32
... 1.3 ... Hauptanwendungsgebiet ... 34
... 1.4 ... Kommando, Programm oder Shellscript? ... 38
... 1.5 ... Die Shell-Vielfalt ... 40
... 1.6 ... Betriebssysteme ... 43
... 1.7 ... Crashkurs: einfacher Umgang mit der Kommandozeile ... 44
... 1.8 ... Shellscripts schreiben und ausführen ... 57
... 1.9 ... Vom Shellscript zum Prozess ... 71
... 1.10 ... Datenstrom ... 74
... 1.11 ... Empfehlung ... 92
2 ... Variablen ... 93
... 2.1 ... Grundlagen ... 93
... 2.2 ... Zahlen ... 98
... 2.3 ... Zeichenketten ... 107
... 2.4 ... Quotings und Kommando-Substitution ... 118
... 2.5 ... Arrays (Bash und Korn-Shell only) ... 124
... 2.6 ... Variablen exportieren ... 130
... 2.7 ... Umgebungsvariablen eines Prozesses ... 136
... 2.8 ... Shell-Variablen ... 137
... 2.9 ... Automatische Variablen der Shell ... 142
3 ... Parameter und Argumente ... 149
... 3.1 ... Einführung ... 149
... 3.2 ... Kommandozeilenparameter $1 bis $9 ... 149
... 3.3 ... Besondere Parameter ... 151
... 3.4 ... Der Befehl shift ... 154
... 3.5 ... Argumente und Leerzeichen ... 156
... 3.6 ... Argumente jenseits von $9 ... 157
... 3.7 ... Argumente setzen mit set und Kommando-Substitution ... 159
... 3.8 ... getopts - Kommandozeilenoptionen auswerten ... 162
... 3.9 ... Vorgabewerte für Variablen ... 165
4 ... Kontrollstrukturen ... 169
... 4.1 ... Bedingte Anweisung mit if ... 169
... 4.2 ... Die else-Alternative für eine if-Verzweigung ... 177
... 4.3 ... Mehrfache Alternative mit elif ... 179
... 4.4 ... Das Kommando test ... 182
... 4.5 ... Status von Dateien erfragen ... 194
... 4.6 ... Logische Verknüpfung von Ausdrücken ... 197
... 4.7 ... Short Circuit-Tests - ergebnisabhängige Befehlsausführung ... 203
... 4.8 ... Die Anweisung case ... 206
... 4.9 ... Schleifen ... 213
... 4.10 ... for-Schleife ... 214
... 4.11 ... Die while-Schleife ... 224
... 4.12 ... Die until-Schleife ... 226
... 4.13 ... Kontrollierte Sprünge ... 229
... 4.14 ... Endlosschleifen ... 233
5 ... Terminal-Ein- und Ausgabe ... 237
... 5.1 ... Von Terminals zu Pseudo-Terminals ... 237
... 5.2 ... Ausgabe ... 239
... 5.3 ... Eingabe ... 253
... 5.4 ... Umlenken mit dem Befehl exec ... 278
... 5.5 ... Filedeskriptoren ... 281
... 5.6 ... Named Pipes ... 286
... 5.7 ... Menüs mit select (Bash und Korn-Shell only) ... 289
... 5.8 ... dialog und Xdialog ... 294
... 5.9 ... gnuplot - Visualisierung von Messdaten ... 306
6 ... Funktionen ... 333
... 6.1 ... Definition ... 333
... 6.2 ... Funktionen, die Funktionen aufrufen ... 340
... 6.3 ... Parameterübergabe ... 342
... 6.4 ... Rückgabewert aus einer Funktion ... 346
... 6.5 ... Lokale contra globale Variablen ... 351
... 6.6 ... alias und unalias ... 355
... 6.7 ... Autoload (Korn-Shell only) ... 357
7 ... Signale ... 359
... 7.1 ... Grundlagen zu den Signalen ... 359
... 7.2 ... Signale senden - kill ... 363
... 7.3 ... Eine Fallgrube für Signale - trap ... 364
8 ... Rund um die Ausführung von Scripts und Prozessen ... 375
... 8.1 ... Prozessprioritäten ... 375
... 8.2 ... Warten auf andere Prozesse ... 376
... 8.3 ... Hintergrundprozess wieder hervorholen ... 377
... 8.4 ... Hintergrundprozess schützen ... 378
... 8.5 ... Subshells ... 379
... 8.6 ... Mehrere Scripts verbinden und ausführen (Kommunikation zwischen Scripts) ... 381
... 8.7 ... Jobverwaltung ... 388
... 8.8 ... Shellscripts zeitgesteuert ausführen ... 391
... 8.9 ... Startprozess- und Profildaten der Shell ... 396
... 8.10 ... Ein Shellscript bei der Ausführung ... 404
... 8.11 ... Shellscripts optimieren ... 406
9 ... Nützliche Funktionen ... 409
... 9.1 ... Der Befehl eval ... 409
... 9.2 ... xargs ... 412
... 9.3 ... dirname und basename ... 414
... 9.4 ... umask ... 415
... 9.5 ... ulimit (Builtin) ... 416
... 9.6 ... time ... 418
... 9.7 ... typeset ... 419
10 ... Fehlersuche und Debugging ... 421
... 10.1 ... Strategien zum Vermeiden von Fehlern ... 421
... 10.2 ... Fehlerarten ... 425
... 10.3 ... Fehlersuche ... 426
11 ... Reguläre Ausdrücke und grep ... 437
... 11.1 ... Reguläre Ausdrücke - die Theorie ... 437
... 11.2 ... grep ... 441
12 ... Der Stream-Editor sed ... 455
... 12.1 ... Funktions- und Anwendungsweise von sed ... 455
... 12.2 ... Der sed-Befehl ... 459
... 12.3 ... Adressen ... 460
... 12.4 ... Kommandos, Substitutionsflags und Optionen von sed ... 462
... 12.5 ... sed-Scripts ... 478
13 ... awk-Programmierung ... 483
... 13.1 ... Einführung und Grundlagen von awk ... 483
... 13.2 ... Aufruf von awk-Programmen ... 486
... 13.3 ... Grundlegende awk-Programme und -Elemente ... 491
... 13.4 ... Muster (bzw. Adressen) von awk-Scripts ... 498
... 13.5 ... Die Komponenten von awk-Scripts ... 506
... 13.6 ... Funktionen ... 527
... 13.7 ... Empfehlung ... 542
14 ... Linux-UNIX-Kommandoreferenz ... 543
... 14.1 ... Kurzübersicht ... 544
... 14.2 ... Dateiorientierte Kommandos ... 551
... 14.3 ... Verzeichnisorientierte Kommandos ... 572
... 14.4 ... Verwaltung von Benutzern und Gruppe ... 573
... 14.5 ... Programm- und Prozessverwaltung ... 578
... 14.6 ... Speicherplatzinformationen ... 585
... 14.7 ... Dateisystem-Kommandos ... 587
... 14.8 ... Archivierung und Backup ... 599
... 14.9 ... Systeminformationen ... 613
... 14.10 ... System-Kommandos ... 615
... 14.11 ... Druckeradministration ... 617
... 14.12 ... Netzwerkbefehle ... 618
... 14.13 ... Benutzerkommunikation ... 636
... 14.14 ... Bildschirm- und Terminalkommandos ... 637
... 14.15 ... Online-Hilfen ... 640
... 14.16 ... Alles rund um PostScript-Kommandos ... 642
... 14.17 ... Gemischte Kommandos ... 642
15 ... Die Praxis ... 645
... 15.1 ... Alltägliche Lösungen ... 646
... 15.2 ... Datei-Utilities ... 650
... 15.3 ... Systemadministration ... 654
... 15.4 ... Backup-Strategien ... 679
... 15.5 ... World Wide Web und HTML ... 702
... 15.6 ... CGI (Common Gateway Interface) ... 710
16 ... GUIs mit Tcl/Tk ... 725
... 16.1 ... Was ist und was kann Tcl/Tk? ... 725
... 16.2 ... Ein Tcl/Tk-Skript starten ... 726
... 16.3 ... Variablen ... 728
... 16.4 ... Einfache Ausgabe ... 729
... 16.5 ... Substitutionsmechanismen ... 729
... 16.6 ... Mathematische Ausdrücke ... 731
... 16.7 ... Programmstrukturen ... 731
... 16.8 ... Listen ... 736
... 16.9 ... Stringverarbeitung ... 736
... 16.10 ... Dateizugriff ... 736
... 16.11 ... Der Rest ... 739
... 16.12 ... Das Tk-Toolkit ... 739
... 16.13 ... Eine Einführung ... 740
... 16.14 ... Eine einfache Schaltfläche - button ... 741
... 16.15 ... Einzeiliges Textfeld - entry ... 742
... 16.16 ... Mehrzeiliger Text und ein Menü - text und menu ... 743
... 16.17 ... Mit Ereignissen verbinden - bind ... 747
... 16.18 ... Layoutmanager (Geometriemanager) - grid und pack ... 749
... 16.19 ... Eine Scrollleiste - scrollbar ... 754
... 16.20 ... Weitere Eingabe-Widgets - radiobutton, checkbutton, scale und spinbox ... 755
... 16.21 ... frame und labelframe ... 760
... 16.22 ... Listen - listbox ... 760
... 16.23 ... Darstellen von Grafiken - canvas ... 762
... 16.24 ... Ein geteiltes Fenster - panedwindow ... 763
... 16.25 ... Widgetübersicht ... 764
... 16.26 ... Dialoge (tk_) ... 765
... 16.27 ... Tile-Erweiterung (ttk_) ... 765
... 16.28 ... Weitere Empfehlungen ... 766
A ... Anhang ... 769
A.1 ... Shell-Builtin-Befehle ... 769
A.2 ... Externe Kommandos ... 771
A.3 ... Shell-Optionen ... 772
A.4 ... Shell-Variablen ... 773
A.5 ... Kommandozeile editieren ... 778
A.6 ... Wichtige Tastenkürzel (Kontrolltasten) ... 780
A.7 ... Initialisierungsdateien der Shells ... 781
A.8 ... Signale ... 782
A.9 ... Sonderzeichen und Zeichenklassen ... 784
A.10 ... Die Buch-DVD ... 785
Index ... 787
... 1.1 ... Voraussetzungen an den Leser ... 29
... 1.2 ... Was ist eine Shell? ... 32
... 1.3 ... Hauptanwendungsgebiet ... 34
... 1.4 ... Kommando, Programm oder Shellscript? ... 38
... 1.5 ... Die Shell-Vielfalt ... 40
... 1.6 ... Betriebssysteme ... 43
... 1.7 ... Crashkurs: einfacher Umgang mit der Kommandozeile ... 44
... 1.8 ... Shellscripts schreiben und ausführen ... 57
... 1.9 ... Vom Shellscript zum Prozess ... 71
... 1.10 ... Datenstrom ... 74
... 1.11 ... Empfehlung ... 92
2 ... Variablen ... 93
... 2.1 ... Grundlagen ... 93
... 2.2 ... Zahlen ... 98
... 2.3 ... Zeichenketten ... 107
... 2.4 ... Quotings und Kommando-Substitution ... 118
... 2.5 ... Arrays (Bash und Korn-Shell only) ... 124
... 2.6 ... Variablen exportieren ... 130
... 2.7 ... Umgebungsvariablen eines Prozesses ... 136
... 2.8 ... Shell-Variablen ... 137
... 2.9 ... Automatische Variablen der Shell ... 142
3 ... Parameter und Argumente ... 149
... 3.1 ... Einführung ... 149
... 3.2 ... Kommandozeilenparameter $1 bis $9 ... 149
... 3.3 ... Besondere Parameter ... 151
... 3.4 ... Der Befehl shift ... 154
... 3.5 ... Argumente und Leerzeichen ... 156
... 3.6 ... Argumente jenseits von $9 ... 157
... 3.7 ... Argumente setzen mit set und Kommando-Substitution ... 159
... 3.8 ... getopts - Kommandozeilenoptionen auswerten ... 162
... 3.9 ... Vorgabewerte für Variablen ... 165
4 ... Kontrollstrukturen ... 169
... 4.1 ... Bedingte Anweisung mit if ... 169
... 4.2 ... Die else-Alternative für eine if-Verzweigung ... 177
... 4.3 ... Mehrfache Alternative mit elif ... 179
... 4.4 ... Das Kommando test ... 182
... 4.5 ... Status von Dateien erfragen ... 194
... 4.6 ... Logische Verknüpfung von Ausdrücken ... 197
... 4.7 ... Short Circuit-Tests - ergebnisabhängige Befehlsausführung ... 203
... 4.8 ... Die Anweisung case ... 206
... 4.9 ... Schleifen ... 213
... 4.10 ... for-Schleife ... 214
... 4.11 ... Die while-Schleife ... 224
... 4.12 ... Die until-Schleife ... 226
... 4.13 ... Kontrollierte Sprünge ... 229
... 4.14 ... Endlosschleifen ... 233
5 ... Terminal-Ein- und Ausgabe ... 237
... 5.1 ... Von Terminals zu Pseudo-Terminals ... 237
... 5.2 ... Ausgabe ... 239
... 5.3 ... Eingabe ... 253
... 5.4 ... Umlenken mit dem Befehl exec ... 278
... 5.5 ... Filedeskriptoren ... 281
... 5.6 ... Named Pipes ... 286
... 5.7 ... Menüs mit select (Bash und Korn-Shell only) ... 289
... 5.8 ... dialog und Xdialog ... 294
... 5.9 ... gnuplot - Visualisierung von Messdaten ... 306
6 ... Funktionen ... 333
... 6.1 ... Definition ... 333
... 6.2 ... Funktionen, die Funktionen aufrufen ... 340
... 6.3 ... Parameterübergabe ... 342
... 6.4 ... Rückgabewert aus einer Funktion ... 346
... 6.5 ... Lokale contra globale Variablen ... 351
... 6.6 ... alias und unalias ... 355
... 6.7 ... Autoload (Korn-Shell only) ... 357
7 ... Signale ... 359
... 7.1 ... Grundlagen zu den Signalen ... 359
... 7.2 ... Signale senden - kill ... 363
... 7.3 ... Eine Fallgrube für Signale - trap ... 364
8 ... Rund um die Ausführung von Scripts und Prozessen ... 375
... 8.1 ... Prozessprioritäten ... 375
... 8.2 ... Warten auf andere Prozesse ... 376
... 8.3 ... Hintergrundprozess wieder hervorholen ... 377
... 8.4 ... Hintergrundprozess schützen ... 378
... 8.5 ... Subshells ... 379
... 8.6 ... Mehrere Scripts verbinden und ausführen (Kommunikation zwischen Scripts) ... 381
... 8.7 ... Jobverwaltung ... 388
... 8.8 ... Shellscripts zeitgesteuert ausführen ... 391
... 8.9 ... Startprozess- und Profildaten der Shell ... 396
... 8.10 ... Ein Shellscript bei der Ausführung ... 404
... 8.11 ... Shellscripts optimieren ... 406
9 ... Nützliche Funktionen ... 409
... 9.1 ... Der Befehl eval ... 409
... 9.2 ... xargs ... 412
... 9.3 ... dirname und basename ... 414
... 9.4 ... umask ... 415
... 9.5 ... ulimit (Builtin) ... 416
... 9.6 ... time ... 418
... 9.7 ... typeset ... 419
10 ... Fehlersuche und Debugging ... 421
... 10.1 ... Strategien zum Vermeiden von Fehlern ... 421
... 10.2 ... Fehlerarten ... 425
... 10.3 ... Fehlersuche ... 426
11 ... Reguläre Ausdrücke und grep ... 437
... 11.1 ... Reguläre Ausdrücke - die Theorie ... 437
... 11.2 ... grep ... 441
12 ... Der Stream-Editor sed ... 455
... 12.1 ... Funktions- und Anwendungsweise von sed ... 455
... 12.2 ... Der sed-Befehl ... 459
... 12.3 ... Adressen ... 460
... 12.4 ... Kommandos, Substitutionsflags und Optionen von sed ... 462
... 12.5 ... sed-Scripts ... 478
13 ... awk-Programmierung ... 483
... 13.1 ... Einführung und Grundlagen von awk ... 483
... 13.2 ... Aufruf von awk-Programmen ... 486
... 13.3 ... Grundlegende awk-Programme und -Elemente ... 491
... 13.4 ... Muster (bzw. Adressen) von awk-Scripts ... 498
... 13.5 ... Die Komponenten von awk-Scripts ... 506
... 13.6 ... Funktionen ... 527
... 13.7 ... Empfehlung ... 542
14 ... Linux-UNIX-Kommandoreferenz ... 543
... 14.1 ... Kurzübersicht ... 544
... 14.2 ... Dateiorientierte Kommandos ... 551
... 14.3 ... Verzeichnisorientierte Kommandos ... 572
... 14.4 ... Verwaltung von Benutzern und Gruppe ... 573
... 14.5 ... Programm- und Prozessverwaltung ... 578
... 14.6 ... Speicherplatzinformationen ... 585
... 14.7 ... Dateisystem-Kommandos ... 587
... 14.8 ... Archivierung und Backup ... 599
... 14.9 ... Systeminformationen ... 613
... 14.10 ... System-Kommandos ... 615
... 14.11 ... Druckeradministration ... 617
... 14.12 ... Netzwerkbefehle ... 618
... 14.13 ... Benutzerkommunikation ... 636
... 14.14 ... Bildschirm- und Terminalkommandos ... 637
... 14.15 ... Online-Hilfen ... 640
... 14.16 ... Alles rund um PostScript-Kommandos ... 642
... 14.17 ... Gemischte Kommandos ... 642
15 ... Die Praxis ... 645
... 15.1 ... Alltägliche Lösungen ... 646
... 15.2 ... Datei-Utilities ... 650
... 15.3 ... Systemadministration ... 654
... 15.4 ... Backup-Strategien ... 679
... 15.5 ... World Wide Web und HTML ... 702
... 15.6 ... CGI (Common Gateway Interface) ... 710
16 ... GUIs mit Tcl/Tk ... 725
... 16.1 ... Was ist und was kann Tcl/Tk? ... 725
... 16.2 ... Ein Tcl/Tk-Skript starten ... 726
... 16.3 ... Variablen ... 728
... 16.4 ... Einfache Ausgabe ... 729
... 16.5 ... Substitutionsmechanismen ... 729
... 16.6 ... Mathematische Ausdrücke ... 731
... 16.7 ... Programmstrukturen ... 731
... 16.8 ... Listen ... 736
... 16.9 ... Stringverarbeitung ... 736
... 16.10 ... Dateizugriff ... 736
... 16.11 ... Der Rest ... 739
... 16.12 ... Das Tk-Toolkit ... 739
... 16.13 ... Eine Einführung ... 740
... 16.14 ... Eine einfache Schaltfläche - button ... 741
... 16.15 ... Einzeiliges Textfeld - entry ... 742
... 16.16 ... Mehrzeiliger Text und ein Menü - text und menu ... 743
... 16.17 ... Mit Ereignissen verbinden - bind ... 747
... 16.18 ... Layoutmanager (Geometriemanager) - grid und pack ... 749
... 16.19 ... Eine Scrollleiste - scrollbar ... 754
... 16.20 ... Weitere Eingabe-Widgets - radiobutton, checkbutton, scale und spinbox ... 755
... 16.21 ... frame und labelframe ... 760
... 16.22 ... Listen - listbox ... 760
... 16.23 ... Darstellen von Grafiken - canvas ... 762
... 16.24 ... Ein geteiltes Fenster - panedwindow ... 763
... 16.25 ... Widgetübersicht ... 764
... 16.26 ... Dialoge (tk_) ... 765
... 16.27 ... Tile-Erweiterung (ttk_) ... 765
... 16.28 ... Weitere Empfehlungen ... 766
A ... Anhang ... 769
A.1 ... Shell-Builtin-Befehle ... 769
A.2 ... Externe Kommandos ... 771
A.3 ... Shell-Optionen ... 772
A.4 ... Shell-Variablen ... 773
A.5 ... Kommandozeile editieren ... 778
A.6 ... Wichtige Tastenkürzel (Kontrolltasten) ... 780
A.7 ... Initialisierungsdateien der Shells ... 781
A.8 ... Signale ... 782
A.9 ... Sonderzeichen und Zeichenklassen ... 784
A.10 ... Die Buch-DVD ... 785
Index ... 787