So schreiben Sie Bash-Skripte, um Linux zu automatisieren

Bash-Skripting ist eine wertvolle Fähigkeit für jeden Linux-Benutzer. Schon als Anfänger kann man durch dieses Wissen seine Maschine effizienter nutzen und mühsame, wiederholende Aufgaben vermeiden. In diesem Artikel zeigen wir, wie man Bash-Skripte schreibt, um Linux zu automatisieren und die volle Kontrolle über das System zu erlangen. Wir werden die Grundlagen des Skriptings mit der Bash-Shell erklären, einschließlich der Definition eines Skripts, dessen Ausführung, der Bedeutung von Shebangs und mehr.

Verschiedene Skriptarten

Es gibt diverse Arten von Skripten, hauptsächlich SH und BASH. Dateierweiterungen sind entscheidend, da sie dem Interpreter mitteilen, wie eine Datei ausgeführt werden soll. Eine SH-Datei kann in jeder Shell ausgeführt werden, nicht nur in Bash. Ein für Bash unter Linux erstelltes Skript kann somit auch auf Mac, BSD und ähnlichen Systemen laufen.

Skripte mit der BASH-Erweiterung sind hingegen ausschließlich für die Ausführung in der Bash-Shell gedacht. Ein solches Skript würde also beispielsweise nicht in der Fish-Shell unter Linux funktionieren.

Die Rolle des Shebangs

Manche Skripte verzichten auf Dateierweiterungen und nutzen stattdessen einen Shebang. Dieser Shebang am Anfang einer Datei gibt dem Interpreter an, um welche Art von Skript es sich handelt und wie es ausgeführt werden soll. Er ist besonders wichtig, wenn keine Dateierweiterung verwendet wird, da sich das Skript sonst oft weigert, zu starten.

Es gibt viel über Shebangs zu wissen, aber für Anfänger ist die Standardangabe `#!/bin/bash` meist ausreichend. Sie werden besonders für fortgeschrittene Bash-Benutzer relevant, die komplexe Bash-Tools erstellen.

Erstellung eines Bash-Skripts

Bash-Skripte sind nicht dasselbe wie herkömmliche Programmierung. Sie dienen primär dazu, mehrere Befehle zu verketten und so wiederholende Aufgaben zu automatisieren, ohne sie jedes Mal ins Terminal eingeben zu müssen. Für ernsthafte Programmieraufgaben sollte man jedoch besser eine echte Programmiersprache wie Python verwenden.

Um ein einfaches Bash-Skript zu erstellen, öffnet man zunächst ein Terminal und gibt folgenden Befehl ein:

nano myfirstbashscript

Dies öffnet den Nano-Texteditor. Nun fügt man den Shebang hinzu:

#!/bin/bash

Danach kann man beliebige Befehle einfügen. Beispielsweise kann ein Ubuntu-Benutzer ein Update-Skript erstellen:

sudo apt update;sudo apt upgrade -y

Oder man erstellt ein Skript, das kontinuierlich einen Ping an google.com sendet, um die Netzwerkgeschwindigkeit zu überwachen:

ping google.com

Man kann das Skript nach Belieben erweitern und kreativ werden.

Nachdem das Skript fertiggestellt ist, speichert man es mit STRG + O. Anschließend müssen die Ausführungsrechte angepasst werden:

sudo chmod +x myfirstbashscript

Ausführung von Skripten

Um ein Shell-Skript auszuführen, öffnet man ein Terminal und nutzt:

sudo sh script.sh

Für Bash-Dateien:

sudo bash script.bash

Alternativ kann man ein Skript auch mit `./Dateiname` ausführen, unabhängig von der Dateierweiterung. Diese Methode kann jedoch scheitern, wenn die Ausführungsrechte fehlen. Diese lassen sich wie folgt setzen:

sudo chmod +x script

Skript in eine Binärdatei umwandeln

Um ein Skript durch Eingabe des Dateinamens im Terminal ausführen zu können, muss es zu einer Binärdatei gemacht werden. Dies geschieht durch das Setzen der Ausführungsrechte:

sudo chmod +x

Anschließend wird das Skript in einen Pfad verschoben, der im System bekannt ist, z.B. `/usr/bin/`. Hierzu verwendet man den Befehl `mv`. Alternativ kann man `cp` verwenden, um eine Kopie am ursprünglichen Speicherort zu behalten:

sudo mv /Pfad/zum/Skript /usr/bin/

oder

sudo cp /Pfad/zum/Skript /usr/bin/

Nun kann das Skript durch Eingabe des Namens im Terminal gestartet werden, von überall im System aus. Ein Beispiel wäre ein YouTube-Ripping-Skript namens `youtubescript`, das in `/usr/bin/` abgelegt wurde:

youtubescript

Das ist alles!

Fazit

Bash-Skripting ist ein mächtiges Werkzeug. Ohne diese Fähigkeit würden Systemadministratoren und Terminal-Enthusiasten Stunden mit der manuellen Ausführung von Befehlen verbringen. Mit Bash-Skripten lassen sich jedoch komplexe Abläufe automatisieren. Mit ein wenig Kreativität kann man die Leistungsfähigkeit der Bash voll ausschöpfen.

Die Shell ist eine faszinierende Umgebung, und je mehr man sie kennenlernt, desto besser versteht man das eigene Linux-System. Man lernt nicht nur zu automatisieren, sondern auch die interne Funktionsweise des Systems zu verbessern. Der Fantasie sind mit Bash-Skripten keine Grenzen gesetzt!