ebook img

Linux-, Unix-Shells : Bourne-Shell, Korn-Shell, C-Shell, bash, tcsh PDF

831 Pages·1999·5.85 MB·German
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Linux-, Unix-Shells : Bourne-Shell, Korn-Shell, C-Shell, bash, tcsh

LINUX-UNIX-Shells LINUX/UNIX und seine Werkzeuge bisher erschienen: Helmut Herold: LINUX-UNIX-Kurzreferenz Helmut Herold: LINUX-UNIX-Grundlagen Helmut Herold: LINUX-UNIX-Profitools Helmut Herold: LINUX-UNIX-Shells Helmut Herold: LINUX-UNIX-Systemprogrammierung Helmut Herold L -U -Shells INUX NIX Bourne-Shell, Korn-Shell, C-Shell, bash, tcsh 3., aktualisierte Auflage An imprint of Pearson Education Deutschland GmbH München (cid:127) Bosten (cid:127) San Francisco (cid:127) Harlow, England Don Mills, Ontario (cid:127) Sydney (cid:127) Mexico City Madrid (cid:127) Amsterdam Die Deutsche Bibliothek – CIP-Einheitsaufnahme Herold, Helmut: Linux-Unix-Shells : Bourne-Shell, Korn-Shell, bash, tcsh / Helmut Herold. – 3. Aufl. – Bonn ; Reading, Mass. [u. a.] : Addison-Wesley-Longman, 1999. (Linux/Unix und seine Werkzeuge) ISBN 3-8273-1511-5 Buch .1999 GB 10 9 8 7 6 5 4 3 2 03 02 01 00 99 © 1999 by Addison Wesley Longman Verlag, ein Imprint der Pearson Education Deutschland GmbH Lektorat: Susanne Spitzer, München Satz: Reemers EDV-Satz, Krefeld. Gesetzt aus der Palatino 9,5 Punkt Belichtung, Druck und Bindung: Kösel GmbH, Kempten Produktion: TYPisch Müller, München Umschlaggestaltung: Hammer Grafik-Design, Haar bei München Das verwendete Papier ist aus chlorfrei gebleichten Rohstoffen hergestellt und alterungsbeständig. Die Produktion erfolgt mit Hilfe umweltschonender Technologien und unter strengsten Auflagen in einem geschlossenen Wasserkreislauf unter Wiederverwertung unbedruckter, zurückgeführter Papiere. Text, Abbildungen und Programme wurden mit größter Sorgfalt erarbeitet. Verlag, Übersetzer und Auto- ren können jedoch für eventuell verbliebene fehlerhafte Angaben und deren Folgen weder eine juristi- sche Verantwortung noch irgendeine Haftung übernehmen. Die vorliegende Publikation ist urheberrechtlich geschützt. Alle Rechte vorbehalten. Kein Teil dieses Buches darf ohne schriftliche Genehmigung des Verlages in irgendeiner Form durch Fotokopie, Mikro- film oder andere Verfahren reproduziert oder in eine für Maschinen, insbesondere Datenverarbeitungs- anlagen, verwendbare Sprache übertragen werden. Auch die Rechte der Wiedergabe durch Vortrag, Funk und Fernsehen sind vorbehalten. Die in diesem Buch erwähnten Software- und Hardwarebezeichnungen sind in den meisten Fällen auch eingetragene Warenzeichen und unterliegen als solche den gesetzlichen Bestimmungen. Inhaltsverzeichnis 1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.1 Übersicht zu diesem Buch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 Hinweis zum Herunterladen der im Buch vorgestellten Shellskripts 2 1.3 Hinweis zur Buchreihe: Linux/Unix und seine Werkzeuge . . . . . . . . 3 2 Allgemeines zur UNIX-Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.1 Aufgaben einer Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.2 Shell-Varianten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.3 Eigenschaften der Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3 Begriffe der Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 4 Die Bourne-Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 4.1 Metazeichen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 4.2 Einfache Kommandos, Pipelines und Listen . . . . . . . . . . . . . . . . . . . . . 13 4.3 Kommentare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 4.4 Shell-Skripts (Shell-Prozeduren) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 4.5 Kommandosubstitution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 4.6 Shell-Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 4.7 Expandierung von Dateinamen auf der Kommandozeile . . . . . . . . . . 64 4.8 Quoting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 4.9 Ein- und Ausgabeumlenkung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 4.10 Auswertung von Ausdrücken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 4.11 Kommandoklammerung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 4.12 Programmiersprachkonstrukte der Shell . . . . . . . . . . . . . . . . . . . . . . . . 107 4.13 Fehlersuche in Shell-Skripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 4.14 Signalbehandlung in der Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 4.15 Builtin-Kommandos der Bourne-Shell . . . . . . . . . . . . . . . . . . . . . . . . . . 188 4.16 Abarbeitung von Kommandozeilen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 4.17 Die Aufrufsyntax der Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 4.18 Handhabung von überlangen Kommandozeilen . . . . . . . . . . . . . . . . . 219 vi Inhaltsverzeichnis 4.19 Die Datei .profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 4.20 Die eingeschränkte Shell rsh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 4.21 Job-Kontrolle mit shl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 4.22 Anwendungsbeispiele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 5 Die Korn-Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 5.1 Erweiterungen und Neuheiten der Korn-Shell . . . . . . . . . . . . . . . . . . . 249 5.2 Das Starten der Korn-Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251 5.3 Metazeichen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 5.4 Einfache Kommandos, Pipelines und Listen . . . . . . . . . . . . . . . . . . . . . 255 5.5 Kommentare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257 5.6 Shell-Skripts (Shell-Prozeduren) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257 5.7 Kommandosubstitution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258 5.8 Shell-Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261 5.9 Expandierung von Dateinamen auf der Kommandozeile . . . . . . . . . . 287 5.10 Quoting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290 5.11 Ein- und Ausgabeumlenkung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293 5.12 Die builtin-Kommandos read und print . . . . . . . . . . . . . . . . . . . . . . . . 301 5.13 Überprüfen von Bedingungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306 5.14 Arithmetische Auswertungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310 5.15 Kommandoklammerung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318 5.16 Programmiersprachkonstrukte der Korn-Shell . . . . . . . . . . . . . . . . . . . 319 5.17 Der Alias-Mechanismus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343 5.18 Die Tilde-Expandierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353 5.19 Der History-Mechanismus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353 5.20 Die builtin-Editoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359 5.21 Fehlersuche in ksh-Skripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385 5.22 Signalbehandlung in der ksh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387 5.23 Job-Kontrolle in der Korn-Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391 5.24 Builtin-Kommandos der Korn-Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400 5.25 Die Abarbeitung von Kommandozeilen . . . . . . . . . . . . . . . . . . . . . . . . 416 5.26 Aufrufsyntax und Umgebung der ksh . . . . . . . . . . . . . . . . . . . . . . . . . . 428 5.27 Einrichten einer persönlichen Arbeitsumgebung . . . . . . . . . . . . . . . . . 437 5.28 Anwendungsbeispiele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447 5.29 Unterschiede zwischen der Bourne-Shell und ksh-Versionen . . . . . . 468 5.30 Literaturhinweis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476 Inhaltsverzeichnis vii 6 Die C-Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477 6.1 Starten und Beenden der C-Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478 6.2 Metazeichen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479 6.3 Einfache Kommandos, Pipelines und Listen . . . . . . . . . . . . . . . . . . . . . 482 6.4 Kommentare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484 6.5 Shell-Skripts (Shell-Prozeduren) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485 6.6 Kommandosubstitution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485 6.7 Shell-Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486 6.8 Expandierung von Dateinamen auf der Kommandozeile . . . . . . . . . . 501 6.9 Quoting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504 6.10 Ein- /Ausgabeumlenkung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 506 6.11 Ausdrücke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 509 6.12 Kommandoklammerung mit (..) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517 6.13 Kommandos zur Ablaufsteuerung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517 6.14 Der History-Mechanismus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 528 6.15 Der Alias-Mechanismus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535 6.16 Fehlersuche in csh-Skripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 539 6.17 Signalbehandlung in der csh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 540 6.18 Job-Kontrolle in der csh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 542 6.19 Builtin-Kommandos der C-Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 552 6.20 Die Abarbeitung von Kommandozeilen . . . . . . . . . . . . . . . . . . . . . . . . 567 6.21 Aufrufsyntax der csh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 568 6.22 Einrichten einer persönlichen Arbeitsumgebung . . . . . . . . . . . . . . . . . 570 6.23 Erweiterungen in manchen csh-Versionen . . . . . . . . . . . . . . . . . . . . . . 574 6.24 Anwendungsbeispiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 575 7 bash – Bourne Again Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 585 7.1 Wesentliche Unterschiede der bash zur Bourne-Shell . . . . . . . . . . . . . 585 7.2 Optionen und Argumente für die bash . . . . . . . . . . . . . . . . . . . . . . . . . 588 7.3 Einfache Kommandos, Pipelines und Listen . . . . . . . . . . . . . . . . . . . . . 589 7.4 Kommandos zur Ablaufsteuerung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 589 7.5 Kommentare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 591 7.6 Quoting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 591 7.7 Parameter und Variablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 591 7.8 Substitutionen und Expandierungen . . . . . . . . . . . . . . . . . . . . . . . . . . . 596 7.9 Ein-/Ausgabeumlenkung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 600 7.10 Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 601 7.11 Alias-Mechanismus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 602 viii Inhaltsverzeichnis 7.12 Jobkontrolle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 602 7.13 Der bash-Prompt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603 7.14 Editieren von Kommandozeilen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 604 7.15 History-Mechanismus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 613 7.16 bash-Arithmetik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 615 7.17 Builtin-Kommandos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 617 7.18 Startup-Dateien der bash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 633 7.19 Abarbeitung von Kommandozeilen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 634 7.20 Anwendungsbeispiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 635 8 tcsh – Erweiterte C-Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 639 8.1 Aufrufsyntax der tcsh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 639 8.2 Startup-Dateien der tcsh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 640 8.3 Editieren von Kommandozeilen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 641 8.4 Lexikalische Struktur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 658 8.5 Substitutionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 659 8.6 Ausführung von Kommandos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 670 8.7 tcsh-Ausdrücke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 673 8.8 Jobkontrolle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 677 8.9 Periodische, automatische und zeitgesteuerte Ereignisse . . . . . . . . . . 678 8.10 Abfangen von Signalen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 679 8.11 Builtin-Kommandos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 679 8.12 Spezielle Aliase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 706 8.13 Spezielle Shellvariablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 707 8.14 Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 725 8.15 Anwendungsbeispiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 726 9 Die beiden Tischrechner dcund bc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 729 9.1 Der Tischrechner dc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 729 9.2 Der Tischrechner bc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 738 10 Dialogboxen unter Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 761 10.1 Aufrufsyntax des dialog-Kommandos . . . . . . . . . . . . . . . . . . . . . . . . . . 761 10.2 Ausgeben von Informationen (--msgbox, --infobox, --textbox) . . . . . 762 10.3 Ja/Nein-Auswahl (--yesno) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 765 10.4 Eingabe von Strings (--inputbox) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 768 10.5 Menüauswahl (--menu) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 771 10.6 Auswahl von Optionen (--checklist) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 774 10.7 Auswahl einer von mehreren Alternativen (--radiolist) . . . . . . . . . . . 781 Inhaltsverzeichnis ix 10.8 Ausgabe von Prozentbalken (--gauge) . . . . . . . . . . . . . . . . . . . . . . . . . . 784 10.9 Konfiguration von dialog-Ausgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . 788 10.10 Anwendungsbeispiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 790 Stichwortverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 797

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.