Die Shell unter Linux schreckt viele Nutzer aufgrund der komplexen Befehle ab. Dabei hat die Shell eine klasse Eigenschaft: Sie lässt sich mit Shellscript auch programmieren und das relativ einfach und so lassen sich u.a. oft benutzte Arbeitsabläufe durch die Eingabe eines einzelnen Kommandos vereinfachen.
Ein Shellscript besteht dabei lediglich aus einer einfachen Textdatei, in der die auszuführenden Kommandos aufgeführt sind. Man kann diese Textdatei so einrichten, dass sie wie ein eigenes Programm reagiert und die darin enthaltenen Kommandos nacheinander abarbeitet.
Wie man – als blutiger Anfänger – sein eigenes erstes Shell Script schreibt zeigen wir in dieser Anleitung, die auf allen gängigen Linux-Systemen wie Debian, Ubuntu, Kali etc. funktioniert.
Vorbereitung des Linux-Systems
Bevor man sein erstes Shellscript erstellen kann, macht es Sinn einige Einstellungen im Linux-Betriebssystem zu überprüfen.
Idealerweise speichert man seine eigenen Shell Skripte im Pfad /usr/local/bin ab, um sie universell systemweit verfügbar zu machen.
Bei den meisten Linux Distributionen existiert der Pfad bereits – gelegentlich kommt es vor, dass das bin-Verzeichnis noch angelegt werden muss (z.B. unter Kali Linux).
Um das rauszufinden wechselt man als erstes in /usr/local mit folgendem Befehl:
cd /usr/local
und lässt sich dort mit
ls
den Inhalt des Verzeichnisses anzeigen.
Sofern kein bin-Ordner enthalten ist, legt man ihn mit folgendem Befehl an:
sudo mkdir bin
Nun muss man noch prüfen, ob der Ordner auch als Pfad angelegt ist, aus dem heraus man das Shellscript universell ausführen kann:
echo $PATH
Die Ausgabe auf den Befehl sollte ungefähr so aussehen:
/usr/local/sbin:/usr/local/bin:/usr/bin:/sbin:/bin
Wichtig ist dabei, dass der Pfad /usr/local/bin enthalten ist.
Erstellen des eigenen Shellscripts
Zuerst wechseln wir in das Verzeichnis /usr/local/bin:
cd /usr/local/bin
Und dann erstellen wir mit folgendem Befehl ein Shellscript mit dem Namen „aktualisieren“ in diesem Verzeichnis mit Hilfe des nano-Editors:
sudo nano aktualisieren
Hinweis: Es ist gängige Praxis, dass man Shellscripts die Dateiendung .sh spendiert, um sie als solche kenntlich zu machen – wir verzichten in diesem Fall darauf, um das Shellscript möglichst wie einen eigenen Befehl verwenden zu können.
Nachdem sich der Nano-Editor geöffnet hat, wird in der ersten Zeile definiert mit welchem Kommandointerpreter, d.h. mit welcher Shell das Script ausgewertet werden soll (Shebang).
#!/bin/bash
Mit dem „aktualisieren“-Skript wollen wir erreichen, dass das Linux-Betriebssystem aktualisiert wird. Darum ergänzen wir in der nächsten Zeile einen kurzen Hinweis (beliebiger Text) mit
echo Betriebssystem wird aktualisiert!
Und in der übernächsten Zeile tragen wir die für die Aktualisierung erforderlichen apt-Befehle ein:
apt-get update && apt-get -y upgrade && apt-get -y autoremove && reboot
Mit CTRL+X lässt sich das Shell Script nun speichern.
Zurück auf der Kommandozeile muss man noch die Dateirechte des Shell Scripts ändern, um es wie einen eigenen Befehl ausführbar zu machen:
sudo chmod +x aktualisieren
Damit ist das Shell Script fertig und man kann es nun nun von überall aus dem Terminal heraus mit folgendem aufrufen:
sudo aktualisieren
Will man das Ganze nicht nacheinander eingeben, kann man das „aktualisieren“-Script auch in einer einzigen Commandline eingebn:
sudo echo -e '#!/bin/bash\n\necho Betriebssystem wird aktualisiert!\n\napt-get update && apt-get -y upgrade && apt-get -y autoremove && reboot' | sudo tee /usr/local/bin/aktualisieren > /dev/null && sudo chmod +x /usr/local/bin/aktualisieren
Last but not least hat man natürlich auch die Möglichkeit den Aktualisierungsbefehl remote über SSH auszuführen – also z.B. vom Mac aus auf dem Linux-Rechner auf dem das Script dann laufen soll. Alles was man hierfür braucht ist ein SSH Zugang:
ssh username@remote_ip_address "echo '#!/bin/bash\n\necho Betriebssystem wird aktualisiert!\n\napt-get update && apt-get -y upgrade && apt-get -y autoremove && reboot' | sudo tee /usr/local/bin/aktualisieren > /dev/null && sudo chmod +x /usr/local/bin/aktualisieren"
Wichtig: Wenn das Script so aufgerufen wird, werden alle Befehle abgearbeitet und am Ende durch den Befehl „reboot“ der Rechner neu gestartet.
Damit ist das erste Shell Script im Linux Terminal erfolgreich angelegt!