Grundlagen: Python im Vergleich zu Bash

PythonBeginner
Jetzt üben

Einführung

Bei der Linux-Automatisierung eignet sich Bash hervorragend, um Befehlszeilenwerkzeuge miteinander zu verbinden. Sobald die Logik jedoch komplexer wird, ist Python oft die bessere Wahl, da es eine klarere Struktur, eine bessere Datenverarbeitung und eine umfangreiche Standardbibliothek bietet.

Deshalb verwenden viele Betriebsteams beide Sprachen: Bash für kurze, Shell-nahe Aufgaben und Python für besser wartbare Automatisierungsskripte.

In diesem Lab machen Sie Ihre ersten Schritte mit Python in einer Linux-Umgebung. Sie lernen, die installierte Python-Version zu prüfen, die interaktive Shell für schnelle Tests zu verwenden und ein Python-Skript zu schreiben, das sich wie ein nativer Linux-Befehl ausführen lässt.

Python-Version prüfen

Bevor Sie Code schreiben, müssen Sie wissen, welche Version des Python-Interpreters auf Ihrem System installiert ist. Die meisten modernen Linux-Distributionen, darunter das von Ihnen verwendete Ubuntu-System, enthalten Python 3 bereits vorinstalliert.

Für den Betrieb ist diese Versionsprüfung auch wegen der Kompatibilität wichtig. Verschiedene Python-Versionen können Sprachfunktionen hinzufügen oder entfernen und das Verhalten von Bibliotheken verändern. Ein Skript, das auf einem Rechner funktioniert, kann auf einem anderen fehlschlagen, wenn Sie stillschweigend davon ausgehen, dass überall derselbe Interpreter verwendet wird.

In diesem Schritt prüfen Sie die installierte Python-3-Version. So stellen Sie sicher, dass die Umgebung für die später erstellten Skripte bereit ist.

Öffnen Sie Ihr Terminal und führen Sie den folgenden Befehl aus, um die Version zu prüfen:

python3 --version

Sie sollten eine ähnliche Ausgabe sehen:

Python 3.10.12

Die genaue Versionsnummer kann leicht abweichen. Solange es sich um Python 3.x handelt, ist die Umgebung geeignet. Beachten Sie, dass wir ausdrücklich python3 verwenden. Auf älteren Systemen kann python ohne die 3 noch auf das veraltete Python 2 verweisen oder überhaupt nicht verknüpft sein.

Die REPL verwenden

Python stellt eine interaktive Shell bereit, die häufig als REPL (Read-Eval-Print Loop) bezeichnet wird. Dieses Werkzeug eignet sich hervorragend, um Codeausschnitte zu testen, die Verfügbarkeit von Bibliotheken zu prüfen oder schnelle Berechnungen durchzuführen, ohne eine Datei erstellen zu müssen.

Die REPL ist nützlich, weil sie die Rückmeldeschleife verkürzt. Statt eine Datei zu bearbeiten, zu speichern und wiederholt auszuführen, können Sie jeweils einen Ausdruck testen. Viele Entwickler verwenden die REPL ähnlich wie eine Shell-Eingabeaufforderung: Sie dient zum Ausprobieren, bevor aus einer Idee ein richtiges Skript wird.

In diesem Schritt starten Sie die interaktive Python-Shell, führen einen einfachen Befehl aus und kehren anschließend zur Bash-Shell zurück.

Starten Sie zunächst die interaktive Python-3-Shell mit folgendem Befehl:

python3

Ihre Eingabeaufforderung ändert sich zu >>>. Daran erkennen Sie, dass Sie sich jetzt in der Python-Umgebung befinden.

Geben Sie nun den folgenden einfachen Python-Befehl ein, um eine Nachricht auszugeben:

print("Hello from Python REPL")

Die Ausgabe erscheint sofort.

Um die Python-Shell zu beenden und zur normalen Linux-Bash-Shell zurückzukehren, geben Sie Folgendes ein:

exit()

Alternativ können Sie Ctrl + D drücken.

Nach dem Beenden sollte wieder Ihre normale Eingabeaufforderung angezeigt werden, zum Beispiel labex:~/project $.

Ein Skript erstellen

Die REPL eignet sich hervorragend zum Testen. Für echte Automatisierungsaufgaben müssen Sie den Code jedoch in Skripten speichern. Ein Python-Skript ist einfach eine Textdatei, die Python-Code enthält.

Der praktische Vorteil eines Skripts gegenüber einem einmaligen Befehl besteht in der Wiederholbarkeit. Sobald sich die Logik in einer Datei befindet, können Sie sie überprüfen, mit Git versionieren, am nächsten Tag erneut ausführen und an einen anderen Entwickler weitergeben, ohne etwas erneut eingeben zu müssen.

In diesem Schritt erstellen Sie eine Datei mit dem Namen system_info.py.

Verwenden Sie den Texteditor nano, um die Datei zu erstellen und zu öffnen:

nano system_info.py

Fügen Sie der Datei den folgenden Inhalt hinzu:

print("Starting system info script...")

So speichern und beenden Sie nano:

Drücken Sie im nano-Editor Ctrl + O, um Ihre Änderungen zu speichern, und anschließend Enter, um den Dateinamen zu bestätigen. Drücken Sie zum Schluss Ctrl + X, um den Editor zu beenden und zum Terminal zurückzukehren.

Prüfen Sie nun, ob die Datei erstellt wurde:

ls -l system_info.py

Die Standardbibliothek verwenden

Eine der größten Stärken von Python ist die umfangreiche Standardbibliothek, die nach dem Prinzip „Batterien inklusive“ funktioniert. Bei Bash müssen Sie häufig die Ausgabe von Befehlen wie uname oder cat /etc/os-release verarbeiten. Python stellt dagegen integrierte Module bereit, mit denen Sie Systeminformationen auf saubere Weise abrufen können.

Das ist ein wichtiger Grund dafür, dass Python häufig für Werkzeuge im Betrieb eingesetzt wird. Statt viele kleine Befehle zur Textverarbeitung miteinander zu verbinden, können Sie direkt mit strukturierten Funktionen und Objekten arbeiten. Dadurch sind Skripte in der Regel leichter zu lesen und weniger anfällig, wenn sich Ausgabeformate ändern.

In diesem Schritt ändern Sie Ihr Skript so, dass es die Bibliothek platform verwendet, um Details zum Betriebssystem auszugeben.

Öffnen Sie Ihr Skript erneut mit nano:

nano system_info.py

Ändern Sie den Inhalt so, dass er wie folgt aussieht:

import platform

print("Starting system info script...")
print(f"System: {platform.system()}")
print(f"Release: {platform.release()}")
print(f"Version: {platform.version()}")

Speichern und beenden Sie nano (Ctrl+O, Enter, Ctrl+X).

Testen Sie Ihr Skript, indem Sie es dem Python-Interpreter ausdrücklich übergeben:

python3 system_info.py

Sie sollten eine Ausgabe mit Details zu Ihrer Linux-Umgebung sehen.

Das Skript ausführen

In den vorherigen Schritten haben Sie das Skript mit python3 system_info.py ausgeführt.

Die ausdrückliche Angabe des Interpreters ist für Einsteiger besonders übersichtlich, weil sie Mehrdeutigkeiten beseitigt. Die Shell muss nicht erraten, wie die Datei ausgeführt werden soll, und Sie sehen genau, welcher Interpreter Ihren Code ausführt.

Bei der normalen Linux-Nutzung sehen Sie manchmal, dass Skripte direkt mit ./system_info.py ausgeführt werden. Dafür sind zwei Voraussetzungen erforderlich:

  1. Eine Shebang-Zeile (die wir ausgelassen haben).
  2. Die Ausführungsberechtigung für die Datei.

Da wir in einer vereinfachten Umgebung ohne Shebangs arbeiten, verwenden wir weiterhin die zuverlässigste Methode: Wir führen das Skript ausdrücklich mit dem Python-Interpreter aus.

Führen Sie Ihr Skript noch einmal aus, um zu bestätigen, dass es weiterhin funktioniert:

python3 system_info.py

Dieser ausdrückliche Befehl teilt Linux genau mit, was geschehen soll: „Verwende das Programm python3, um die Anweisungen in der Datei system_info.py zu lesen und auszuführen.“

Zusammenfassung

In diesem Lab haben Sie erfolgreich die Lücke zwischen Bash und Python überbrückt. Sie haben gelernt:

  • die Python-Version zu prüfen, um die Kompatibilität der Umgebung sicherzustellen;
  • die REPL für interaktive Tests zu verwenden;
  • ein Python-Skript zu erstellen;
  • die Standardbibliothek platform zu verwenden, um Systemdaten abzurufen;
  • das Skript mit dem Befehl python3 auszuführen.

Diese Kenntnisse bilden die Grundlage für Python-Skripte unter Linux. Damit können Sie komplexere und besser lesbare Automatisierungswerkzeuge schreiben, als dies normalerweise allein mit Bash möglich wäre.