Wer die Discworld-Romane von Sir Terry Pratchett kennt, der kennt auch The Great A’Tuin, die Schildkröte, die die Scheibenwelt durchs All trägt. Die Entwicklerin des Tools, das ich heute vorstelle, hat also vermutlich ein Faible für Pratchetts fiktive Welt. Ich freue mich zusätzlich ganz real über dieses Tool, mit dem das Wiederfinden von früher eingegebenen Befehlen auf der Kommandozeile stark erleichtert und erweitert wird.
Wie war nochmal der Befehl?
Diese Frage stellt sich bestimmt jeder Nutzer der Kommandozeile das ein oder andere Mal. Besonders längere Befehle sind kaum dem Gedächtnis zu entlocken. Unix-Shells verfügen seit jeher über Funktionen, um dabei behilflich zu sein. So enthüllt die nach oben zeigende Pfeiltaste die letzten eingegebenen Kommandos. Was aber, wenn der Befehl länger zurückliegt?
Da kommt die History-Funktion ins Spiel, die ihrerseits vielfach erweitert wurde. Ein Beispiel sei das hier bereits vorgestellte Tool mcfly. Das Programm klinkt sich beim Drücken von STRG+r ein und ersetzt dadurch das bisherige Such-Interface der Shell. Einen etwas umfassenderen Ansatz verfolgt Atuin, indem es den bestehenden Shell-Verlauf durch eine SQLite-Datenbank ersetzt, den bisherigen Verlauf importieren kann und die Suchmöglichkeiten erweitert.
History über mehrere Rechner hinweg
Zudem bietet das in Rust geschriebene Tool die Möglichkeit, die Verläufe mehrerer Rechner Ende-zu-Ende verschlüsselt über einen Server des Atuin-Projekts oder selbst gehostet zu synchronisieren. Atuin wird auf GitHub gehostet. Pakete stehen bisher lediglich für Alpine, Arch und Manjaro in deren Archiven bereit, auf GitHub ist neben dem Quellcode und einem Tar-Archiv auch ein Debian-Paket verfügbar. Für die Installation auf einem Server stehen ein Dockerfile sowie alternativ eine YAML-Datei für Docker-Compose zur Verfügung. Als Shells werden Bash, Fish und ZSH unterstützt.
Ein kurzes Beispiel einer Abfrage soll die Möglichkeiten von Atuin verdeutlichen. Gesucht werden alle Befehle, die mit sudo beginnen und die nach dem 1. Juli 2022 eingegeben und erfolgreich ausgeführt wurden:
atuin search --exit 0 --after 01/07/2022 sudo
Die Dokumentation erläutert weitere der vielen Abfragemöglichkeiten, zudem gibt es Unterstützung auf Discord. Ich habe Atuin kürzlich in einem ausführlichen Artikel im LinuxUser vorgestellt.
Bildquelle: Atuin

GNU Terry Pratchett.
Also ich bin von der Idee begeistert. Zentrale History von X Maschinen.
Nur bin ich für die simpelste Konfiguration schon zu blöd xD
Rein local kommt unter “STRG+R” die klassische Suche und nicht atuin. eval ist drin und gibt auch keine Fehler aus. 😀 meh!
Dann lies mal den Artikel aus dem LinuxUser, der geht Schritt für Schritt vor.
Guter Hinweis. Ich glaube dann habe ich nur was falsch verstanden.
atuin search -i
Hat bei mir die schöne GUI mit allen Inhalten durchaus ausgegeben.
STRG+R jedoch nicht, aber vielleicht ist es gewollt und im Hintergrund kommt der Inhalt von atuin?
STRG+R sieht mit Atuin anders aus als ohne, und der interaktive Modus nochmals anders.
jop, dann keine Ahnung. Liegt wohl an ZSH.
Ich schaue mir das nochmal in einer nackten Umgebung an. ^^
Danke dir aber für deinen Rat 🙂
Achja, habe den Auslöser gefunden. Die eval umgebung muss am Besten ans Ende der .zshrc.
Es kollidieren bei ZSH sonst gerne Plugins die atuin wieder überschreiben könnten.
Nur als Info, vllt interessant.
Freut mich, dass du es gelöst hast.
Interessant was es für Programme gibt. Ich speichere automatisiert im Rahmen vom Backup alle bash/zsh histories auf dem Nas und grebbe ggf. in den Dateien.
Aber das durch eine SQlite DB zu ersetzen ist schon etwas overkill… Wenn es natürlich Sachen beschleunigt. Bei 100 viel bedienten Maschinen ist es vermutlich auch angemessen.