Gesamt |
|
Anspruch | |
Aufmachung | |
Preis - Leistungs - Verhältnis | |
Wie funktionieren eigentlich diese configure-Skripte? Wie kann ich mein Backup automatisieren?
Unter Linux beziehungsweise Unix werden viele wiederkehrende Aufgaben nicht mit eigenen Programmen, sondern mit so genannten Shell-Skripten bewältigt. Als angehender Systemadministrator sowie als fortgeschrittener Benutzer ist es deshalb nützlich, den eigenen Arbeitsalltag ebenfalls mit Shell-Skripten zu erleichtern. Ebendiese zeichnen sich durch ein Baukastenprinzip aus, bei dem aus kleinen hochspezialisierten Hilfsprogrammen ein neues Werkzeug gebaut wird.
Das Buch Klassische Shell-Programmierung von OReilly führt den Leser in Kapitel Eins und Zwei von der Geschichte hinter Unix über die Entwicklungsprinzipien des POSIX Standards zum ersten einfachen Shell-Skript.
Danach punktet in Kapitel Drei eine gelungene Einführung in die regulären Ausdrücke. Diese werden von vielen Unix-Programmen verwendet, um Textsuchen und Textersetzungen durchzuführen. Das Besondere an regulären Ausdrücken ist, dass man mit ihnen nicht nur einen Suchtext eingeben kann, sondern auch Alternativen, Wiederholungen und Muster mit in seine Suchbeschreibung einarbeiten kann. Schön ist hier besonders die Gegenüberstellung von einfachen und erweiterten regulären Ausdrücken in einer Tabelle und die Übersicht, welche Programme welche Sorte von regulären Ausdrücken verwenden.
Es folgen die wichtigsten Werkzeuge zur Textbearbeitung, -sortierung und -formatierung wie etwa "sed" und "grep", mit denen die eben gelernten regulären Ausdrücke auf Textdaten angewendert werden können. Auch "cut" und "join", zwei weit verbreitete Hilfsprogramme zum Arbeiten mit Tabellendaten in Textform, werden am Beispiel einer Personenkartei vorgeführt und erklärt. Der Leser erhält hier auch Basiswissen im Umgang mit Pipes, bevor in Kapitel Fünf erklärt wird, auf welche Weisen man mit Pipes mehrere Programme zusammen knüpfen kann. Als Beispiel dient hier die Konvertierung der erstellten Personenkartei in ein HTML-Dokument.
Kapitel Sechs dreht sich um Variablen, Schleifen und die Möglichkeit, einen Programmteil nur unter bestimmten Bedingungen auszuführen und lehrt den Leser die Bedeutung der Exit-Codes, die nahezu alle Hilfsprogramme beim Beenden zurückgeben.
Die Vorstellung der Grundbausteine eines Shell-Skripts wird in Kapitel Sieben mit Ein- und Ausgabe und fest in die Shell integrierten Befehlen abgeschlossen. Als logische Fortführung präsentiert Kapitel Acht deshalb Praxisanwendungen von Shell-Skripten, zum Beispiel das automatische Erstellen von Softwarepacketen mit einem Build-Skript.
Obwohl das bisherige Wissen für kleine Shell-Skripte schon vollkommen reichen würde, folgt in Kapitel Neun eine ausführliche Einleitung in die Benutzung des Programms "awk", welches sehr mächtig ist, um Textdaten umzuformatieren und nachzubearbeiten.
Kapitel Zehn widmet sich der erweiterten Arbeit mit Dateien, etwa der Dateisuche oder dem Bestimmen des freien Festplattenplatzes. Danach folgen zwei große Beispiele, die jeweils ihr eigenes Kapitel bilden. Hier wird unter anderem auch vorgeführt, wie sich ein Problem auf mehrere Arten lösen lässt.
Die restlichen Kapitel widmen sich der Prozesskontrolle, der Portabilität auf andere Systeme sowie der Sicherheit.
Ganz am Ende punktet das Buch erneut mit einer vierseitigen Liste der wichtigsten Hilfsprogramme und Shell-Befehle, nach Kategorien sortiert.
Das Buch ist leicht zu lesen und bringt zu jedem eingeführten Werkzeug mindestens ein erklärendes Beispiel. Die im Buch verwendeten Beispiele bauen zudem aufeinander auf und ziehen sich so durch mehrere Kapitel. Es ist damit zum Einstieg gut geeignet, obwohl Vorkenntnisse mit Linux oder Unix notwendig sind. Grundlegende Aufgaben wie das Erstellen, Bearbeiten und Verschieben von Dateien oder die Änderung der Zugriffsrechte mit chmod werden dem Leser überlassen. Es empfiehlt sich, dieses Buch in Reihe zu lesen und nicht zu höheren Kapiteln zu springen, denn was in einem früheren Kapitel eingeführt wurde, wird später nicht erneut erklärt, so dass es zeitweise nötig ist, ins vorherige Kapitel zurückzublättern.