Shell-Skripte in Unix

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

Unix/Linux Grundlagen für Einsteiger

Shell-Programmierung fur Unix und Linux

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

Shell-Skript-Programmierung

Vorlesung Unix-Praktikum

Aufgabensammlung IT Shellprogrammierung Teil I

Computer & GNU/Linux Einführung Teil 4

Vorlesung Unix-Praktikum

I Grundlagen der System-Administration 8

Der UNIX-Werkzeugkasten Programmieren mit UNIX

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

Arithmetik in der tcsh

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

Shell. Oder Konsole suchen im Application Finder. Auch Terminal, Bash oder Kommandozeile genannt. Bash nimmt Befehle entgegen und führt diese aus

Datenbankprogrammierung mit MySQL 5 und PHP 5 Spona

Ein- und Ausgabeumlenkung

Benutzung der Manpage, Shell Teil 3

Desktop ade: Me and my shell

Vorlesung Unix-Praktikum

Übersicht PERL. !!!! Wichtig: Nach dem Befehl einem Strichpunkt setzen!!!!

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

Linux Prinzipien und Programmierung

Einführung Unix Shell

Programmieren lernen mit Perl

Inhaltsverzeichnis. Vorwort.11

grep kurz & gut John Bambenek and Agnieszka Klus

Grundlagen der Programmierung

Technische Praxis der Computersysteme 1

Linux und Shell-Programmierung Teil 5

Übersicht Shell-Scripten

Übung: Entwickeln eines Shell-Skripts

FARBTREUE FOTOS. Herwig Diessner. Computer & Literatur Verlag GmbH

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

SelfLinux Was ist eine Shell?

Unix Powerseminar für Datenbankund Applikationsbetreuer

Dateisystem 1, Suchen & Finden

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

Vorlesung Unix-Praktikum

Das CIP der Mathematik

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

Das eigene Web mit HTML, CSS und JavaScript

Inhaltsverzeichnis. Kapitel i: Schnelleinstieg 13. Kapitel 2: Was sind Programme? 17. Kapitel 3: Wie erstellt man eigene Programme?

Inhaltsverzeichnis. Vorwort NXTundNXC DerNXT NXC Not exactly C Compiler Zusammenfassung 17

UNIX Die wichtigsten Befehle

Wiederholung: Prozesse

Stream EDitor SED und Reguläre Ausdrücke

Arzu Sanli Ibrahim Canakci

Raffinierte Shell Scripts

Dateisystem 2, Suchen & Finden

Übung 4: Schreiben eines Shell-Skripts

Crashkurs Kommandozeile

Linux-Einführung Übung

Programmieren in Lua

Linux und Shell-Programmierung Teil 6

Teil 1: Einführung in die Shell. Was ist die Shell? Wichtige Kommandos (1) Einführung in die Shell. Grundlagen der Shell-Programmierung

Da einige Befehle gerne in Vergessenheit geraten werden hier einige essentielle und nützliche Befehle aufgelistet.

Programmieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff

Programmieren lernen in ASP.NET mit C#

1. Einleitung Benutzeroberfläche: PC-DOS/MS-DOS 23

Einführung in den Einsatz von Objekt-Orientierung mit C++ I

LINUX Gesamtmitschrift

C für Java-Programmierer

Shell-Programmierung

Dateisystem 2, RegEx, Manpages

Linux Kommandozeile: Einfache Skripte. 1 Wiederhohlung. 2 Einfache Skripte

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

Terminal & Shell-Skripte

Roboter programmieren mit NXC für LEGO MINDSTORMS NXT

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

Material zum Grundlagenpraktikum ITS. eine kleine Linux-Befehlsreferenz. Stand: Oktober 2007 zusammengestellt von: Cornelia Menzel Version 1.

Alles, was man auf der Kommandozeile eingeben kann, kann man auch in einem Skript verwenden. Umgekehrt gilt das gleiche.

Zsh. Die magische Shell

Vorkurs Linux Grundlagen

Inhaltsverzeichnis. 1 Hallo 13

Programmieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff

Handbuch SEBLOD. Mehr als nur das Standard-Joomla!: Das Content Construction Kit SEBLOD in der Praxis. Axel Tüting

Inhalt. 1 Einstieg in die Welt von C Erste Schritte in C 31. Vorwort... 15

Kommandozeileneingabe. Einführung in Perl Kommandozeileneingabe etc. Kommandozeileneingabe Optionen. Kommandozeileneingabe Bsp (1)

Schäfer: Root-Server. Copyright (C) Open Source Press

105.1 Shell, Scripting

FRANZIS PROFESSIONAL SERIES. Harald Zisler SOLARIS 10. & OpenSOLARIS. 115 Abbildungen KNOW-HOW IST BLAU.

Wilhelm Haager. Computeralgebra. mit Maxima. Grundlagen der Anwendung und Programmierung. Fachbuchverlag Leipzig. im Carl Hanser Verlag

Arbeiten mit der Shell Teil 2

Transkript:

Shell-Skripte in Unix

SHELL-SKRIPTE IN UNIX Alexander Mayer Computer & Literatur Verlag GmbH

Die Deutsche Bibliothek CIP-Einheitsaufnahme Bibliografische Information Der Deutschen Bibliothek Ein Titeldatensatz für diese Publikation ist bei Der Deutschen Bibliothek erhältlich und im Internet über http://dnb.ddb.de abrufbar. Überarbeitete und erweiterte Neuauflage von Shell-Programmierung in Unix, ISBN 3-932311-78-7 Alle Rechte vorbehalten. Ohne ausdrückliche, schriftliche Genehmigung des Herausgebers ist es nicht gestattet, das Buch oder Teile daraus in irgendeiner Form durch Fotokopie, Mikrofilm oder ein anderes Verfahren zu vervielfältigen oder zu verbreiten. Dasselbe gilt für das Recht der öffentlichen Wiedergabe. Der Verlag macht darauf aufmerksam, daß die genannten Firmen- und Markenzeichen sowie Produktbezeichnungen in der Regel marken-, patent-, oder warenzeichenrechtlichem Schutz unterliegen. Die Herausgeber übernehmen keine Gewähr für die Funktionsfähigkeit beschriebener Verfahren, Programme oder Schaltungen. 2007 06 05 6 5 4 3 2 1 2005 by C&L Computer und Literaturverlag Zavelsteiner Straße 20, 71034 Böblingen E-Mail: info@cul.de WWW: http://www.cul.de Coverdesign: Hawa & Nöh, Neu-Eichenberg Druck: PUT i RB DROGOWIEC Printed in Poland Dieses Buch wurde auf chlorfrei gebleichtem Papier gedruckt ISBN 3-936546-23-1

Inhalt Vorwort... 11 Teil I: Erste Schritte 1 Einführung... 15 2 Grundlagen zur Shell... 29 2.1 Erste Programmiererfahrungen... 29 2.2 Grundbegriffe der Shellprogrammierung... 34 2.3 Anweisungen... 36 2.4 Funktionen... 41 Teil II: Die Eingabeaufforderung 3 Ein- und Ausgabeverarbeitung... 45 3.1 Die Theorie... 45 3.2 Umlenkung... 47 3.3 Pipelines... 52 3.4 Umlenkung in mehrere Dateien... 54 3.5 Kommandosubstitution... 57 3.6 Komplexe Kombinationen... 61 4 Dateinamenexpandierung... 63 4.1 Einführung... 63 4.2 Jokerzeichen der Bourne-Shell... 64 4.3 Dateinamenexpandierung in der Korn-Shell... 66 4.4 Dateinamenexpandierung der Z Shell... 69 4.5 Detailfragen und Implementierungen... 96 4.6 Tilde-Expandierung... 99 4.7 Brace-Expandierung... 101

INHALT Teil III: Der Werkzeugkasten 5 Variablen...105 5.1 Was ist eine Variable?...106 5.2 Einfache Variablen...106 5.3 Werte von der Tastatur einlesen...108 5.4 Positionsvariablen...111 5.5 Gültigkeitsbereiche von Variablen...120 5.6 Attribute von Variablen...127 5.7 Automatische Variablen...134 6 Quoting...135 7 Arithmetische Ausdrücke...143 7.1 Das Unixtool expr...144 7.2 Arithmetische Ausdrücke der Korn-Shell...152 7.3 Rechnen mit Gleitkommazahlen...157 7.4 Rechnen mit unterschiedlichen Zahlensystemen...165 7.5 Arithmetik mit Bash und der Z Shell...166 8 Ablaufsteuerung...167 8.1 Bedingungen...167 8.2 Fallunterscheidungen...179 8.3 Schleifen...189 8.4 Spezialitäten von Z Shell, Bash3 und Korn-Shell93...216 Teil IV: Von der Pflicht zur Kür 9 Arrays...227 9.1 Einfache Arrays...227 9.2 Einfache Arrays in Korn-Shell93 und Bash3...243 9.3 Einfache Arrays in der Z Shell...244 9.4 Assoziative Arrays...246 9.5 Flags für Arrays in der Z Shell...255 6

INHALT 10 Einfache Variablenausdrücke... 263 11 Erweiterte Variablenausdrücke... 273 11.1 Variablenausdrücke der Korn-Shell... 273 11.2 Erweiterungen von Korn-Shell93, Bash3 und Z Shell... 287 11.3 Zeigervariablen... 291 11.4 Variablenausdrücke der Z Shell... 295 11.5 Variablenausdrücke durch Unixtools realisieren... 334 12 Prozesse, Dateien und Signale... 337 12.1 Erweiterte Ein- und Ausgabeverarbeitung... 337 12.2 Hintergrundprozesse... 348 12.3 Signale... 355 12.4 Coprozesse... 364 12.5 Programme zeitgesteuert starten (at)... 380 12.6 Interprozeßkommunikation... 383 Teil V: Der Feinschliff 13 Wichtige Unixtools... 407 13.1 Reguläre Ausdrücke... 407 13.1.1 Einfache Suchmuster... 408 13.1.2 Suchmuster für Fortgeschrittene... 410 13.1.3 Eifrige Qualifier... 413 13.1.4 Gierige Qualifier... 414 13.1.5 Geizige Qualifier... 416 13.1.6 Landestypische Zeichen... 417 13.2 Dateien durchsuchen (grep, egrep und fgrep)... 420 13.3 Texte editieren mit sed... 423 13.3.1 Allgemeine Syntax und Aufruf... 423 13.3.2 Funktionen zur Änderung des Texts... 426 13.3.3 Der Zwischenspeicher... 440 13.3.4 Mehrere Zeilen in den Puffern... 445 13.3.5 Funktionen zur Ablaufsteuerung... 453 13.4 Farben und Cursorpositionierung am Terminal... 461 13.5 Benutzeroberflächen mit der Shell (dialog)... 471 13.6 Rechnen mit beliebiger Genauigkeit (bc)... 480 7

INHALT 13.7 Überlange Argumentenliste (xargs)...489 13.8 Dateien rekursiv suchen (find)...494 13.9 Zeilen sortieren (sort)...503 13.10 Kleine Helfer...508 13.10.1 Verzeichnis und Dateinamenerweiterung entfernen (basename)...508 13.10.2 Felder und Zeichenketten ausschneiden (cut)...508 13.10.3 Datum und Zeit ausgeben (date)...509 13.10.4 Dateityp ermitteln (file)...511 13.10.5 Informationen über Benutzer und Rechner ermitteln (whoami, id, groups und hostname)...512 13.10.6 Anfang oder Schluß einer Datei ausgeben (head und tail)...514 13.10.7 Mails versenden (mail)...515 13.10.8 Zeichen ersetzen oder löschen (tr)...516 13.10.9 Zeilen, Wörter und Zeichen zählen (wc)...518 14 Die Shellbefehle...521 14.1 Aliase...521 14.2 Bourne-Shell...527 14.2.1 Befehlsreferenz...527 14.2.2 Der shellinterne Hash (hash)...529 14.2.3 Gruppenzugehörigkeit wechseln (newgrp)...530 14.2.4 Anweisungen analysieren (type)...530 14.2.5 Ressourcenverbrauch eines Prozesses ermitteln (times)...532 14.2.6 Maximale Dateigröße festlegen (ulimit)...533 14.3 Korn-Shell...533 14.3.1 Befehlsreferenz...533 14.3.2 Eine mächtige Alternative zu echo (print)...538 14.3.3 Erweiterungen des read-befehls...540 14.3.4 Ressourcenverbrauch eines Prozesses ermitteln (times)...541 14.3.5 Betriebssystemlimits setzen bis Korn-Shell86 (ulimit)...542 14.3.6 Betriebssystemlimits setzen ab Korn-Shell88 (ulimit)...543 14.4 Korn-Shell93...545 14.4.1 Befehlsreferenz...545 14.4.2 Nur externe Programme und Shellbefehle ausführen (command)...553 14.4.3 Formatierte Ausgaben (printf)...556 14.4.4 Erweiterungen des read-befehls...565 14.5 Bash1...568 14.5.1 Befehlsreferenz...568 14.5.2 Verzeichnisstack...575 8

INHALT 14.6 Bash3... 577 14.6.1 Befehlsreferenz... 577 14.7 Z Shell... 588 14.7.1 Befehlsreferenz... 588 14.7.2 Erweiterungen des print-befehls... 604 14.7.3 Erweiterungen des read-befehls... 609 14.7.4 Terminaleinstellungen einfrieren (ttyctl)... 611 15 Konfiguration... 613 15.1 Shelloptionen... 613 15.1.1 set in der Bourne-Shell... 613 15.1.2 set in der Korn-Shell... 618 15.1.3 set in der Bash... 620 15.1.4 Shelloptionen der Bash1... 624 15.1.5 Shelloptionen der Bash3... 628 15.1.6 Shelloptionen der Z Shell... 631 15.2 Standardvariablen... 644 15.2.1 Bourne-Shell... 644 15.2.2 Korn-Shell... 648 15.2.3 Bash1... 656 15.2.4 Bash3... 661 15.2.5 Z Shell... 671 15.3 Konfigurationsdateien... 688 15.3.1 Bourne-Shell... 689 15.3.2 Korn-Shell... 689 15.3.3 Bash1... 691 15.3.4 Bash3... 692 15.3.5 Z Shell... 693 15.3.6 Universelle Konfigurationsdateien... 695 16 Shellprogrammierung im Detail... 699 16.1 Funktionen... 699 16.1.1 Lokale und globale Funktionen... 699 16.1.2 Automatisches Nachladen von Funktionen... 704 16.1.3 Autoload in der Korn-Shell93... 705 16.1.4 Autoload in der Z Shell... 706 16.1.5 Ein objektorientierter Ansatz (Discipline Functions)... 707 16.2 Fehlersuche... 711 9

INHALT 16.3 Tips und Tricks...724 16.3.1 Eigene Shellbefehle in die Korn-Shell93 einfügen...724 16.3.2 Wortaufspaltung und Dateinamen...726 16.3.3 Optionen verarbeiten (getopts)...729 16.3.4 Shelltyp ermitteln...732 16.3.5 Shellskripte mit s-bit...735 16.3.6 Sicherheitsproblematiken...739 16.4 Der try-always-block...742 Teil VI: Über den Tellerrand 17 C-Shell und Tcsh...747 17.1 Grundlagen...748 17.2 Variablen...752 17.3 Ablaufsteuerung...760 17.3.1 Bedingungen und arithmetische Ausdrücke...760 17.3.2 Dateitests in der Tcsh...764 17.3.3 if-abfragen...767 17.3.4 switch-abfragen...769 17.3.5 while-schleife...771 17.3.6 foreach-schleife...772 17.3.7 repeat-schleife...773 17.3.8 Der Sprungbefehl goto...774 17.3.9 Der Shellbefehl onintr...775 17.4 Kommandozeile...777 17.5 Shellbefehle...783 17.6 Konfiguration...794 18 Perl...811 19 Tcl/Tk...835 20 Python...855 Stichwortverzeichnis...865 10