Was ist fish?
fish ist eine intelligente und benutzerfreundliche Kommandozeilen-Shell. Sie schlägt beim Tippen den Rest des Befehls aus deiner History und den Vervollständigungen vor, hebt die Syntax sofort hervor, erzeugt Tab-Vervollständigungen aus den installierten Handbuchseiten und verzichtet auf die kryptischen Quoting-Regeln, die andere Shells geerbt haben. Alles funktioniert sofort — es muss nichts konfiguriert werden, damit fish angenehm ist.
⚡ Hauptfunktionen von fish
💡 Autovorschläge
Beim Tippen schlägt fish den Rest des Befehls aus History und Vervollständigungen vor. Mit → übernimmst du ihn.
🎨 Syntaxhervorhebung
Befehle werden beim Schreiben eingefärbt, sodass ein Tippfehler oder ein offenes Anführungszeichen vor dem Enter auffällt.
⌨️ Vervollständigung aus Handbuchseiten
fish wertet die installierten Manpages aus und erzeugt daraus Vervollständigungen — selbst exotische Tools vervollständigen ihre Optionen.
🧠 Vernünftiges Skripting
Keine Überraschungen durch Wortauftrennung, kein [[ ]] gegen [ ], und echte Listen. Skripte lesen sich so, wie sie sich verhalten.
🔍 Durchsuchbare History
Präfix tippen und ↑ drücken, um nur die passenden Befehle durchzugehen — inklusive Teilstring-Suche.
🛠️ Konfiguration im Browser
fish_config öffnet eine Oberfläche für Prompts, Farben, Funktionen und Tastenbelegungen — ohne Dotfile-Archäologie.
apt upgrade hält dich auf der neuesten Version.
📦 Installation von deb.griffo.io
Schritt 1: Repository hinzufügen
sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | sudo gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | sudo tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
sudo apt updateinstall -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
apt updateSchritt 2: fish installieren
# Neuestes fish installieren
sudo apt install fish
# Installation überprüfen
fish --version# Neuestes fish installieren
apt install fish
# Installation überprüfen
fish --versionSchritt 3: fish zur Shell machen
# fish als Login-Shell setzen — das Paket hat sie bereits in /etc/shells eingetragen
chsh -s /usr/bin/fish
# Oder einfach nur für diese Sitzung starten
exec fish
# Prompt, Farben und Tastenbelegung anpassen
fish_config🎯 Grundlegende Verwendungsbeispiele
Alltägliche interaktive Nutzung:
# Den ausgegrauten Vorschlag übernehmen
→ # oder Ctrl-F
# Die History nach allen Befehlen durchsuchen, die mit git beginnen
git↑
# In ein Verzeichnis wechseln, ohne cd zu tippen
/etc/apt
# Die browserbasierte Konfiguration öffnen
fish_configSkripting ohne Fallstricke:
# Listen sind echte Listen — keine Wortauftrennung
set files *.txt; echo (count $files) Dateien
# Befehlssubstitution braucht keine Backticks
echo "heute ist "(date +%A)
# Bedingungen lesen sich wie Text
if test -f /etc/os-release; echo gefunden; end
# Über eine Liste iterieren
for f in *.md; echo verarbeite $f; endAnpassen:
# Eine Funktion definieren und dauerhaft speichern
function ll; ls -lh $argv; end; funcsave ll
# Abkürzungen expandieren beim Tippen, anders als Aliase
abbr -a gco git checkout
# Dauerhaft zum PATH hinzufügen, ohne Dotfile-Bearbeitung
fish_add_path ~/.local/bin
# Eine universelle Variable setzen, die alle Sitzungen teilen
set -U EDITOR nvim🔧 Passt gut zu
fish ist im modernen Terminal-Werkzeugkasten erstklassig unterstützt:
- starship: Shell-übergreifender Prompt mit nativer fish-Unterstützung
- zoxide:
zoxide init fishund per Frecency in Verzeichnisse springen - fzf: bringt fish-Tastenbelegungen für History und Dateisuche mit
- atuin: ersetzt fish' History durch eine durchsuchbare, synchronisierte Datenbank
- Oh My Posh: eine weitere Prompt-Engine mit fish-Initialisierung
🚀 Warum deb.griffo.io wählen?
- Offizielles Debian: verfügbar, aber eingefroren auf der Version, mit der das Release erschien
- Manuelle Installation: erfordert eine Rust-Toolchain und CMake oder das händische Verwalten eines Binaries
- deb.griffo.io: neueste Version mit automatischen Updates
- ✅ Neueste Funktionen: die aktuellsten Verbesserungen bei Bedienung und Performance
- ✅ Keine manuelle Einrichtung: vorgefertigte Binaries, kein cargo build nötig
- ✅ Automatische Updates: Pakete werden wenige Stunden nach Upstream-Releases aktualisiert
- ✅ Vollständiges Paket:
fish,fish_indent,fish_key_readerund die Handbuchseiten - ✅ Keine Abhängigkeiten: statisch gelinkter musl-Build; Funktionen und Vervollständigungen sind eingebettet, ein fish-common entfällt
- ✅ Multi-Distribution: läuft auf Bookworm, Trixie, Forky und Sid
- ✅ Einfache Wartung: Standard-apt-Befehle für Updates
📦 Paket-Build-Repository
Die Debian-Pakete werden in diesem GitHub-Repository automatisch gebaut und gepflegt:
- 🐟 fish-shell-debian - Builds der neuesten Releases
🔗 Verwandte Pakete
Ebenfalls verfügbar auf deb.griffo.io:
- Starship - Shell-übergreifender Prompt mit nativer fish-Unterstützung
- zoxide - Schlaueres cd, mit fish-Initialisierung
- fzf - Fuzzy-Finder mit fish-Tastenbelegungen
- Atuin - Shell-History, die sich wirklich durchsuchen lässt