Linux-Workshop

Shell Scripting - Abläufe automatisieren

Unter Linux lassen sich mit Scripts stets wiederkehrende Aufgaben erleichtern und automatisieren. In unserer Artikelserie über das Shell Scripting beginnen wir mit der grundlegenden Bedienung und den Möglichkeiten der Linux-Shells "Bourne" und dessen Nachfolger "Bash".

Das Betriebssystem Linux zeigt seine Stärken für den Anwender auf der so genannten Kommandozeile. Natürlich sind mittlerweile grafische Oberflächen (Graphical User Interfaces GUI) weit verbreitet und haben auch ihre Daseinsberechtigung. Viele einfache Aufgaben sind damit auch problemlos per Maus zu erledigen. Stehen aber automatisierte und komplexere Abläufe an, so bietet es sich geradezu an, die Shell als Kommandointerpreter einzusetzen.

Besonders für System-Administratoren stellt das Shell Scripting schnell eine Arbeitserleichterung dar. So lässt sich beispielsweise einfach überprüfen, wo Dateien generiert oder geändert wurden. Prozesse können per Kommando angehalten werden, um sie später bei weniger Last auf dem System weiter auszuführen.

In insgesamt drei Artikeln des Shell Scriptings beschäftigen wir uns mit alltäglichen Machenschaften des Systemadministrators in Interaktion mit der Bourne-Shell ("sh") und dessen Nachfolger Bourne-Again-Shell ("bash"). In diesem Artikel beginnen wir mit der grundlegenden Funktionalität der Shell.

Artikelserie Shell-Scripting unter Linux

Teil 1: Shell Scripting - Abläufe automatisieren

Teil 2: Shell Scripting im Admin-Alltag

Teil 3: Shell Scripting - Tipps und Tricks für Admins

Grundlegenden Systemstatus abrufen

CTRL-X und CTRL-V präsentieren die Version und ein "echo $SHELL" den Pfad der Shell. Der Standard-Prompt wird über die Variable "PS1", die weiteren über "PS2" und "PS3" gesetzt. Ein "echo $USER $UID $EUID" zeigt uns den Usernamen und die (effektive) User-ID (UID) unter der wir angemeldet sind.

Mit "uname -a" ermitteln wir die Kernel-Version und die Architektur. Ist das /proc Dateisystem gemounted, so lassen sich mit "cat /proc/cpuinfo" Daten über die vorhandenen Prozessoren anzeigen. Welche letzten 10 Benutzer auf einem Multiuser-System angemeldet waren, zeigt uns "last -10" und die 3 letzten System-Reboots mit "last -3 reboot".

Traditionell steht der Runlevel S für Single-, 3 für Multiuser und 5 für Start des Grafiksystems. Diese Definition lockert sich je nach Distribution. "who -r" zeigt uns den aktuellen Runlevel und "uptime" die Zeit, seit dem das System "up", also eingeschaltet ist.

Der Befehle "mount", "df -h", und "du -sh" listet die aktiven Dateisysteme inklusive Type, Dimensionen und freien Platz in einer verständlichen Form ("-h") auf.

Ob unsere Shell eine interactive Shell ist, zeigt uns das Flag "i" in der Variablen "$-", nämlich "echo $- | grep -q i && echo interactive".