Shell-Programmierung

Das umfassende Handbuch. Für Bourne-, Korn- und Bourne-Again-Shell (bash). Ideal für alle UNIX-Admins (Linux, macOS)
 
 
Rheinwerk (Verlag)
  • 7. Auflage
  • |
  • erschienen am 9. Juni 2022
 
  • Buch
  • |
  • Hardcover
  • |
  • 868 Seiten
978-3-8362-8923-8 (ISBN)
 
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:

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



Die Fachpresse zur Vorauflage:

IT Administrator: »Scripting ist kein Hexenwerk und erleichtert das Leben eines IT-Profis deutlich. Wie sich dies unter Linux und UNIX bewerkstelligen lässt, zeigen Kania und Wolf eindrücklich und Schritt für Schritt in ihrem Buch.«

  • Deutsch
  • Bonn
  • |
  • Deutschland
Rheinwerk
  • Überarbeitete Ausgabe
  • Höhe: 246 mm
  • |
  • Breite: 181 mm
  • |
  • Dicke: 54 mm
  • 1722 gr
978-3-8362-8923-8 (9783836289238)
weitere Ausgaben werden ermittelt


Materialien zum Buch ... 23


Vorwort ... 25


Vorwort des Gutachters: Die Shell -- Fluch oder Segen? ... 29


1. Einführung ... 31


1.1 ... Was sollten Sie 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 ... 43

1.6 ... Betriebssysteme ... 48

1.7 ... Crashkurs: einfacher Umgang mit der Kommandozeile ... 49

1.8 ... Shellscripts schreiben und ausführen ... 63

1.9 ... Vom Shellscript zum Prozess ... 83

1.10 ... Datenstrom ... 86

1.11 ... Die Z-Shell ... 105

1.12 ... Empfehlung ... 117

1.13 ... Übungen ... 117



2. Variablen ... 119


2.1 ... Grundlagen ... 119

2.2 ... Zahlen ... 125

2.3 ... Zeichenketten ... 136

2.4 ... Quotings und Kommando-Substitution ... 148

2.5 ... Arrays ... 154

2.6 ... Variablen exportieren ... 163

2.7 ... Umgebungsvariablen eines Prozesses ... 168

2.8 ... Shell-Variablen ... 169

2.9 ... Automatische Variablen der Shell ... 175

2.10 ... Übungen ... 180



3. Parameter und Argumente ... 183


3.1 ... Einführung ... 183

3.2 ... Kommandozeilenparameter $1 bis $9 ... 183

3.3 ... Besondere Parameter ... 184

3.4 ... Der Befehl shift ... 188

3.5 ... Argumente und Leerzeichen ... 190

3.6 ... Argumente jenseits von $9 ... 190

3.7 ... Argumente setzen mit set und Kommando-Substitution ... 192

3.8 ... getopts -- Kommandozeilenoptionen auswerten ... 196

3.9 ... Vorgabewerte für Variablen (Parameter-Expansion) ... 198

3.10 ... Substring-Expansion ... 202

3.11 ... Aufgaben ... 202



4. Kontrollstrukturen ... 203


4.1 ... Bedingte Anweisung mit if ... 203

4.2 ... Die else-Alternative für eine if-Verzweigung ... 212

4.3 ... Mehrfache Alternative mit elif ... 214

4.4 ... Das Kommando test ... 216

4.5 ... Status von Dateien erfragen ... 228

4.6 ... Logische Verknüpfung von Ausdrücken ... 232

4.7 ... Short-Circuit-Tests -- ergebnisabhängige Befehlsausführung ... 237

4.8 ... Die Anweisung case ... 241

4.9 ... Schleifen ... 249

4.10 ... Kontrollierte Sprünge ... 266

4.11 ... Endlosschleifen ... 270

4.12 ... Aufgaben ... 272



5. Terminal-Ein- und -Ausgabe ... 273


5.1 ... Von Terminals zu Pseudo-Terminals ... 273

5.2 ... Ausgabe ... 276

5.3 ... Eingabe ... 291

5.4 ... Umlenken mit dem Befehl exec ... 317

5.5 ... Filedescriptoren ... 320

5.6 ... Named Pipes ... 327

5.7 ... Menüs mit select ... 329

5.8 ... Aufgaben ... 334



6. Funktionen ... 337


6.1 ... Allgemeine Definition ... 337

6.2 ... Funktionen, die Funktionen aufrufen ... 344

6.3 ... Parameterübergabe ... 347

6.4 ... Rückgabewert aus einer Funktion ... 350

6.5 ... Lokale kontra globale Variablen ... 355

6.6 ... alias und unalias ... 359

6.7 ... Autoload (Korn-Shell und Z-Shell) ... 362

6.8 ... Besonderheiten bei der Z-Shell ... 363

6.9 ... Aufgaben ... 364



7. Signale ... 365


7.1 ... Grundlagen zu den Signalen ... 365

7.2 ... Signale senden -- kill ... 370

7.3 ... Eine Fallgrube für Signale -- trap ... 371

7.4 ... Aufgabe ... 381



8. Rund um die Ausführung von Scripts und Prozessen ... 383


8.1 ... Prozessprioritäten ... 383

8.2 ... Warten auf andere Prozesse ... 384

8.3 ... Hintergrundprozess wieder hervorholen ... 385

8.4 ... Hintergrundprozess schützen ... 386

8.5 ... Subshells ... 387

8.6 ... Mehrere Scripts verbinden und ausführen (Kommunikation zwischen Scripts) ... 389

8.7 ... Jobverwaltung ... 396

8.8 ... Shellscripts zeitgesteuert ausführen ... 399

8.9 ... Startprozess- und Profildaten der Shell ... 404

8.10 ... Ein Shellscript bei der Ausführung ... 411

8.11 ... Shellscripts optimieren ... 413

8.12 ... Aufgaben ... 415



9. Nützliche Funktionen ... 417


9.1 ... Der Befehl eval ... 417

9.2 ... xargs ... 420

9.3 ... dirname und basename ... 422

9.4 ... umask ... 423

9.5 ... ulimit (Builtin) ... 424

9.6 ... time ... 426

9.7 ... typeset ... 427

9.8 ... Aufgabe ... 428



10. Fehlersuche und Debugging ... 429


10.1 ... Strategien zum Vermeiden von Fehlern ... 429

10.2 ... Fehlerarten ... 433

10.3 ... Fehlersuche ... 434

10.4 ... Fehlerbehandlung ... 443



11. Reguläre Ausdrücke und grep ... 445


11.1 ... Reguläre Ausdrücke -- die Theorie ... 445

11.2 ... grep ... 449

11.3 ... Aufgaben ... 462



12. Der Stream-Editor sed ... 463


12.1 ... Funktions- und Anwendungsweise von sed ... 463

12.2 ... Der sed-Befehl ... 467

12.3 ... Adressen ... 468

12.4 ... Kommandos, Substitutionsflags und Optionen von sed ... 469

12.5 ... sed-Scripts ... 487

12.6 ... Aufgaben ... 489



13. awk-Programmierung ... 491


13.1 ... Einführung und Grundlagen von awk ... 491

13.2 ... Aufruf von awk-Programmen ... 494

13.3 ... Grundlegende awk-Programme und -Elemente ... 499

13.4 ... Muster (bzw. Adressen) von awk-Scripts ... 505

13.5 ... Die Komponenten von awk-Scripts ... 513

13.6 ... Funktionen ... 534

13.7 ... Empfehlung ... 549

13.8 ... Aufgaben ... 549



14. Linux/UNIX-Kommandoreferenz ... 551


14.1 ... Kurzübersicht ... 552

14.2 ... Dateiorientierte Kommandos ... 561

14.3 ... Verzeichnisorientierte Kommandos ... 583

14.4 ... Verwaltung von Benutzern und Gruppen ... 584

14.5 ... Programm- und Prozessverwaltung ... 588

14.6 ... Speicherplatzinformationen ... 596

14.7 ... Dateisystemkommandos ... 598

14.8 ... Archivierung und Backup ... 610

14.9 ... Systeminformationen ... 625

14.10 ... Systemkommandos ... 626

14.11 ... Druckeradministration ... 628

14.12 ... Hardwareabfragen ... 629

14.13 ... Netzwerkbefehle ... 631

14.14 ... Benutzerkommunikation ... 649

14.15 ... Bildschirm- und Terminalkommandos ... 651

14.16 ... Online-Hilfen ... 653

14.17 ... Alles rund um PostScript-Kommandos ... 655

14.18 ... Gemischte Kommandos ... 656



15. Die Praxis ... 657


15.1 ... Alltägliche Lösungen ... 658

15.2 ... Datei-Utilitys ... 662

15.3 ... Systemadministration ... 675

15.4 ... Backup-Strategien ... 701

15.5 ... Systemstart -- Init-System ... 717

15.6 ... Das World Wide Web und HTML ... 725

15.7 ... CGI (Common Gateway Interface) ... 736



16. GUIs und Grafiken ... 751


16.1 ... dialog, Zenity und YAD ... 751

16.2 ... dialog -- Abfragen und Informationen ... 752

16.3 ... Zenity ... 763

16.4 ... YAD ... 768

16.5 ... gnuplot -- Visualisierung von Messdaten ... 776

16.6 ... Aufgaben ... 803



Anhang ... 805


A ... Befehle (Übersichtstabellen) ... 805

B ... Lösungen der Übungsaufgaben ... 829

C ... Trivia ... 849



Index ... 851

»Als Nachschlagewerk super geeignet. Für Lehrlinge im IT-Bereich perfekt.«
Shell-Programmierung grundlegend verstehen!
Mit dem richtigen Know-how rund um die Shell machen Sie sich den Linux-Alltag leichter: Praxisorientierte Codebeispiele zur bash, Korn-Shell und Z-Shell zeigen Ihnen, wie Sie Aufgaben geschickt automatisieren und clever lösen.

Erprobtes Wissen für den täglichen Einsatz
Ob reguläre Ausdrücke, cron oder Zenity: Die Kommandozeile hält einige Tricks für Sie parat. Lernen Sie unter anderem, wie Sie Backups automatisieren, Log-Dateien auswerten oder grafische Dialoge erstellen.

Übungsaufgaben und Beispiele
Die Befehlreferenz zu allen Kommandos und Dateien macht das Buch zum nützlichen Nachschlagewerk. Und die Übungsaufgaben mit Lösungen unterstützen Sie beim Lernen und bei der täglichen Arbeit mit der Shell.

Sofort lieferbar

44,90 €
inkl. 7% MwSt.
In den Warenkorb