Linux mit ChatGPT - Komplexe Bash Befehle einfach generieren

Was passiert wenn man das Linux Terminal mit ChatGPT paart? Wie liste ich alle Dateien in einem Ordner auf, die mit f beginnen und kleiner als 100kb sind, damit ich sie in einen Testordner kopieren kann? Ich möchte, dass alle Dateinamen mit einem großen Anfangsbuchstaben beginnen statt mit einem kleinen, welchen Befehl brauche ich dazu? Das kann ganz schön kompliziert werden, oder? Genau mit dieser Frage beschäftigen wir uns heute und wie wir von KI in der Linux Administration profitieren können.

Shell Genie ist ein neues Kommandozeilentool, mit dem man verschiedene Aufgaben mit einer einfachen Frage erledigen kann und das den benötigten Shell-Befehl ausgibt. Um die Befehle zu generieren, verwendet es OpenAIs GPT-3.5 oder Free Genie, eine kostenlose GPT-Variante, die vom Shell Genie-Entwickler zur Verfügung gestellt wird.

Linux Terminal + ChatGPT = Super Administrator
Dieses Video auf YouTube ansehen.
Mit dem abspielen des Videos stimmst du den Datenschutzrichtlinien (siehe Datenschutz) von Youtube zu.

Nachdem du Shell Genie eine Frage gestellt hast, gibt das Programm einen Befehl zurück und fragt dich, ob du ihn ausführen möchtest. Vergewissere dich, dass du den Befehl verstanden hast, bevor du ihn ausführst! Du kannst auch so etwas wie Explain Shell benutzen, um zu verstehen, was der Befehl macht. Nicht alle Befehle funktionieren so, wie du es erwartest, also benutze sie auf eigene Gefahr!

Ich habe Shell Genie jetzt ein paar Tage benutzt und die angezeigten Befehle waren in den meisten Fällen genau richtig. Wenn das nicht der Fall war, lag es meistens an einem Verständnisproblem. Verlasse dich nicht darauf, dass die KI versteht, was du willst, sondern erkläre ihr, was der Befehl macht! Und vergiss nicht, dass du einer Maschine mitteilst, was du tun willst, nicht einem Menschen. In meinen Tests und Übungen habe ich immer das Free Genie Backend verwendet, da die OpenAI-GPT3.5 von shell-genie während meiner Tests nicht verfügbar war aufgrund des fehlenden API-Schlüssels.

Um das Modell zu verbessern, speichert der Free Genie Server die angeforderten Befehle, das Betriebssystem und die Shell-Version. Darüber hinaus ist die Verfügbarkeit des Servers rund um die Uhr (24/7) nicht garantiert.

Für die Nutzung von Shell Genie mit OpenAI GPT-3.5 ist ein API-Schlüssel erforderlich, der derzeit ca. 20 € pro Monat kostet, nicht jedoch für die Nutzung des Free Genie Servers.

Verwendung von ChatGPT im Linux-Terminal

Werfen wir nun einen Blick auf das Shell Genie in der Praxis

Installation

Die empfohlene Installationsmethode für Shell Genie ist über pipx:

  • Installiere pipx.
    • apt install pipx
  • Installiere Shell Genie
    • pipx install shell-genie

Alternativ kann das Programm auch mit Hilfe von pip installiert werden:

  • Installiere Python 3.10 oder höher
  • Erstelle eine virtuelle Umgebung in deinem bevorzugten Verzeichnis
    • python -m venv .venv
  • Aktiviere die virtuelle Umgebung
    • source .venv/bin/activate
  • Installiere Shell Genie
    • pip install shell-genie

Shell genie wird im Verzeichnis ~/.local/bin/ installiert. Dieses Verzeichnis muss auch in der Umgebung eingetragen werden, damit es direkt aufgerufen werden kann. Pipx gibt dir wahrscheinlich schon die Information, dies automatisch mit dem einfachen Befehl pipx ensurepath zu tun.

Danach ist shell-genie einsatzbereit und wir müssen noch das Sprachmodell auswählen, entweder GPT 3.5 oder Free Genie. Dazu rufen wir einfach den Befehl shell-genie init auf und geben das gewünschte Modell ein, z.B. free-genie oder, wenn wir eine API für GPT3.5 haben, openai-gpt-3.5-turbo.

Initialisieren von ChatGPT im Linux-Terminal

Für meine ersten Aufgaben mit Shell Genie habe ich einen Testordner in meinem Home/Root-Verzeichnis angelegt und dann die ersten Fragen gestellt:

mkdir /root/test

shell-genie ask "finde alle dateien die mit f anfangen in /usr Ordner"
Command: find /usr -type f -name 'f*'

shell-genie ask "finde alle dateien die mit f anfangen in /usr Ordner und kleiner sind als 100kb"
Command: find /usr -type f -name "f*" -size -100k

shell-genie ask "finde alle dateien die mit f anfangen in /usr Ordner und kleiner sind als 100kb , kopiere alle diese gefundenen dateien dann in /root/test"
Command: find /usr -type f -name "f*" -size -100k -exec cp {} /root/test \;

Versuchen wir etwas Komplizierteres und ändern den ersten Buchstaben jeder Datei in diesem Ordner von Klein- in Großbuchstaben. Ich denke, das ist sehr komplex und es würde mich einige Zeit kosten, das richtig zu machen. Können wir das in weniger als 1 Minute mit Shell Genie machen?

shell-genie ask "ersetze den ersten buchstaben jeder datei von kleinschreibung auf großschreibung in /root/test"

Command: find /root/test -type f -exec sh -c 'mv "$1" "$(dirname "$1")/$(basename "$1" | sed "s/^\(.\)/\U\1/")"' _ {} \;

Ich muss zugeben, dass ich die Frage mehrmals ausprobiert habe, insgesamt habe ich die Satzstellung viermal geändert, bis ich das gewünschte Ergebnis hatte. Am Anfang wollte Shell Genie immer Ordner statt Dateien umbenennen, aber als ich das geklärt hatte, hat es mit einer neuen Formulierung nach kurzer Zeit geklappt. Es ist also wichtig, ungefähr zu wissen, was die Befehle machen und sie gegebenenfalls vorher auszuprobieren.

Oft reicht es schon, einzelne Wörter auszutauschen, um andere Ergebnisse zu erhalten. Einfach ausprobieren. So habe ich Shell Genie gebeten, mir alle Daten von der Festplatte zu löschen und hier habe ich mit rm -rf eine einfache Antwort erhalten. Dann habe ich nach einer sicheren Methode zum Löschen gefragt und hier hat Shell Genie das Tool shred verwendet, das den Speicherbereich während des Löschens überschreibt, um eine Wiederherstellung zu verhindern. Die Ausgabe habe ich hier absichtlich nicht angegeben, da sie zu Datenverlust führen kann.

Fazit

Alles in allem finde ich, dass Shell Genie eine große Bereicherung für die Systemadministration ist. Die Möglichkeit, damit ins Jahr 2023 zu kommen und mit künstlicher Intelligenz im Terminal zu arbeiten, ist erfreulich. Ich bin mir sicher, dass solche tollen Dinge unsere Arbeit als Linux-Administrator in Zukunft noch viel einfacher machen werden. Trotzdem sollte man die Befehle verstehen und vorher in einer sicheren Umgebung testen, wenn man sich sicher ist. Denn auch die KI gibt nicht immer die richtigen Antworten. Letztendlich sollte man aber froh sein, hier neue Möglichkeiten für die Arbeit am Linux-Terminal gefunden zu haben, die einem viel Zeit ersparen können.

Quelle & Links

Shell Genie

ExplainShell

OpenAI API

DER NEWSLETTER FÜR IT-BEGEISTERTE

Trag dich ein für den Newsletter und bleib auf dem Laufenden über alle neuesten Aktionen und IT-News!

Wir senden keinen Spam! Erfahre mehr in unserer Datenschutzerklärung.