Liebesbriefe ans Terminal: Warum ich wieder in der Eingabeaufforderung lebe
Ich habe GUI-Tools geliebt, bis sie mich anfingen zu bremsen. Ein Liebesbrief an den Text, die Pipe und die Dinge, die nur eine Eingabeaufforderung für dich tun kann — mit fünf konkreten Workflows zum Ausprobieren.
Eine Einführung in Textform
Das hier ist ein Liebesbrief. Kein Tutorial. Keine Benchmark-Tabelle. Ein Brief an ein Stück Software, das vor fast sechzig Jahren erfunden wurde und mich heute noch glücklich macht.
Ich spreche über das Terminal. Und ich schreibe darüber, warum ich nach Jahren des GUI-Exils zurückgekehrt bin — mit Argumenten, die man nachbauen kann.
Wenn du nur einen Satz mitnimmst: Das Terminal ist keine alte Technologie, sondern eine Interface-Architektur, die das Wegwerfen von Zwischenzuständen perfektioniert hat.
Warum ich abgehauen war
Rückblick: Meine ersten Jahre als Entwickler verbrachte ich in IDEs. Sie waren großzügig — Autovervollständigung, Debugger mit Pfeilen, Git-Graphen, die aussahen wie Netzpläne.
Das Problem war nicht die Menge an Funktionen. Das Problem war, dass die Funktionen meine Aufmerksamkeit waren. Jeder Klick war ein Kontextwechsel. Jedes Popup ein Versprechen, das die App mir dann mit einem weiteren Popup erklärte.
Dann kam der Punkt, an dem ich einen Build-Workflow aus zwölf Schritten hatte, und die GUI einen davon nicht konnte. Also klickte ich, kopierte, wechselte das Fenster, fügte ein, drückte Enter. Zwölf Klicks für einen Vorgang, den ich als Text in einem Atemzug aufschreiben konnte.
Das war der Moment des Zweifels. Und der Zweifel wurde zur Rückkehr.
Die These: Text ist ein Datenformat, Klicks sind Ereignisse
Der Unterschied ist grundlegend. Eine GUI lädt dich ein, Zustände zu verändern. Eine Textoberfläche lädt dich ein, Abläufe zu beschreiben.
- Ein Klick ist flüchtig. Er existiert genau eine Millisekunde und ist danach unwiderruflich weg.
- Ein Kommando ist wiederverwendbar. Es existiert als Zeichen, kann editiert, gespeichert, in eine Pipe gesteckt und als Historie wiederholt werden.
Deshalb kann man über ein Terminal denken, während man in einer GUI nur klickt. Das Terminal ist näher am Denken als an der Zeigergeste.
Und daraus folgt die eigentliche Superkraft:
Das Terminal ist die einzige Oberfläche, in der die Zwischenergebnisse einer Aufgabe keine Personen sind, sondern Daten.
Ich meine: Wenn ich eine Datei in einer GUI umbenenne, gibt es einen Dialog. Wenn ich zehn Dateien umbenenne, zehn Dialoge. Wenn ich tausend umbenenne — ein Skript. Das Terminal hat keine Dialoge. Es hat Pipes. Und Pipes sind einfach Daten, die von einem Programm zum nächsten fließen.
Fünf Workflows, die mich zurückgeholt haben
Hier ist der Teil zum Nachbauen. Keine Theorie mehr, nur Handwerk.
1. Die Historie als Wissensbasis
grep -r "migration" ~/.zsh_history | tail -20
Das ist eine Datenbank deiner eigenen Lösungen. Jedes Kommando, das du je ausgeführt hast, ist eine dokumentierte Entscheidung. Ich habe mehr Lösungen aus meiner Shell-Historie gezogen als aus jedem Stack-Overflow-Tab.
2. Die Pipe als Mini-Programmiersprache
curl -s https://api.example.com/items |
jq '.[] | select(.status == "open")' |
wc -l
Drei Programme, ein Ablauf, null Klicks. In einer GUI wäre das ein Custom-Report gewesen — hier ist es ein Einzeiler, den ich in ein Skript verwandeln kann, sobald er sich zweimal wiederholt.
3. FZF als Navigationssystem
fzf --preview 'bat --style=numbers --color=always {}'
Dateisystem als Text durchsuchbar — nicht als Baum, sondern als Antwort auf die Frage "wie hieß nochmal die Datei mit dem Endpoint?". Fuzzy-Matching über den gesamten Dateibaum ist die erste Suche, die schneller ist als mein Gedächtnis.
4. Der Terminal-Emulator als App-Switcher
Ich lebe in tmux. Nicht wegen der Fenster, sondern wegen der Zustandserhaltung. Server laufen weiter, wenn ich das Laptop zuklappe. Eine Session, die morgen noch da ist, ist die nachhaltigste Form von "nichts vergessen".
5. Git als Text-Geschichte
git log --oneline --graph --decorate --all
Meine Lieblingsansicht in jeder GUI, und die Wahrheit ist: Sie ist ein Text. Eine chronologische, verzweigte Erzählung, die ich filtern, durchsuchen und in jeder Terminal-Ansicht gleich wiedergeben kann.
Was mir fehlt — und was ich vermisst habe
Ehrlichkeit gehört in einen Liebesbrief.
Das Terminal ist schlecht in: visuelles Scannen, grobe Entdeckung ohne Ziel, alles, was eine Karte braucht. Wenn ich nicht weiß, was ich suche, hilft mir ein Textstrom weniger als eine Galerie.
Aber hier ist der Punkt, den die GUI-Leute übersehen: Die meisten Arbeitstage bestehen aus genau definierten Aufgaben. Und für genau definierte Aufgaben ist ein Terminal überlegen, weil es die Definition als Text speichern kann.
Die GUI ist großartig für die ersten zehn Prozent eines Projekts — die Entdeckung. Das Terminal ist großartig für die anderen neunzig — die Wiederholung. Wer nur eine der beiden benutzt, arbeitet mit halber Geschwindigkeit.
Ein Plädoyer für die eigene Eingabeaufforderung
Dieser Blog ist ein Terminal. Genauer: Er hat einen Easter-Egg-Bereich, in dem man sich durch eine Parodie-Dateisystemstruktur bewegen, Spiele starten und Kommandos erkunden kann. Kein Zufall. Ich wollte eine Hommage an den Ort bauen, an dem ich am liebsten arbeite.
Denn hier ist die Wahrheit hinter diesem Brief: Das Terminal ist kein Tool. Es ist eine Beziehung. Man gibt ihm Anweisungen und es antwortet — roh, direkt, ohne Vermittlung. Es schmeichelt nicht. Es fragt nicht nach Bestätigung, wenn man es richtig macht. Es antwortet einfach, und wenn es das tut, ist das die ehrlichste Rückmeldung, die Software geben kann.
Ich klicke immer noch. Aber ich lebe im Text. Und ich rate dir: Leg dir ein paar Kommandos zurecht, die du liebst, und fang an, sie dir zu merken. Irgendwann merkst du, dass dein Werkzeug nicht mehr ein Fenster ist, sondern eine Sprache, die du sprichst.