Die kurze Antwort: Ja. Und zwar deutlich. Dabei gibt es jede Menge alte Gewohnheiten über Bord zu werfen. Meine Lösung besteht aus einem radikalen Schnitt. Zurück zu einer minimalen .zshrc und Starship als Prompt. Das ist ein in Rust geschriebener, extrem flotter Prompt. Er liefert mir Kontext zum Git-Status, Ausführungszeiten oder aktiven Environments (wie uv), ohne dass das Terminal beim Rendern blockiert.

Auf die ganzen Aliases für Git, die mir Oh-my-Zsh (OMZ) installiert hat, wollte ich indes nicht verzichten. Aber die kann ich mir auch separat holen:

ZSH
source .oh-my-zsh/plugins/git/git.plugin.zsh
Klicken Sie zum Erweitern und mehr anzeigen

Das sudo-Plugin von OMZ ist schnell nachgebaut:

ZSH
sudo-command-line() {
    [[ -z $BUFFER ]] && zle up-history
    [[ $BUFFER != sudo\ * ]] && LBUFFER="sudo $LBUFFER"
}
zle -N sudo-command-line
bindkey '\e\e' sudo-command-line
Klicken Sie zum Erweitern und mehr anzeigen

Mit einem zweimaligen Druck auf ESC wird die letzte Befehlszeile wiederholt und sudo vorangestellt.

Shell Agenten

Ein weiterer Skriptverhau, den ich mir über die Jahre eingebrockt hatte, betraf den SSH-Agenten. Früher musste ich nach jedem Login manuell einen Alias sshagent aufrufen, um den Agenten zu starten und meine Session zu entsperren. Glücklicherweise ist das heutzutage nicht mehr nötig.

Der moderne Weg überlässt das Management einfach systemd und der nativen SSH-Konfiguration. Das Setup ist in drei kurzen Schritten erledigt:

Socket starten

BASH
systemctl --user enable --now ssh-agent.socket
Klicken Sie zum Erweitern und mehr anzeigen

Socket verbinden

Damit die Konsole und alle Tools (wie Git) wissen, wo sie anklopfen müssen, reicht eine einzige Zeile in der neuen, aufgeräumten .zshrc:

BASH
export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/ssh-agent.socket"
Klicken Sie zum Erweitern und mehr anzeigen

Schlüssel beim ersten Benutzen automatisch laden

Der eleganteste Teil passiert in der ~/.ssh/config. Anstatt Skripte zu schreiben, die beim Terminal-Start nach Passwörtern fragen, lassen wir den SSH-Client die Arbeit machen:

TEXT
Host *
    AddKeysToAgent yes
Klicken Sie zum Erweitern und mehr anzeigen

Baust du das erste Mal in deiner Session eine SSH-Verbindung auf (z. B. ein git pull), fragt dich das System genau einmal nach deinem Key-Passwort. Danach liegt der entschlüsselte Key im Agenten und ist für alle weiteren Terminals transparent nutzbar.

Kleine Helfer

Um die alte Funktionalität noch aufzuwerten, nutze ich drei moderne Helfer. Sie sind ressourcenschonend, kommen meist als kompakte Binaries (oft in Go oder Rust geschrieben) daher und klinken sich nahtlos in die reine Zsh ein:

BASH
# .envrc 
PATH_add $HOME/go/bin
export API_KEY=I5a/LU7CJeaPF1SD12Hl75nyMhnX2QuU
Klicken Sie zum Erweitern und mehr anzeigen

Fazit

Mit diesem Setup, das ich auch auf Github nochmal zusammengestellt habe, bin ich jetzt mit deutlich weniger Dateien deutliche schneller auf der Shell unterwegs.

Kommentare

Suche starten

Geben Sie Schlüsselwörter ein, um Artikel zu suchen

↑↓
ESC
⌘K Tastenkürzel