Schweitzer Fachinformationen
Wenn es um professionelles Wissen geht, ist Schweitzer Fachinformationen wegweisend. Kunden aus Recht und Beratung sowie Unternehmen, öffentliche Verwaltungen und Bibliotheken erhalten komplette Lösungen zum Beschaffen, Verwalten und Nutzen von digitalen und gedruckten Medien.
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.
»Das didaktisch stringent und komprimiert informierende Buch hält sich nicht mit abstrakten Ausführungen auf.« (c´t Magazin, 08/2025) »Die vermittelten Techniken sind in allen Kapiteln sehr praxisnah und gut für den Programmier-Alltag zu gebrauchen. Zur Belohnung erhält man am Ende ein eigenes Quiz-Spiel und hat alle Grundlagen der Shell-Script-Programmierung drauf.« (07/2025, Ahadesign)
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.
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.
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.
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 /home/tux/wichtig könnte also auf eine Datei wichtig verweisen, die in dem Verzeichnis tux im Verzeichnis home im Root-Verzeichnis liegt. wichtig könnte aber auch ein Unterverzeichnis im Verzeichnis tux sein. Ob wichtig ein Verzeichnis oder eine Datei ist, sieht man nur, wenn man sich wichtig genauer anschaut. Das geht z.B. mit dem Befehl ls, den wir in Abschnitt 1.3.4 erklären.
/home/tux/wichtig
wichtig
tux
home
ls
Weiterführende Informationen zum FHS
Mehr Informationen zum FHS findest du auf folgenden Seiten:
https://de.wikipedia.org/wiki/Filesystem_Hierarchy_Standard
https://refspecs.linuxfoundation.org/FHS_3.0/fhs/index.html (Die Spezifikation auf Englisch)
Das Home-Verzeichnis? ist eines der vom FHS festgelegten Verzeichnisse im Root-Verzeichnis.
Im Home-Verzeichnis /home hat jeder Benutzer ein eigenes Verzeichnis. Für den Benutzer Tux liegt das Home-Verzeichnis in /home/tux. 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?.
/home
/home/tux
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 skripte seines Home-Verzeichnisses ausführen, dann ist ~/skripte die Kurzform für /home/tux/skripte. Wechselt jetzt der Benutzer und Pax möchte ein Skript in seinem Home-Verzeichnis ausführen, greift ~/skripte auf /home/pax/skripte zu.
skripte
~/skripte
/home/tux/skripte
/home/pax/skripte
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.
bin und sbin
bin
sbin
Das Verzeichnis /bin? enthält alle Befehle, die vom Benutzer und vom Administrator ausgeführt werden können. Das Verzeichnis /sbin? enthält Befehle, die nur vom Administrator? ausgeführt werden dürfen. bin- und sbin-Verzeichnisse gibt es nicht nur im Wurzel-Verzeichnis, man findet sie auch an verschiedenen anderen Stellen im System (z.B. /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin, ~/bin).
/bin
/sbin
/usr/bin
/usr/sbin
/usr/local/bin
/usr/local/sbin
~/bin
Die Shells sind im Verzeichnis /bin 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 /bin/sh. Mittlerweile verweist /bin/sh 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.
/bin/sh
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...
Dateiformat: ePUBKopierschutz: Wasserzeichen-DRM (Digital Rights Management)
Systemvoraussetzungen:
Das Dateiformat ePUB ist sehr gut für Romane und Sachbücher geeignet - also für „fließenden” Text ohne komplexes Layout. Bei E-Readern oder Smartphones passt sich der Zeilen- und Seitenumbruch automatisch den kleinen Displays an. Mit Wasserzeichen-DRM wird hier ein „weicher” Kopierschutz verwendet. Daher ist technisch zwar alles möglich – sogar eine unzulässige Weitergabe. Aber an sichtbaren und unsichtbaren Stellen wird der Käufer des E-Books als Wasserzeichen hinterlegt, sodass im Falle eines Missbrauchs die Spur zurückverfolgt werden kann.
Weitere Informationen finden Sie in unserer E-Book Hilfe.