Qu'est-ce que fish ?
fish est un shell en ligne de commande intelligent et convivial. Il suggère la suite de la commande pendant que vous tapez, à partir de votre historique et des complétions, colore la syntaxe au fil de la frappe, génère les complétions par Tab depuis vos pages de manuel installées et abandonne les règles de guillemets ésotériques héritées par les autres shells. Tout fonctionne immédiatement : rien à configurer pour que fish soit agréable.
⚡ Fonctionnalités clés de fish
💡 Autosuggestions
Pendant la frappe, fish propose la suite de la commande depuis votre historique et les complétions. Appuyez sur → pour l'accepter.
🎨 Coloration syntaxique
Les commandes sont colorées à mesure que vous les écrivez : une faute de frappe ou un guillemet non fermé saute aux yeux avant Entrée.
⌨️ Complétions issues des pages de manuel
fish analyse vos pages de manuel installées pour générer les complétions : même les outils obscurs complètent leurs options.
🧠 Scripting sensé
Pas de surprises de découpage de mots, pas de [[ ]] contre [ ], et de vraies listes. Les scripts se lisent comme ils se comportent.
🔍 Historique consultable
Tapez un préfixe puis ↑ pour parcourir uniquement les commandes correspondantes, recherche par sous-chaîne incluse.
🛠️ Configuration dans le navigateur
fish_config ouvre une interface pour les invites, couleurs, fonctions et raccourcis — sans fouiller dans les dotfiles.
apt upgrade vous maintient à jour.
📦 Installation depuis deb.griffo.io
Étape 1 : Ajouter le dépôt
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Étape 2 : Installer fish
# Installer le dernier fish
sudo apt install fish
# Vérifier l'installation
fish --version# Installer le dernier fish
apt install fish
# Vérifier l'installation
fish --versionÉtape 3 : Faire de fish votre shell
# Définir fish comme shell de connexion — le paquet l'a déjà inscrit dans /etc/shells
chsh -s /usr/bin/fish
# Ou simplement le lancer pour cette session
exec fish
# Ajuster l'invite, les couleurs et les raccourcis
fish_config🎯 Exemples d'utilisation de base
Usage interactif au quotidien :
# Accepter l'autosuggestion grisée
→ # ou Ctrl-F
# Chercher dans l'historique les commandes commençant par git
git↑
# Aller dans un répertoire sans taper cd
/etc/apt
# Ouvrir la configuration dans le navigateur
fish_configScripter sans pièges :
# Les listes sont de vraies listes — pas de découpage de mots
set files *.txt; echo (count $files) fichiers
# La substitution de commande se passe de backticks
echo "aujourd'hui : "(date +%A)
# Les conditions se lisent naturellement
if test -f /etc/os-release; echo trouvé; end
# Parcourir une liste
for f in *.md; echo traitement de $f; endLe personnaliser :
# Définir une fonction et la conserver
function ll; ls -lh $argv; end; funcsave ll
# Les abréviations se développent à la frappe, contrairement aux alias
abbr -a gco git checkout
# Ajouter au PATH durablement, sans éditer de dotfile
fish_add_path ~/.local/bin
# Définir une variable universelle, partagée par toutes les sessions
set -U EDITOR nvim🔧 S'accorde bien avec
fish est un citoyen de première classe de l'outillage moderne du terminal :
- starship: invite multi-shell avec prise en charge native de fish
- zoxide:
zoxide init fishet sautez d'un répertoire à l'autre - fzf: fournit des raccourcis fish pour l'historique et la recherche de fichiers
- atuin: remplace l'historique de fish par une base consultable et synchronisée
- Oh My Posh: un autre moteur d'invite avec un initialiseur fish
🚀 Pourquoi choisir deb.griffo.io ?
- Ubuntu officiel: disponible, mais figé à la version livrée avec la release
- Installation manuelle: nécessite une chaîne d'outils Rust et CMake, ou de gérer un binaire à la main
- deb.griffo.io: dernière version avec mises à jour automatiques
- ✅ Dernières fonctionnalités: les améliorations d'ergonomie et de performance les plus récentes
- ✅ Aucune configuration manuelle: binaires précompilés, pas de cargo build nécessaire
- ✅ Mises à jour automatiques: paquets mis à jour quelques heures après les versions upstream
- ✅ Paquet complet:
fish,fish_indent,fish_key_readeret les pages de manuel - ✅ Aucune dépendance: build musl statique ; fonctions et complétions sont intégrées, donc pas de fish-common à installer
- ✅ Multi-distribution: fonctionne sur Ubuntu 22.04, 24.04, 25.10 et 26.04
- ✅ Maintenance simple: commandes apt standard pour les mises à jour
📦 Dépôt de construction du paquet
Les paquets Ubuntu sont construits et maintenus automatiquement dans ce dépôt GitHub :
- 🐟 fish-shell-debian - Builds des dernières versions
🔗 Paquets associés
Également disponibles sur deb.griffo.io :
- Starship - Invite multi-shell prenant en charge fish nativement
- zoxide - Un cd plus malin, avec un initialiseur fish
- fzf - Chercheur flou avec des raccourcis fish
- Atuin - Un historique de shell réellement consultable