Dieses umfassende Handbuch bietet alles, was Sie zur Shell-Programmierung wissen müssen. Behandelt werden: Variablen, Parameter und Argumente, Kontrollstrukturen, Terminal-Eingabe und -Ausgabe, Funktionen, Signale, Scripts und Prozesse, reguläre Ausdrücke, Fehlersuche und Debugging. Weiter geht's mit den wertvollen Helfern grep, sed und awk. Eine umfangreiche Linux-UNIX-Referenz bietet alle grundlegenden Kommandos in übersichtlicher Form. Das komplette Werk enthält zahlreiche Praxisbeispiele, ist modular zu lesen und hervorragend als Nachschlagewerk geeignet. Die aktuelle Auflage wurde erweitert und beschreibt nun auch die zsh: Damit eignet sich das Buch bestens für die Linux-Praxis!
Aus dem Inhalt:
Aus dem Inhalt:
- Variablen, Parameter und Argumente
- Kontrollstrukturen, Terminal-Eingabe und -Ausgabe
- Funktionen und Signale
- Fehlersuche und Debugging
- Reguläre Ausdrücke und grep
- Der Stream-Editor sed
- awk-Programmierung
- GUIs mit zenity
- Auswertung von Messdaten mit gnuplot
- Für die Praxis
- Linux/UNIX-Kommandoreferenz
- Shellbefehle und Builtins
- Beispiele zur Systemadministration, Backup und CGI-Scripts
- Übungsaufgaben und Lösungen
Dieser Download kann aus rechtlichen Gründen nur mit Rechnungsadresse in A, B, BG, CY, CZ, D, DK, EW, E, FIN, F, GR, HR, H, IRL, I, LT, L, LR, M, NL, PL, P, R, S, SLO, SK ausgeliefert werden.
- Produktdetails
- Verlag: Rheinwerk Verlag GmbH
- Seitenzahl: 838
- Erscheinungstermin: 28. März 2019
- Deutsch
- ISBN-13: 9783836263481
- Artikelnr.: 55477769
Materialien zum Buch ... 23
Vorwort ... 25
Vorwort des Gutachters: Die Shell - Fluch oder Segen? ... 29
1. Einführung ... 31
1.1 ... Was sollten Sie als Leser wissen? ... 31
1.2 ... Was ist eine Shell? ... 34
1.3 ... Hauptanwendungsgebiet ... 37
1.4 ... Kommando, Programm oder Shellscript? ... 40
1.5 ... Die Shell-Vielfalt ... 42
1.6 ... Betriebssysteme ... 47
1.7 ... Crashkurs: einfacher Umgang mit der Kommandozeile ... 47
1.8 ... Shellscripts schreiben und ausführen ... 61
1.9 ... Vom Shellscript zum Prozess ... 75
1.10 ... Datenstrom ... 78
1.11 ... Die Z-Shell ... 99
1.12 ... Empfehlung ... 109
1.13 ... Übungen ... 110
2. Variablen ... 111
2.1 ... Grundlagen ... 111
2.2 ... Zahlen ... 117
2.3 ... Zeichenketten ... 127
2.4 ... Quotings und Kommando-Substitution ... 139
2.5 ... Arrays ... 145
2.6 ... Variablen exportieren ... 154
2.7 ... Umgebungsvariablen eines Prozesses ... 159
2.8 ... Shell-Variablen ... 160
2.9 ... Automatische Variablen der Shell ... 166
2.10 ... Übungen ... 171
3. Parameter und Argumente ... 173
3.1 ... Einführung ... 173
3.2 ... Kommandozeilenparameter $1 bis $9 ... 173
3.3 ... Besondere Parameter ... 174
3.4 ... Der Befehl shift ... 178
3.5 ... Argumente und Leerzeichen ... 180
3.6 ... Argumente jenseits von $9 ... 180
3.7 ... Argumente setzen mit set und Kommando-Substitution ... 182
3.8 ... getopts - Kommandozeilenoptionen auswerten ... 186
3.9 ... Vorgabewerte für Variablen ... 188
3.10 ... Aufgaben ... 192
4. Kontrollstrukturen ... 193
4.1 ... Bedingte Anweisung mit if ... 193
4.2 ... Die else-Alternative für eine if-Verzweigung ... 201
4.3 ... Mehrfache Alternative mit elif ... 203
4.4 ... Das Kommando test ... 206
4.5 ... Status von Dateien erfragen ... 217
4.6 ... Logische Verknüpfung von Ausdrücken ... 221
4.7 ... Short Circuit-Tests - ergebnisabhängige Befehlsausführung ... 227
4.8 ... Die Anweisung case ... 230
4.9 ... Schleifen ... 239
4.10 ... Kontrollierte Sprünge ... 256
4.11 ... Endlosschleifen ... 260
4.12 ... Aufgaben ... 261
5. Terminal-Ein- und -Ausgabe ... 263
5.1 ... Von Terminals zu Pseudo-Terminals ... 263
5.2 ... Ausgabe ... 265
5.3 ... Eingabe ... 280
5.4 ... Umlenken mit dem Befehl exec ... 306
5.5 ... Filedescriptoren ... 309
5.6 ... Named Pipes ... 316
5.7 ... Menüs mit select ... 318
5.8 ... Aufgaben ... 323
6. Funktionen ... 325
6.1 ... Allgemeine Definition ... 325
6.2 ... Funktionen, die Funktionen aufrufen ... 332
6.3 ... Parameterübergabe ... 334
6.4 ... Rückgabewert aus einer Funktion ... 337
6.5 ... Lokale contra globale Variablen ... 342
6.6 ... alias und unalias ... 346
6.7 ... Autoload (Korn-Shell und Z-Shell) ... 349
6.8 ... Besonderheiten bei der Z-Shell ... 350
6.9 ... Aufgaben ... 351
7. Signale ... 353
7.1 ... Grundlagen zu den Signalen ... 353
7.2 ... Signale senden - kill ... 357
7.3 ... Eine Fallgrube für Signale - trap ... 358
7.4 ... Aufgabe ... 368
8. Rund um die Ausführung von Scripts und Prozessen ... 371
8.1 ... Prozessprioritäten ... 371
8.2 ... Warten auf andere Prozesse ... 372
8.3 ... Hintergrundprozess wieder hervorholen ... 373
8.4 ... Hintergrundprozess schützen ... 374
8.5 ... Subshells ... 375
8.6 ... Mehrere Scripts verbinden und ausführen (Kommunikation zwischen Scripts) ... 377
8.7 ... Jobverwaltung ... 384
8.8 ... Shellscripts zeitgesteuert ausführen ... 387
8.9 ... Startprozess- und Profildaten der Shell ... 392
8.10 ... Ein Shellscript bei der Ausführung ... 399
8.11 ... Shellscripts optimieren ... 401
8.12 ... Aufgaben ... 403
9. Nützliche Funktionen ... 405
9.1 ... Der Befehl eval ... 405
9.2 ... xargs ... 408
9.3 ... dirname und basename ... 410
9.4 ... umask ... 411
9.5 ... ulimit (Builtin) ... 412
9.6 ... time ... 414
9.7 ... typeset ... 415
9.8 ... Aufgabe ... 416
10. Fehlersuche und Debugging ... 417
10.1 ... Strategien zum Vermeiden von Fehlern ... 417
10.2 ... Fehlerarten ... 421
10.3 ... Fehlersuche ... 422
11. Reguläre Ausdrücke und grep ... 431
11.1 ... Reguläre Ausdrücke - die Theorie ... 431
11.2 ... grep ... 435
11.3 ... Aufgaben ... 448
12. Der Stream-Editor sed ... 449
12.1 ... Funktions- und Anwendungsweise von sed ... 449
12.2 ... Der sed-Befehl ... 453
12.3 ... Adressen ... 453
12.4 ... Kommandos, Substitutionsflags und Optionen von sed ... 455
12.5 ... sed-Scripts ... 471
12.6 ... Aufgaben ... 474
13. awk-Programmierung ... 475
13.1 ... Einführung und Grundlagen von awk ... 475
13.2 ... Aufruf von awk-Programmen ... 478
13.3 ... Grundlegende awk-Programme und -Elemente ... 483
13.4 ... Muster (bzw. Adressen) von awk-Scripts ... 489
13.5 ... Die Komponenten von awk-Scripts ... 497
13.6 ... Funktionen ... 518
13.7 ... Empfehlung ... 533
13.8 ... Aufgaben ... 533
14. Linux/UNIX-Kommandoreferenz ... 535
14.1 ... Kurzübersicht ... 536
14.2 ... Dateiorientierte Kommandos ... 545
14.3 ... Verzeichnisorientierte Kommandos ... 565
14.4 ... Verwaltung von Benutzern und Gruppen ... 567
14.5 ... Programm- und Prozessverwaltung ... 571
14.6 ... Speicherplatzinformationen ... 578
14.7 ... Dateisystem-Kommandos ... 579
14.8 ... Archivierung und Backup ... 591
14.9 ... Systeminformationen ... 605
14.10 ... System-Kommandos ... 607
14.11 ... Druckeradministration ... 609
14.12 ... Netzwerkbefehle ... 609
14.13 ... Benutzerkommunikation ... 626
14.14 ... Bildschirm- und Terminalkommandos ... 627
14.15 ... Online-Hilfen ... 629
14.16 ... Alles rund um PostScript-Kommandos ... 631
14.17 ... Gemischte Kommandos ... 632
15. Die Praxis ... 633
15.1 ... Alltägliche Lösungen ... 634
15.2 ... Datei-Utilitys ... 638
15.3 ... Systemadministration ... 651
15.4 ... Backup-Strategien ... 676
15.5 ... Das World Wide Web und HTML ... 698
15.6 ... CGI (Common Gateway Interface) ... 705
16. GUIs und Grafiken ... 721
16.1 ... dialog, Zenity und YAD ... 721
16.2 ... Alles zu dialog ... 722
16.3 ... Zenity ... 734
16.4 ... YAD ... 739
16.5 ... gnuplot - Visualisierung von Messdaten ... 747
16.6 ... Aufgaben ... 773
Anahng ... 775
A ... Befehle (Übersichtstabellen) ... 777
B ... Lösungen der Übungsaufgaben ... 799
C ... Trivia ... 819
Index ... 821
Vorwort ... 25
Vorwort des Gutachters: Die Shell - Fluch oder Segen? ... 29
1. Einführung ... 31
1.1 ... Was sollten Sie als Leser wissen? ... 31
1.2 ... Was ist eine Shell? ... 34
1.3 ... Hauptanwendungsgebiet ... 37
1.4 ... Kommando, Programm oder Shellscript? ... 40
1.5 ... Die Shell-Vielfalt ... 42
1.6 ... Betriebssysteme ... 47
1.7 ... Crashkurs: einfacher Umgang mit der Kommandozeile ... 47
1.8 ... Shellscripts schreiben und ausführen ... 61
1.9 ... Vom Shellscript zum Prozess ... 75
1.10 ... Datenstrom ... 78
1.11 ... Die Z-Shell ... 99
1.12 ... Empfehlung ... 109
1.13 ... Übungen ... 110
2. Variablen ... 111
2.1 ... Grundlagen ... 111
2.2 ... Zahlen ... 117
2.3 ... Zeichenketten ... 127
2.4 ... Quotings und Kommando-Substitution ... 139
2.5 ... Arrays ... 145
2.6 ... Variablen exportieren ... 154
2.7 ... Umgebungsvariablen eines Prozesses ... 159
2.8 ... Shell-Variablen ... 160
2.9 ... Automatische Variablen der Shell ... 166
2.10 ... Übungen ... 171
3. Parameter und Argumente ... 173
3.1 ... Einführung ... 173
3.2 ... Kommandozeilenparameter $1 bis $9 ... 173
3.3 ... Besondere Parameter ... 174
3.4 ... Der Befehl shift ... 178
3.5 ... Argumente und Leerzeichen ... 180
3.6 ... Argumente jenseits von $9 ... 180
3.7 ... Argumente setzen mit set und Kommando-Substitution ... 182
3.8 ... getopts - Kommandozeilenoptionen auswerten ... 186
3.9 ... Vorgabewerte für Variablen ... 188
3.10 ... Aufgaben ... 192
4. Kontrollstrukturen ... 193
4.1 ... Bedingte Anweisung mit if ... 193
4.2 ... Die else-Alternative für eine if-Verzweigung ... 201
4.3 ... Mehrfache Alternative mit elif ... 203
4.4 ... Das Kommando test ... 206
4.5 ... Status von Dateien erfragen ... 217
4.6 ... Logische Verknüpfung von Ausdrücken ... 221
4.7 ... Short Circuit-Tests - ergebnisabhängige Befehlsausführung ... 227
4.8 ... Die Anweisung case ... 230
4.9 ... Schleifen ... 239
4.10 ... Kontrollierte Sprünge ... 256
4.11 ... Endlosschleifen ... 260
4.12 ... Aufgaben ... 261
5. Terminal-Ein- und -Ausgabe ... 263
5.1 ... Von Terminals zu Pseudo-Terminals ... 263
5.2 ... Ausgabe ... 265
5.3 ... Eingabe ... 280
5.4 ... Umlenken mit dem Befehl exec ... 306
5.5 ... Filedescriptoren ... 309
5.6 ... Named Pipes ... 316
5.7 ... Menüs mit select ... 318
5.8 ... Aufgaben ... 323
6. Funktionen ... 325
6.1 ... Allgemeine Definition ... 325
6.2 ... Funktionen, die Funktionen aufrufen ... 332
6.3 ... Parameterübergabe ... 334
6.4 ... Rückgabewert aus einer Funktion ... 337
6.5 ... Lokale contra globale Variablen ... 342
6.6 ... alias und unalias ... 346
6.7 ... Autoload (Korn-Shell und Z-Shell) ... 349
6.8 ... Besonderheiten bei der Z-Shell ... 350
6.9 ... Aufgaben ... 351
7. Signale ... 353
7.1 ... Grundlagen zu den Signalen ... 353
7.2 ... Signale senden - kill ... 357
7.3 ... Eine Fallgrube für Signale - trap ... 358
7.4 ... Aufgabe ... 368
8. Rund um die Ausführung von Scripts und Prozessen ... 371
8.1 ... Prozessprioritäten ... 371
8.2 ... Warten auf andere Prozesse ... 372
8.3 ... Hintergrundprozess wieder hervorholen ... 373
8.4 ... Hintergrundprozess schützen ... 374
8.5 ... Subshells ... 375
8.6 ... Mehrere Scripts verbinden und ausführen (Kommunikation zwischen Scripts) ... 377
8.7 ... Jobverwaltung ... 384
8.8 ... Shellscripts zeitgesteuert ausführen ... 387
8.9 ... Startprozess- und Profildaten der Shell ... 392
8.10 ... Ein Shellscript bei der Ausführung ... 399
8.11 ... Shellscripts optimieren ... 401
8.12 ... Aufgaben ... 403
9. Nützliche Funktionen ... 405
9.1 ... Der Befehl eval ... 405
9.2 ... xargs ... 408
9.3 ... dirname und basename ... 410
9.4 ... umask ... 411
9.5 ... ulimit (Builtin) ... 412
9.6 ... time ... 414
9.7 ... typeset ... 415
9.8 ... Aufgabe ... 416
10. Fehlersuche und Debugging ... 417
10.1 ... Strategien zum Vermeiden von Fehlern ... 417
10.2 ... Fehlerarten ... 421
10.3 ... Fehlersuche ... 422
11. Reguläre Ausdrücke und grep ... 431
11.1 ... Reguläre Ausdrücke - die Theorie ... 431
11.2 ... grep ... 435
11.3 ... Aufgaben ... 448
12. Der Stream-Editor sed ... 449
12.1 ... Funktions- und Anwendungsweise von sed ... 449
12.2 ... Der sed-Befehl ... 453
12.3 ... Adressen ... 453
12.4 ... Kommandos, Substitutionsflags und Optionen von sed ... 455
12.5 ... sed-Scripts ... 471
12.6 ... Aufgaben ... 474
13. awk-Programmierung ... 475
13.1 ... Einführung und Grundlagen von awk ... 475
13.2 ... Aufruf von awk-Programmen ... 478
13.3 ... Grundlegende awk-Programme und -Elemente ... 483
13.4 ... Muster (bzw. Adressen) von awk-Scripts ... 489
13.5 ... Die Komponenten von awk-Scripts ... 497
13.6 ... Funktionen ... 518
13.7 ... Empfehlung ... 533
13.8 ... Aufgaben ... 533
14. Linux/UNIX-Kommandoreferenz ... 535
14.1 ... Kurzübersicht ... 536
14.2 ... Dateiorientierte Kommandos ... 545
14.3 ... Verzeichnisorientierte Kommandos ... 565
14.4 ... Verwaltung von Benutzern und Gruppen ... 567
14.5 ... Programm- und Prozessverwaltung ... 571
14.6 ... Speicherplatzinformationen ... 578
14.7 ... Dateisystem-Kommandos ... 579
14.8 ... Archivierung und Backup ... 591
14.9 ... Systeminformationen ... 605
14.10 ... System-Kommandos ... 607
14.11 ... Druckeradministration ... 609
14.12 ... Netzwerkbefehle ... 609
14.13 ... Benutzerkommunikation ... 626
14.14 ... Bildschirm- und Terminalkommandos ... 627
14.15 ... Online-Hilfen ... 629
14.16 ... Alles rund um PostScript-Kommandos ... 631
14.17 ... Gemischte Kommandos ... 632
15. Die Praxis ... 633
15.1 ... Alltägliche Lösungen ... 634
15.2 ... Datei-Utilitys ... 638
15.3 ... Systemadministration ... 651
15.4 ... Backup-Strategien ... 676
15.5 ... Das World Wide Web und HTML ... 698
15.6 ... CGI (Common Gateway Interface) ... 705
16. GUIs und Grafiken ... 721
16.1 ... dialog, Zenity und YAD ... 721
16.2 ... Alles zu dialog ... 722
16.3 ... Zenity ... 734
16.4 ... YAD ... 739
16.5 ... gnuplot - Visualisierung von Messdaten ... 747
16.6 ... Aufgaben ... 773
Anahng ... 775
A ... Befehle (Übersichtstabellen) ... 777
B ... Lösungen der Übungsaufgaben ... 799
C ... Trivia ... 819
Index ... 821