Was ist ble.sh?
ble.sh, der Bash Line Editor, ist ein in reinem Bash geschriebener Zeileneditor, der in interaktiven Bash-Sitzungen GNU Readline ersetzt. Du behältst Bash, deine ~/.bashrc, deine Aliase und Skripte und bekommst dazu, wofür man sonst die Shell wechseln müsste: Syntaxhervorhebung beim Tippen, Auto-Vorschläge aus der Historie wie in fish, einen vollständigen Vim-Modus neben den Emacs-Tastenkürzeln, Vervollständigung mit Menüs und Beschreibungen, Abkürzungen sowie Integration mit bash-completion und fzf. Geschrieben von Koichi Murase, veröffentlicht unter der BSD-3-Clause-Lizenz. Es gibt kein Programm zum Starten: Das Paket installiert das Skript nach /usr/share/blesh/ble.sh, und zwei Zeilen in deiner ~/.bashrc schalten es ein.
apt upgrade bei dir ankommen.
⚡ Hauptfunktionen von ble.sh
🎨 Syntaxhervorhebung
Befehle, Schlüsselwörter, Strings, Variablen, Umleitungen und Dateinamen werden beim Tippen eingefärbt, und ein unbekannter Befehl oder ein Syntaxfehler fällt auf, bevor du Enter drückst.
💡 Auto-Vorschläge
Vorschläge im Stil von fish aus Historie und Vervollständigung erscheinen grau hinter dem Cursor. Übernimm den ganzen Vorschlag mit Pfeil rechts oder C-f, oder Wort für Wort mit M-f.
⌨️ Vim- und Emacs-Modus
Standardmäßig Emacs-Tastenkürzel, mit set -o vi ein vollständiger vi/vim-Modus: Normal-, Einfüge- und Visual-Modus, Textobjekte, Register und optional eine Statuszeile im Stil von vim-airline.
📋 Menü-Vervollständigung
Tab öffnet ein Menü der Kandidaten, durch das du dich mit den Pfeiltasten bewegst, mit Beschreibungen, wo vorhanden, und mehrdeutigem (unscharfem) Abgleich.
✂️ Abkürzungen
ble-sabbrev definiert Abkürzungen, die sich beim Tippen erweitern, wie Abkürzungen in fish oder globale Aliase in zsh: Aus L wird | less.
🐚 Reines Bash, kein Binary
Nichts zu kompilieren und nichts Architekturabhängiges: ble.sh ist ein Bash-Skript, das überall läuft, wo Bash 3.0 oder neuer läuft, und es hält sich aus nicht-interaktiven Shells und Skripten heraus.
apt upgrade hält dich auf der neuesten Version.
📦 Installation aus 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 update🆓 Es gibt einen für immer kostenlosen Spiegel. deb-free.griffo.io liefert Pakete für immer kostenlos — ohne Konto, ohne Abo, höchstens 2 Monate hinter Upstream, Sicherheitsfixes sofort. Derzeit enthält er cliamp, Ghostty, lazydocker, Oh My Posh, Uncloud und Zed; ble.sh ist nicht dabei, deshalb führt heute nur das Repository oben dorthin — auf Anfrage kann es aufgenommen werden.
Schritt 2: ble.sh installieren
# Neuestes ble.sh installieren
sudo apt install ble.sh
# Optional: vim-airline-Themes für die Statuszeile im Vi-Modus
sudo apt install ble.sh-airline-themes# Neuestes ble.sh installieren
apt install ble.sh
# Optional: vim-airline-Themes für die Statuszeile im Vi-Modus
apt install ble.sh-airline-themesSchritt 3: ble.sh in deiner ~/.bashrc aktivieren
# ble.sh hat keinen eigenen Befehl: Bash lädt es aus ~/.bashrc.
# Diese Zeile möglichst weit OBEN in ~/.bashrc:
[[ $- == *i* ]] && source /usr/share/blesh/ble.sh --noattach
# ...der Rest deiner ~/.bashrc bleibt, wie er ist...
# Und diese Zeile ganz am ENDE von ~/.bashrc:
[[ ${BLE_VERSION-} ]] && ble-attach
# Ein neues Terminal öffnen, dann:
# Installation überprüfen
echo $BLE_VERSION🎯 Grundlegende Verwendungsbeispiele
Alltag:
# Prüfen, ob ble.sh in dieser Shell aktiv ist
echo $BLE_VERSION
# ble.sh nach Änderungen an den Einstellungen neu laden
ble-reload
# Updates kommen über apt; ble-update verweist dorthin
sudo apt update && sudo apt upgrade# Prüfen, ob ble.sh in dieser Shell aktiv ist
echo $BLE_VERSION
# ble.sh nach Änderungen an den Einstellungen neu laden
ble-reload
# Updates kommen über apt; ble-update verweist dorthin
apt update && apt upgradeEinstellungen in ~/.blerc:
# ble.sh liest seine Einstellungen aus ~/.blerc (oder ~/.config/blesh/init.sh)
# Vim-Tastenbelegung statt Emacs
set -o vi
# 300 ms warten, bevor ein Auto-Vorschlag erscheint
bleopt complete_auto_delay=300
# Auto-Vorschläge ganz abschalten
bleopt complete_auto_complete=
# Farbe des Vorschlagstexts ändern
ble-face auto_complete='fg=242'Abkürzungen, Tastenbelegungen und Integrationen:
# „L“ beim Tippen zu „| less“ erweitern
ble-sabbrev L='| less'
# Strg+C verwirft die aktuelle Zeile
ble-bind -f 'C-c' discard-line
# fzf-Vervollständigung und -Tastenbelegungen, angepasst an ble.sh
ble-import -d integration/fzf-completion
ble-import -d integration/fzf-key-bindings
# Statuszeile im Stil von vim-airline (braucht ble.sh-airline-themes)
ble-import vim-airline
bleopt vim_airline_theme=dark🔧 Tool-Integrationen
ble.sh setzt unter deiner bestehenden Bash-Umgebung an, statt sie zu ersetzen:
- bash-completion: Vervollständigungen aus dem Paket
bash-completionwerden automatisch übernommen und im Menü angezeigt - fzf:
ble-importlädt an ble.sh angepasste Versionen der fzf-Vervollständigung und -Tastenbelegungen - Atuin: die Bash-Integration von Atuin unterstützt ble.sh und erhält darüber zuverlässige preexec-Hooks zum Aufzeichnen der Historie
- Starship / Oh My Posh: die von ihnen erzeugten Prompts funktionieren unverändert weiter
- Konfigurationsdatei:
~/.blercenthält deinebleopt-,ble-face- undble-bind-Einstellungen, getrennt von~/.bashrc
🚀 Warum deb.griffo.io?
- Offizielles Ubuntu: ab 25.10 in universe verfügbar, als Snapshot, der für die Lebensdauer jedes Releases eingefroren ist; 22.04 und 24.04 haben es nicht
- git clone + make: aktuell, aber von Hand gebaut und nach
~/.localinstalliert, und mitble-updateselbst aktuell zu halten - deb.griffo.io: neueste Version mit automatischen Updates
- ✅ Frische Snapshots: die Nightly-Snapshots von Upstream, mit Korrekturen für neue Bash-Versionen und Terminals
- ✅ Keine manuelle Einrichtung: kein git clone, kein
make, keine Kopie von ble.sh im Home-Verzeichnis, die du pflegen musst - ✅ Automatische Updates: Pakete werden innerhalb von Stunden nach Upstream-Releases aktualisiert
- ✅ Vollständiges Paket: der vollständige ble.sh-Baum in
/usr/share/blesh, seine Dokumentation und das optionale Paketble.sh-airline-themes - ✅ Jede Architektur: ausgeliefert als
Architecture: all— amd64, arm64, armhf, riscv64 und der Rest installieren dasselbe Paket - ✅ Multi-Distribution: läuft auf Ubuntu 22.04, 24.04, 25.10 und 26.04
- ✅ Einfache Wartung: Updates mit den üblichen apt-Befehlen
📦 Paket-Build-Repository
Die Ubuntu-Pakete werden in diesem GitHub-Repository automatisch gebaut und gepflegt:
- 🖍️ ble.sh-debian - Builds der neuesten Releases
🔗 Verwandte Pakete
Ebenfalls verfügbar über deb.griffo.io:
- fzf - Fuzzy Finder, mit dem ble.sh zusammenarbeitet
- Atuin - Shell-Historie in einer Datenbank, mit ble.sh-Unterstützung
- Starship - Shell-übergreifender Prompt, der unter ble.sh funktioniert
- zoxide - Ein klügeres cd, das sich deine Verzeichnisse merkt
~/.bashrc lieber behalten, als sie für eine andere Shell neu zu schreiben.