
Shell-Skript
Ein Shell-Skript ist eine Textdatei mit einer Liste von Computerbefehlen, die der Rechner der Reihe nach ausführt. Damit automatisiert man Aufgaben, die man sonst jedes Mal von Hand eintippen müsste.
Viele Aufgaben am Computer kann man tippen statt klicken. Dafür gibt es ein Programm, das Befehle in Textform annimmt und ausführt: die Shell, oft auch Kommandozeile oder Terminal genannt. Man schreibt zum Beispiel einen Befehl zum Kopieren einer Datei, drückt Enter, und die Datei ist kopiert. Ein Shell-Skript ist nichts anderes als eine Textdatei, in der mehrere solche Befehle untereinander stehen. Startet man diese Datei, arbeitet der Computer die Befehle von oben nach unten ab. Statt zwanzig Zeilen einzeln zu tippen, ruft man das Skript einmal auf.
Warum Fachleute Arbeit in Textdateien gießen
Der wichtigste Grund ist Wiederholbarkeit. Ein Mensch, der zwanzig Befehle von Hand eingibt, vertippt sich irgendwann oder vergisst einen Schritt. Ein Skript macht jedes Mal exakt dasselbe, heute und in zwei Jahren. Genau darauf verlassen sich Rechenzentren, Server und Entwicklerteams.
Der zweite Grund ist Nachvollziehbarkeit. Ein Skript ist lesbarer Text, den man in ein Versionsverwaltungssystem legen kann. Das ist ein Archiv, das jede Änderung mit Datum und Urheber speichert. Wenn etwas kaputtgeht, sieht man, wer was wann geändert hat. Bei Handarbeit im Terminal gibt es diese Spur nicht.
Ein Shell-Skript ist dabei kein vollwertiges Programm im klassischen Sinn. Es steuert eher andere Programme, so wie ein Regisseur, der Anweisungen gibt, aber selbst nicht schauspielt. Für Rechenarbeit sind Sprachen wie Python besser geeignet. Für das Aneinanderreihen bestehender Werkzeuge ist die Shell unschlagbar knapp.
Vom Befehl zur ausführbaren Datei
Ein Skript beginnt meist mit einer speziellen ersten Zeile, dem sogenannten Shebang. Sie sieht so aus: #!/bin/bash. Damit steht in der Datei selbst, welches Programm den Rest interpretieren soll. Bash ist die verbreitetste Shell auf Linux-Systemen; auf Macs ist Zsh üblich, die sehr ähnlich funktioniert.
Darunter folgen die Befehle. Neben einfachen Aufrufen gibt es Variablen, die Werte zwischenspeichern, und Schleifen, die einen Befehl auf viele Dateien anwenden. Mit einer Bedingung prüft man, ob ein Ordner existiert, und reagiert entsprechend. Damit hat man alles, was eine Programmiersprache braucht, nur in sehr sparsamer Schreibweise.
Eine typische Besonderheit ist die Pipe, geschrieben als senkrechter Strich. Sie leitet das Ergebnis eines Befehls direkt als Eingabe in den nächsten. So entstehen Ketten kleiner Werkzeuge, die zusammen etwas Komplexes leisten. Der häufigste Anfängerfehler ist übrigens der Umgang mit Leerzeichen in Dateinamen: ohne Anführungszeichen zerlegt die Shell einen Namen in zwei Teile.
Shell-Skripte in Servern, Cloud und KI-Projekten
Wer eine Webseite oder einen Onlinedienst betreibt, kommt an Shell-Skripten kaum vorbei. Sie legen nachts Sicherungskopien an, löschen alte Protokolldateien und starten Dienste neu. Auf einem Zeitplan gestartet, laufen sie ohne Zutun eines Menschen. Ein Großteil der Serverwartung besteht aus solchen kleinen, unspektakulären Dateien.
Auch bei KI-Projekten sind sie Alltag. Ein Trainingslauf, bei dem ein Modell aus Beispieldaten lernt, wird fast immer über ein Skript gestartet. Es lädt die Daten, setzt die Einstellungen und schreibt die Ergebnisse weg. In Anleitungen auf Plattformen wie GitHub steht darum oft eine Zeile, die man kopieren und ins Terminal einfügen soll.
Ein Wort zur Vorsicht: Ein Skript aus dem Internet ungeprüft auszuführen, ist riskant. Es läuft mit den Rechten des Benutzers und kann Dateien löschen oder Software nachladen. Genau deshalb tauchen Shell-Skripte auch in Sicherheitsmeldungen auf, wenn Angreifer sie zum Einschleusen von Schadsoftware nutzen. Ein Blick in die Datei vor dem Start ist keine Übervorsicht, sondern Standard.