Schirmer | Shell Script Programmierung kapieren und trainieren | E-Book | sack.de
E-Book

E-Book, Deutsch, 288 Seiten

Reihe: mitp Professional

Schirmer Shell Script Programmierung kapieren und trainieren

Der einfache Einstieg in die Linux-Automatisierung für Systemadministration, DevOps & Co.. Mit Übungen und Prüfungen
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.

Schirmer Shell Script Programmierung kapieren und trainieren jetzt bestellen!

Zielgruppe


Systemadministratoren, Softwareentwickler, Studierende

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:

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...


Uwe Schirmer ist Geschäftsbereichsleiter bei der rms GmbH, die Software für den öffentlichen Nahverkehr entwickelt.Er hat viele Jahre als Software-Architekt gearbeitet und ist beim International Software Architecture Qualification Board (iSAQB) aktiv. Als Autor hat er bereits mehrere Bücher über Scala und Scrum geschrieben und verschiedene Bücher aus dem Englischen übersetzt. Er bloggt unter http://schirmer.org.

Louis Schirmer studiert Kognitionswissenschaften und arbeitet als Werkstudent in der Softwareentwicklung. Mit diesem Buch hat er erste Erfahrungen im Schreiben machen können.



Ihre Fragen, Wünsche oder Anmerkungen
Vorname*
Nachname*
Ihre E-Mail-Adresse*
Kundennr.
Ihre Nachricht*
Lediglich mit * gekennzeichnete Felder sind Pflichtfelder.
Wenn Sie die im Kontaktformular eingegebenen Daten durch Klick auf den nachfolgenden Button übersenden, erklären Sie sich damit einverstanden, dass wir Ihr Angaben für die Beantwortung Ihrer Anfrage verwenden. Selbstverständlich werden Ihre Daten vertraulich behandelt und nicht an Dritte weitergegeben. Sie können der Verwendung Ihrer Daten jederzeit widersprechen. Das Datenhandling bei Sack Fachmedien erklären wir Ihnen in unserer Datenschutzerklärung.