
Als Linux-Nutzer kennst du das sicher: Du weißt, dass es einen Befehl für deine Aufgabe gibt, aber die genauen Parameter fallen dir partout nicht ein? Oder bei komplexen ffmpeg- oder kubectl-Kommandos musst du erst mal den Browser aufmachen und nach der Syntax suchen?
Heute stelle ich dir ein Tool vor, das genau dieses Problem ein für alle Mal löst – navi, ein interaktives CLI-Cheatsheet-Tool.
Was ist navi?
navi ist ein interaktives Cheatsheet-Tool, geschrieben in Rust. Es erlaubt dir, Befehlsbeispiele direkt im Terminal zu durchsuchen und auszuführen – ohne deine aktuelle Arbeitsumgebung zu verlassen.
Kernfeatures
- 🚀 Interaktive Suche: Fuzzy Search für schnelles Finden des gesuchten Befehls
- 📝 Variablen-Ersetzung: Parameter in Befehlen können dynamisch eingegeben werden, manuelles Editieren entfällt
- 🎨 Hochgradig anpassbar: Farben, Schriftarten und Layout lassen sich individuell konfigurieren
- 📦 Community-getrieben: Eingebaute Cheatsheets für gängige Tools, plus Import von Community-Ressourcen
- 🔌 Shell-Integration: Unterstützung für Bash, Zsh, Fish und weitere Shells
Warum navi statt tldr?
Du hast vielleicht schon von tldr gehört – ebenfalls ein beliebtes CLI-Cheatsheet-Tool. Aber was macht navi besser?
| Feature | tldr | navi |
|---|---|---|
| Interaktion | Statische Anzeige | Interaktive Auswahl |
| Variablen-Ersetzung | ❌ Nicht unterstützt | ✅ Dynamische Eingabe |
| Eigene Cheatsheets | Eingeschränkt | Vollständig anpassbar |
| Befehlsausführung | Manuelles Kopieren/Einfügen | Direkt ausführbar |
| Sucherfahrung | Basis | Fuzzy Search |
Kurz gesagt: tldr ist zum schnellen Nachschauen der Syntax, navi ist zum tatsächlichen Ausführen von Befehlen.
navi installieren
Methode 1: Über den Paketmanager (empfohlen)
Fedora/RHEL/CentOS:
sudo dnf install navi
Ubuntu/Debian (zuerst Repo hinzufügen):
sudo add-apt-repository universe
sudo apt update
sudo apt install navi
Arch Linux:
sudo pacman -S navi
macOS (Homebrew):
brew install navi
Methode 2: Über Cargo (Rust-Paketmanager)
Wenn Rust bereits installiert ist:
cargo install navi
Methode 3: Binärdatei herunterladen
Lade die vorkompilierte Binärdatei von GitHub Releases herunter:
# Aktuelle Version herunterladen (Beispiel: v2.23.0)
wget https://github.com/denisidoro/navi/releases/download/v2.23.0/navi-v2.23.0-x86_64-unknown-linux-musl.tar.gz
# Entpacken
tar -xzf navi-v2.23.0-x86_64-unknown-linux-musl.tar.gz
# Ins Systemverzeichnis verschieben
sudo mv navi /usr/local/bin/
Shell-Integration einrichten
Nach der Installation muss der Integrationscode in die Shell-Konfigurationsdatei eingetragen werden.
Bash
Bearbeite ~/.bashrc und füge hinzu:
eval "$(navi widget bash)"
Zsh
Bearbeite ~/.zshrc und füge hinzu:
eval "$(navi widget zsh)"
Fish
Bearbeite ~/.config/fish/config.fish und füge hinzu:
navi widget fish | source
Danach die Shell-Konfiguration neu laden:
source ~/.bashrc # bzw. ~/.zshrc
Grundlegende Bedienung
1. Befehle suchen
Der einfachste Weg ist die direkte Suche:
navi
Das öffnet eine interaktive Oberfläche, in der du nach Keywords suchen kannst. Gib zum Beispiel git ein und alle Git-Bezogenen Cheatsheets werden angezeigt.
2. Widget nutzen (empfohlen)
Nach der Shell-Integration kannst du navi per Tastenkombination aufrufen:
- Bash/Zsh:
Ctrl + G - Fish:
Ctrl + G
Nach Drücken der Tastenkombination erscheint die Suchoberfläche. Wählst du einen Befehl aus, wird er direkt in die Kommandozeile übernommen.
3. Cheatsheets für bestimmte Tools anzeigen
navi --query git
navi --query docker
navi --query kubectl
4. Befehle ausführen
In der navi-Oberfläche hast du folgende Optionen nach der Befehlsauswahl:
Enter: Befehl in die Shell übernehmenCtrl + Y: Befehl sofort ausführenEsc: Abbrechen
Eigene Cheatsheets erstellen
navis große Stärke ist die vollständige Anpassbarkeit durch eigene Cheatsheets.
Persönliches Cheatsheet anlegen
Erstelle eine .cheat-Datei im ~/.config/navi/-Verzeichnis:
mkdir -p ~/.config/navi
vim ~/.config/navi/my_tools.cheat
Cheatsheet-Format
# Titel
% Häufig genutzte Git-Befehle
# Befehlsbeschreibung
$ Aktueller Branch-Status anzeigen
git status
# Befehl mit Variablen
$ Zu einem bestimmten Branch wechseln
git checkout <branch>
# Variable mit Kommentar
$ Neuen Branch erstellen und wechseln
git checkout -b <branch>
%% branch: Name des neuen Branches
# Mehrere Variablen
$ Code committen
git commit -m "<message>"
%% message: Commit-Nachricht
# Variable mit Standardwert
$ Branch pushen
git push <remote> <branch>
%% remote: Standardwert origin
%% branch: Aktueller Branch-Name
Variablentypen
navi unterstützt verschiedene Variablentypen:
# Texteingabe
%% name: Bitte Namen eingeben
# Mit Standardwert
%% port: Standardwert 8080
# Auswahlliste
%% method: Standardwert GET, Optionen GET POST PUT DELETE
# Befehlsausgabe als Option
%% branch: Befehl git branch --format='%(refname:short)', in Backticks
Praxisbeispiel: Docker-Cheatsheet
% Häufige Docker-Operationen
$ Laufende Container anzeigen
docker ps
$ Alle Container anzeigen (auch gestoppte)
docker ps -a
$ Container starten
docker start <container>
%% container: Befehl docker ps -a --format '{{.Names}}'
$ Container stoppen
docker stop <container>
%% container: Befehl docker ps --format '{{.Names}}'
$ Container löschen
docker rm <container>
%% container: Befehl docker ps -a --format '{{.Names}}'
$ Container-Logs anzeigen
docker logs -f <container>
%% container: Befehl docker ps --format '{{.Names}}'
$ In den Container wechseln
docker exec -it <container> <shell>
%% container: Befehl docker ps --format '{{.Names}}'
%% shell: Standardwert /bin/bash, Optionen /bin/bash /bin/sh
Community-Cheatsheets importieren
Die navi-Community pflegt eine große Sammlung von Cheatsheets für gängige Tools, die du direkt importieren kannst.
Über navi eingebaute Funktionen
# Verfügbare Cheatsheet-Repos durchsuchen
navi repo add denisidoro/navi
# Oder manuell hinzufügen
navi repo add https://github.com/denisidoro/cheats
Empfohlene Cheatsheet-Repos
- denisidoro/cheats – Offiziell gepflegte, allgemeine Cheatsheets
- sv222/kubectl-autocompletion-navi – Kubernetes-kubectl-Befehle
- ormico/navi-cheatsheets – Cheatsheets für verschiedene Entwickler-Tools
Fortgeschrittene Tricks
1. Befehle mit Tags organisieren
% Systemverwaltung
tags: system
$ Festplattennutzung anzeigen
df -h
$ Speichernutzung anzeigen
free -h
% Git-Operationen
tags: git, version-control
$ Commit-Historie anzeigen
git log --oneline
2. Bedingte Variablen
$ Deployment je nach Umgebung
deploy <environment>
%% environment: Optionen dev staging production
%% Wenn environment = production: echo "⚠️ Deployment in Produktion – bitte bestätigen!"
3. Externe Skripte aufrufen
$ Datenbank-Backup
./scripts/backup.sh <database>
%% database: Befehl mysql -e "SHOW DATABASES;" | tail -n +2
4. Eigenes Farbthema
Bearbeite ~/.config/navi/config.yaml:
style:
tag:
color: blue
width: 20
comment:
color: yellow
snippet:
color: green
Praxis-Szenarien
Szenario 1: Komplexe Befehle schnell ausführen
Du musst regelmäßig Docker-Ressourcen aufräumen? Erstelle ein Cheatsheet:
% Docker-Aufräumen
$ Alle gestoppten Container entfernen
docker container prune -f
$ Ungenutzte Images entfernen
docker image prune -f
$ Alle ungenutzten Ressourcen entfernen
docker system prune -f
Ab jetzt einfach Ctrl + G, nach "Docker-Aufräumen" suchen, und mit einem Tastendruck ausführen.
Szenario 2: Teamweite Standardisierung
Schreibe die gängigen Team-Operationen als Cheatsheet in ein gemeinsames Repo:
# Team-Repo
git clone https://github.com/your-team/team-navi-cheats.git ~/.config/navi/team
# In config.yaml hinzufügen
paths:
- ~/.config/navi/team
Neue Teammitglieder haben ab Tag eins eine standardisierte Betriebsanleitung.
Szenario 3: Neue Tools lernen
Beim Lernen von Kubernetes importiere das kubectl-Cheatsheet:
navi repo add https://github.com/sv222/kubectl-autocompletion-navi
Lernen und Anwenden gleichzeitig – schneller geht's nicht.
Häufige Fragen
F: navi und Fish Shell's autospawn kollidieren – was tun?
A: Passe die Ladereihenfolge in der Fish-Konfiguration an und stelle sicher, dass das navi-Widget zuletzt geladen wird.
F: Wie sichere ich meine eigenen Cheatsheets?
A: Überführe das ~/.config/navi/-Verzeichnis in die Versionskontrolle:
cd ~/.config/navi
git init
git add .
git commit -m "Initial navi cheatsheets"
# In ein privates Repo pushen
F: Chinesische Zeichen werden falsch dargestellt?
A: Stelle sicher, dass Terminal und Schriftart CJK-Zeichen unterstützen, oder setze in der config.yaml:
terminal:
font: "Noto Sans Mono CJK SC"
Fazit
navi ist ein Tool, das die CLI-Produktivität spürbar steigert – besonders für:
- ✅ Entwickler, die regelmäßig komplexe Befehle nutzen
- ✅ Allrounder, die schnell zwischen verschiedenen Tool-Kontexten wechseln müssen
- ✅ Tech Leads, die Teamabläufe standardisieren wollen
- ✅ Einsteiger, die sich in neue Tools einarbeiten
Projekt-Info: - GitHub: https://github.com/denisidoro/navi - Sprache: Rust - Stars: 16.400+ - Lizenz: Apache-2.0
Nimm dir 30 Minuten für die navi-Einrichtung und spare künftig jeden Tag 10 Minuten beim Befehle-Suchen. Diese Investition lohnt sich!
Verwandte Artikel: - tldr-pages/tldr – Vereinfachte Manpages - cheat.sh – Online-Cheatsheets ohne Installation - fzf – Universeller Fuzzy Finder, ideal in Kombination mit navi