navi-interactive-cheatsheet-tool

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.

Methode 1: Über den Paketmanager (empfohlen)

Fedora/RHEL/CentOS:

BASH
sudo dnf install navi

Ubuntu/Debian (zuerst Repo hinzufügen):

BASH
sudo add-apt-repository universe
sudo apt update
sudo apt install navi

Arch Linux:

BASH
sudo pacman -S navi

macOS (Homebrew):

BASH
brew install navi

Methode 2: Über Cargo (Rust-Paketmanager)

Wenn Rust bereits installiert ist:

BASH
cargo install navi

Methode 3: Binärdatei herunterladen

Lade die vorkompilierte Binärdatei von GitHub Releases herunter:

BASH
# 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:

BASH
eval "$(navi widget bash)"

Zsh

Bearbeite ~/.zshrc und füge hinzu:

BASH
eval "$(navi widget zsh)"

Fish

Bearbeite ~/.config/fish/config.fish und füge hinzu:

FISH
navi widget fish | source

Danach die Shell-Konfiguration neu laden:

BASH
source ~/.bashrc  # bzw. ~/.zshrc

Grundlegende Bedienung

1. Befehle suchen

Der einfachste Weg ist die direkte Suche:

BASH
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

BASH
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 übernehmen
  • Ctrl + Y: Befehl sofort ausführen
  • Esc: 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:

BASH
mkdir -p ~/.config/navi
vim ~/.config/navi/my_tools.cheat

Cheatsheet-Format

CHEAT
# 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:

CHEAT
# 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

CHEAT
% 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

BASH
# 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

Fortgeschrittene Tricks

1. Befehle mit Tags organisieren

CHEAT
% 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

CHEAT
$ 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

CHEAT
$ Datenbank-Backup
./scripts/backup.sh <database>
%% database: Befehl mysql -e "SHOW DATABASES;" | tail -n +2

4. Eigenes Farbthema

Bearbeite ~/.config/navi/config.yaml:

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:

CHEAT
% 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:

BASH
# 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:

BASH
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:

BASH
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:

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