E-Book, Deutsch, 288 Seiten
Reihe: mitp Professional
Schirmer Shell Script Programmierung kapieren und trainieren
1., 2025
ISBN: 978-3-7475-0801-5
Verlag: mitp Verlags GmbH & Co.KG
Format: EPUB
Kopierschutz: 6 - ePub Watermark
Der einfache Einstieg in die Linux-Automatisierung für Systemadministration, DevOps & Co.. Mit Übungen und Prüfungen
E-Book, Deutsch, 288 Seiten
Reihe: mitp Professional
ISBN: 978-3-7475-0801-5
Verlag: mitp Verlags GmbH & Co.KG
Format: EPUB
Kopierschutz: 6 - ePub Watermark
- Alle wichtigen Grundlagen für die Shell-Script-Programmierung
- Systematischer Einstieg von der Syntax über Kontrollstrukturen bis hin zu Automatisierung und Prozesssteuerung
- Mit Schritt-für-Schritt-Anleitungen und Übungsaufgaben
Dein Weg zum Shell-Script-Meister
Shell Scripting zu lernen ist wie das Meistern einer Kampfkunst – es erfordert Übung, Struktur und ein solides Fundament. Dieses Buch richtet sich an Systemadministratoren, Entwickler und Studierende, die Shell Scripting von Grund auf lernen und praktisch anwenden möchten. Jedes Kapitel vermittelt praxisnahe Techniken, mit denen du deine Fähigkeiten systematisch aufbaust.
Trainingsplan für die Praxis
Du startest mit den Grundlagen der Syntax und den wichtigsten Terminal-Befehlen. Danach lernst du den Umgang mit Variablen, Kontrollstrukturen, Funktionen und der Verarbeitung von Dateien. Fortgeschrittene Themen wie Prozesssteuerung, zeitgesteuerte Aufgaben mit Cron und andere Automatisierungstechniken runden dein Training ab.
Mit Übungen und Prüfungen zum schwarzen Gürtel
Nach jedem Kapitel stellst du dich einer Gürtelprüfung – einer herausfordernden Übungsaufgabe, um dein Wissen zu festigen. So erarbeitest du dir Schritt für Schritt alle Grundlagen der Shell-Script-Programmierung, die im Admin- und DevOps-Alltag unverzichtbar sind.
Zielgruppe
Systemadministratoren, Softwareentwickler, Studierende
Autoren/Hrsg.
Weitere Infos & Material
Kapitel 1:
Weißgurt: Einführung in Terminal und Shell
Im ersten Kapitel wenden wir uns Grundlagen zu, die die Basis für späteres Wissen bilden, den Umgang mit dem System vereinfachen und dessen Aufbau verständlicher machen.
Wir erklären dir, was Terminal und Shell sind, wie du sie verwendest und wie du mit Dateien und Verzeichnissen arbeitest. Wir geben einen Überblick über wichtige Befehle und du bekommst die Möglichkeit, das Gelernte in einer Übung anzuwenden.
Um dieses Kapitel nicht aufzublähen, haben wir uns dazu entschlossen, nur eine abschließende Übung einzubauen. Du kannst die eingefügten Code-Beispiele jederzeit bei dir lokal ausprobieren.
1.1 Die richtige Linux-Distribution
Will man Linux installieren, muss man eine Entscheidung zwischen Kali Linux, Debian, Ubuntu und vielen anderen Distributionen[1] treffen. Aber was ist der Unterschied?
Es gibt mittlerweile mehr als 600 verschiedene Linux-Distributionen. All diese Distributionen unterscheiden sich voneinander und sind oft auf ganz bestimmte Anwendungsfälle zugeschnitten. Eine Gemeinsamkeit haben sie aber alle: Sie bauen auf einem Linux-Kernel auf.
Ein Kernel ermöglicht die Kommunikation zwischen Software und Hardware. Er sorgt dafür, dass die Kommunikation zwischen dem Benutzer und seinem Gerät trotz unterschiedlicher Hardware funktioniert. Die verschiedenen Linux-Distributionen nutzen verschiedene Versionen dieses Kernels, der jeweils auf andere Anforderungen und die eigene Hardware zugeschnitten ist. Eine Distribution enthält aber nicht nur verschiedene Varianten des Kernels, sondern auch unterschiedliche Software-Pakete.
Der Linux-Kernel wird aber auch in Smart-Devices, dem Windows-Subsystem für Linux (WSL), Raspberry Pi OS und auf Android-Smartphones genutzt.
Welche Distribution für die eigenen Zwecke die passendste ist, darüber sollte man sich am besten selbst informieren. Wir haben uns hier für Ubuntu entschieden, weil es weitverbreitet und sehr universell einsetzbar ist. Du kannst aber auch eine andere Distribution wählen.
Unix
Häufig wirst du bei Recherchen zu Linux-Themen auf das Wort Unix stoßen. Dabei handelt es sich um eines der ersten, auf der Programmiersprache C basierenden Betriebssysteme. Linux orientierte sich in seiner Entstehungszeit sehr an Unixund ähnelt ihm deshalb stark. Man zählt Linux zu den Unix-ähnlichen Betriebssystemen.
1.2 Die Verzeichnisstruktur
Der FHS (»Filesystem Hierarchy Standard«) definiert einen Standard, nach dem der Großteil der Linux-Distributionen ihr Dateisystem, also Verzeichnisse und ihre Inhalte, sortiert und benennt. Durch die Verwendung eines Standards wird dafür gesorgt, dass diese Linux-Distributionen eine einheitliche Verzeichnisstruktur haben. Das ermöglicht es, Programme für verschiedene Distributionen zu entwickeln, ohne dass man dabei unterschiedliche Verzeichnisstrukturen berücksichtigen muss.
Abweichungen vom FHS
Einzelne Linux-Distributionen können von diesem Standard abweichen (z.B. GoboLinux oder NixOS). Die großen Linux-Distributionen wie Ubuntu, Kali Linux oder Debian halten sich jedoch daran.
Die Wurzel deines Verzeichnissystems ist das Root-Verzeichnis (dt. Wurzel-Verzeichnis). Alle Datei- und Verzeichnispfade nehmen hier ihren Ursprung. Stellst du dir das Verzeichnissystem als Baumdiagramm vor, dann ist das Root-Verzeichnis die Wurzel.
Ein Systempfad beginnt immer mit einem Schrägstrich (»/«) für das Root-Verzeichnis. Der FHS enthält eine ganze Liste an Verzeichnissen, die im Root-Verzeichnis liegen. Verzeichnisse sowie ihre untergeordneten Verzeichnisse und Dateien werden mit einem »/« voneinander getrennt. Gegebenen Pfaden kannst du also von links nach rechts, bis zu ihrem Ende, aus dem Root-Verzeichnis folgen.
Abb. 1.1: Ausschnitt einer Verzeichnisstruktur
Der Pfad könnte also auf eine Datei verweisen, die in dem Verzeichnis im Verzeichnis im Root-Verzeichnis liegt. könnte aber auch ein Unterverzeichnis im Verzeichnis sein. Ob ein Verzeichnis oder eine Datei ist, sieht man nur, wenn man sich genauer anschaut. Das geht z.B. mit dem Befehl , den wir in Abschnitt 1.3.4 erklären.
Weiterführende Informationen zum FHS
Mehr Informationen zum FHS findest du auf folgenden Seiten:
-
https://refspecs.linuxfoundation.org/FHS_3.0/fhs/index.html (Die Spezifikation auf Englisch)
1.2.1 Das Home-Verzeichnis
Das Home-Verzeichnis ist eines der vom FHS festgelegten Verzeichnisse im Root-Verzeichnis.
Im Home-Verzeichnis hat jeder Benutzer ein eigenes Verzeichnis. Für den Benutzer Tux liegt das Home-Verzeichnis in . Den Namen Tux wirst du immer wieder lesen, wir nutzen ihn als Platzhalter für den aktiven Benutzer. Taucht der Name Tux also irgendwo auf, dann ersetze ihn einfach mit deinem eigenen Benutzernamen.
Das Home-Verzeichnis eines Benutzers ist der Ort, an dem benutzerspezifische Einstellungen und Dateien abgelegt werden können. Andere Benutzer haben keinen Zugriff auf dein Home-Verzeichnis, nur du hast alle verfügbaren Berechtigungen.
Als Kurzform für das Home-Verzeichnis des aktiven Benutzers kann man die Tilde »« nutzen.
Ist Tux also gerade der aktive Benutzer und will ein Programm im Verzeichnis seines Home-Verzeichnisses ausführen, dann ist die Kurzform für . Wechselt jetzt der Benutzer und Pax möchte ein Skript in seinem Home-Verzeichnis ausführen, greift auf zu.
1.3 Terminal und Shell
Ein Terminal ist ein Programm, das in einem Fenster eine auf Text basierende Interaktion mit dem Betriebssystem ermöglicht. Dazu läuft im Terminal ein weiteres Programm, die Shell. Eine Shell ist ein Programm, das Befehle interpretiert und die zugrunde liegenden Programme ausführt.
Befehle sind Programme
Auch Befehle sind Programme, die von der Shell ausgeführt werden. Es kann am Anfang verwirren, dass Programme in Programmen ausgeführt werden. Um diese Verschachtelung zu verstehen, hilft es, sich vor Augen zu führen, dass das Terminal ein Programm ist, das die Shell als Programm ausführt, welche Befehle (Programme) ausführt.
Auch die grafische Benutzeroberfläche ist ein separates Programm.
Genau wie bei den Linux-Distributionen gibt es nicht die eine Shell. Jede Distribution hat zwar eine Shell, die das Terminal als Standard nutzt, meistens werden aber mehrere Shells mitgeliefert.
Ähnlich dem FHS gibt es noch einen weitreichenderen Standard für Systemkompatibilität, den POSIX – kurz für »Portable Operating System Interface for Unix« (dt. Portable Betriebssystem-Schnittstelle für Unix) –, welcher eine Reihe an Standards für Betriebssysteme definiert. Diese Standards befassen sich mit Schnittstellen und Verhaltensweisen von Unix-ähnlichen Betriebssystemen. Das heißt, dass grundlegende Funktionen wie das Arbeiten mit Dateien und einige grundlegenden Befehle der Shells gleich oder sehr ähnlich aufgebaut sind. Alles, was über die Funktionalitäten des POSIX hinausgeht, kann sich allerdings unterscheiden und ist dann nicht mehr zwischen den verschiedenen Shells kompatibel.
und
Das Verzeichnis enthält alle Befehle, die vom Benutzer und vom Administrator ausgeführt werden können. Das Verzeichnis enthält Befehle, die nur vom Administrator ausgeführt werden dürfen. - und -Verzeichnisse gibt es nicht nur im Wurzel-Verzeichnis, man findet sie auch an verschiedenen anderen Stellen im System (z.B. , , , , ).
Die Shells sind im Verzeichnis gespeichert. Es gibt drei Shells, von denen man schon einmal gehört haben sollte – tiefergehende Details werden wir hier jedoch nicht behandeln.
Die Bourne-Shell wurde 1979 veröffentlicht. Ihr Programmname ist sh und sie lag früher im Pfad . Mittlerweile verweist allerdings meistens als symbolischer Link auf die Standard-Shell der gewählten Distribution. Oft ist das dann die Bash-Shell, auf Ubuntu allerdings die Dash-Shell.
Die Bash oder auch Bourne-Again Shell ist eine Weiterentwicklung der Bourne Shell und wurde 1986 veröffentlicht. Die Bash liegt in /bin/bash. Sie ist die wohl am weitesten verbreitete Linux-Shell und erweitert die sh um viele Funktionalitäten. Bei der Ausführung eines Terminals wird auf Ubuntu die Bash als Shell genutzt.
Auch gehört haben solltest du von der Debian-Almiquist-Shell, kurz Dash. Diese liegt in /bin/dash und ist bei der Ausführung von...




