Comment installer et utiliser fzf sur Linux : Le guide complet de la recherche floue dans le terminal
Si vous passez beaucoup de temps dans le terminal Linux, vous savez déjà que trouver des fichiers, se souvenir des commandes et naviguer dans les répertoires peuvent vous ralentir. fzf (Fuzzy Finder) est un outil de ligne de commande interactif ultra-rapide qui élimine complètement cette friction. Que vous filtriez des milliers de fichiers, recherchiez dans l’historique des commandes ou changiez de branche Git, fzf transforme les tâches terminales fastidieuses en opérations fluides et quasi instantanées.
Dans ce guide complet, vous apprendrez comment installer fzf sur Linux, maîtriser ses fonctionnalités principales, l’intégrer avec les outils populaires et le personnaliser pour adapter exactement à votre flux de travail.
> Vous gérez votre propre environnement Linux ? Une configuration de développement puissante commence par la bonne infrastructure. L’hébergement VPS d’AlexHost vous donne un accès root complet, un stockage SSD haute performance et une liberté totale pour configurer votre serveur — la base idéale pour construire un flux de travail productif en terminal Linux.
Qu’est-ce que fzf ?
fzf est un outil de recherche floue polyvalent en ligne de commande écrit en Go. Il lit une liste d’éléments à partir de l’entrée standard et les présente dans une interface de filtrage interactive en temps réel. Au fur et à mesure que vous tapez, fzf affine les résultats en utilisant un algorithme de correspondance floue — ce qui signifie que vous n’avez pas besoin de taper des chaînes exactes pour trouver ce que vous cherchez.
Les capacités clés de fzf incluent :
- Recherche de fichiers et répertoires dans de grands arbres de répertoires
- Navigation dans l’historique des commandes avec rappel instantané
- Navigation dans les branches et commits Git
- Gestion des processus et arrêt interactif
- Sélection d’hôte SSH à partir de votre fichier de configuration
- Intégration avec pratiquement n’importe quelle commande qui produit une sortie basée sur des lignes
fzf est léger, sans dépendances après l’installation, et fonctionne de manière transparente avec les shells Bash, Zsh et Fish.
Installation de fzf sur Linux
Il existe deux méthodes d’installation principales : cloner le référentiel Git officiel ou utiliser le gestionnaire de paquets de votre distribution. Les deux sont simples.
Méthode 1 : Installation via Git (Recommandée pour la version la plus récente)
L’installation à partir du référentiel GitHub garantit que vous disposez toujours de la version la plus à jour.
Étape 1 — Cloner le référentiel :
git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzfÉtape 2 — Exécuter le script d’installation :
cd ~/.fzf
./installPendant l’installation, vous serez invité à répondre à trois questions de configuration :
- Activer les raccourcis clavier ? (Recommandé : Oui) — Ajoute les raccourcis
Ctrl+T,Ctrl+RetAlt+C - Activer l’auto-complétion floue ? (Recommandé : Oui) — Active l’intégration de la complétion par tabulation
- Mettre à jour les fichiers de configuration du shell ? (Recommandé : Oui) — Source automatiquement fzf dans
.bashrc/.zshrc
Après l’installation, rechargez votre shell :
source ~/.bashrc # For Bash users
source ~/.zshrc # For Zsh usersMéthode 2 : Installation via le gestionnaire de paquets
L’installation via le gestionnaire de paquets est plus rapide et s’intègre au mécanisme de mise à jour de votre système, bien qu’elle puisse fournir une version légèrement plus ancienne.
Ubuntu / Debian :
sudo apt update && sudo apt install fzfFedora :
sudo dnf install fzfArch Linux / Manjaro :
sudo pacman -S fzfmacOS (Homebrew) :
brew install fzf
$(brew --prefix)/opt/fzf/installVérifier votre installation :
fzf --versionUtilisation basique de fzf
Une fois installé, fzf est immédiatement utilisable. Voici les commandes essentielles pour construire votre fondation.
1. Recherche interactive de fichiers
Lancez fzf dans votre répertoire courant pour rechercher interactivement des fichiers :
fzfUne invite interactive apparaît. Commencez à taper n’importe quelle partie d’un nom de fichier — fzf filtre les résultats en temps réel. Utilisez les touches fléchées pour naviguer, et appuyez sur Enter pour sélectionner.
Raccourcis de navigation utiles :
| Touche | Action |
|---|---|
↑ / ↓ | Naviguer dans les résultats |
Enter | Confirmer la sélection |
Tab | Marquer plusieurs éléments |
Ctrl+C / Esc | Annuler |
2. Rechercher l’historique des commandes
L’un des cas d’usage les plus populaires de fzf est la recherche interactive dans l’historique des commandes :
history | fzfSi vous avez activé les liaisons de touches lors de l’installation, vous pouvez appuyer sur Ctrl+R à tout moment dans votre terminal pour déclencher cela instantanément — bien plus puissant que la recherche inversée par défaut.
3. Combiner fzf avec find
Recherchez récursivement dans votre système de fichiers et canalisez les résultats dans fzf :
find . -type f | fzfPour rechercher uniquement des répertoires :
find . -type d | fzf4. Naviguer vers un répertoire avec Alt+C
Si vous avez activé les liaisons de touches, appuyer sur Alt+C ouvre un navigateur de répertoires interactif. Sélectionnez un répertoire et fzf exécute automatiquement cd pour y naviguer.
5. Rechercher les branches Git
Trouvez rapidement et référencez les branches Git dans les grands référentiels :
git branch | fzfPour extraire une branche interactivement :
git checkout $(git branch | fzf)Intégration de fzf avec d’autres commandes
La véritable puissance de fzf émerge lorsque vous le combinez avec d’autres outils en utilisant la substitution de commande ($(fzf)).
1. Ouvrir un fichier directement dans vim ou nano
vim $(fzf)nano $(fzf)Tapez une partie du nom de fichier, sélectionnez-le, et l’éditeur s’ouvre immédiatement — pas besoin de taper le chemin complet.
2. Copier un chemin de fichier dans le presse-papiers
fzf | xclip -selection clipboardSur les systèmes utilisant xsel:
fzf | xsel --clipboard --input3. Sélection interactive d’hôte SSH
Si vous gérez plusieurs serveurs, cette intégration change la donne :
ssh $(grep -i "^Host " ~/.ssh/config | awk '{print $2}' | fzf)Cela analyse votre fichier de configuration SSH et vous permet de sélectionner interactivement un hôte avant de vous connecter — plus besoin de mémoriser les noms d’hôtes ou les adresses IP.
> Vous gérez plusieurs serveurs distants ? Les serveurs dédiés d’AlexHost offrent du matériel de qualité entreprise avec un contrôle administratif complet, ce qui les rend parfaits pour les équipes qui dépendent de flux de travail intensifs en SSH.
4. Arrêter un processus de manière interactive
kill -9 $(ps aux | fzf | awk '{print $2}')Listez tous les processus en cours d’exécution, recherchez celui que vous voulez en flou, et arrêtez-le — tout cela sans avoir besoin de connaître le PID à l’avance.
5. Aperçu du contenu des fichiers lors de la recherche
fzf supporte un drapeau --preview qui affiche le contenu des fichiers aux côtés de vos résultats de recherche :
fzf --preview 'cat {}'Pour les aperçus avec coloration syntaxique (nécessite bat) :
fzf --preview 'bat --color=always {}'Personnaliser fzf
fzf est largement configurable via des variables d’environnement et des fichiers de configuration shell.
1. Définir les options par défaut avec FZF_DEFAULT_OPTS
Ajoutez ceci à votre ~/.bashrc ou ~/.zshrc pour appliquer les options globalement :
export FZF_DEFAULT_OPTS="--height 40% --reverse --inline-info --border"Explications des options courantes :
| Option | Description |
|---|---|
--height 40% | Afficher fzf dans les 40 % inférieurs du terminal |
--reverse | Afficher les résultats de haut en bas (entrée en haut) |
--inline-info | Afficher le nombre de correspondances en ligne |
--border | Tracer une bordure autour de la fenêtre fzf |
--multi | Activer la multi-sélection avec Tab |
2. Personnaliser les couleurs
Faites correspondre le schéma de couleurs de fzf à votre thème de terminal :
export FZF_DEFAULT_OPTS="--color=bg+:#3c3836,bg:#282828,fg:#ebdbb2,fg+:#ebdbb2,hl:#fabd2f,hl+:#fabd2f,info:#83a598,prompt:#bdae93,spinner:#fabd2f,pointer:#83a598,marker:#fe8019,border:#665c54"Cet exemple utilise le populaire schéma de couleurs Gruvbox. Ajustez les valeurs hexadécimales pour correspondre à votre thème préféré.
3. Liaisons de touches personnalisées
Ajoutez des liaisons personnalisées à votre fichier de configuration shell :
# Ctrl+T — fuzzy file finder
export FZF_CTRL_T_COMMAND="find . -type f 2>/dev/null"
# Alt+C — fuzzy directory navigator
export FZF_ALT_C_COMMAND="find . -type d 2>/dev/null"
# Ctrl+R — command history search with preview
export FZF_CTRL_R_OPTS="--preview 'echo {}' --preview-window down:3:hidden:wrap --bind '?:toggle-preview'"4. Définir une source de fichiers par défaut avec FZF_DEFAULT_COMMAND
Par défaut, fzf utilise find pour lister les fichiers. Vous pouvez remplacer cela par des outils plus rapides comme fd ou ripgrep :
# Using fd (faster alternative to find)
export FZF_DEFAULT_COMMAND="fd --type f --hidden --follow --exclude .git"
# Using ripgrep
export FZF_DEFAULT_COMMAND="rg --files --hidden --follow --glob '!.git'"5. Fichier de configuration persistant
Pour les utilisateurs de Zsh, vous pouvez stocker les paramètres persistants de fzf dans un fichier dédié :
echo "export FZF_DEFAULT_OPTS='--height 40% --reverse --inline-info --border'" >> ~/.fzf.zshAssurez-vous que ce fichier est sourcé dans votre ~/.zshrc :
[ -f ~/.fzf.zsh ] && source ~/.fzf.zshExemples pratiques de flux de travail fzf
Voici des fonctions prêtes à l’emploi que vous pouvez ajouter à votre .bashrc ou .zshrc :
cd interactif avec fzf
fcd() {
local dir
dir=$(find ${1:-.} -type d 2>/dev/null | fzf +m) && cd "$dir"
}Ouvrir les fichiers récents dans vim
fvim() {
local file
file=$(find . -type f -name "*.${1:-*}" | fzf --preview 'cat {}')
[ -n "$file" ] && vim "$file"
}Rechercher et appliquer Git Stash
fstash() {
local stash
stash=$(git stash list | fzf | cut -d: -f1)
[ -n "$stash" ] && git stash apply "$stash"
}Dépannage des problèmes courants de fzf
| Problème | Solution |
|---|---|
fzf: command not found | Assurez-vous que ~/.fzf/bin se trouve dans votre $PATH ; réexécutez ~/.fzf/install |
| Les raccourcis clavier ne fonctionnent pas | Réexécutez le script d’installation et confirmez que la configuration du shell est chargée |
| Performances lentes sur les répertoires volumineux | Définissez FZF_DEFAULT_COMMAND pour utiliser fd ou rg au lieu de find |
| Les couleurs ne s’affichent pas correctement | Assurez-vous que votre terminal prend en charge 256 couleurs ; ajoutez --color=always aux commandes d’aperçu |
| fzf introuvable après l’installation du paquet | Exécutez source ~/.bashrc ou ouvrez une nouvelle session de terminal |
Pourquoi votre environnement d’hébergement est important pour la productivité des développeurs
Un puissant workflow terminal comme fzf n’est efficace que dans l’environnement dans lequel il s’exécute. Les I/O lents, les ressources limitées ou les permissions restreintes peuvent compromettre même les meilleurs outils.
- Pour les développeurs et les administrateurs système qui ont besoin d’un contrôle total, l’hébergement VPS d’AlexHost fournit des ressources dédiées, l’accès root et la flexibilité d’installer n’importe quel outil sans restrictions.
- Pour les équipes gérant des applications web, associer votre serveur à un VPS avec cPanel vous donne à la fois la puissance du terminal et une interface de gestion graphique.
- Pour les projets nécessitant un domaine et une présence web, l’enregistrement de domaine et l’hébergement web partagé d’AlexHost offrent un point de départ abordable et entièrement géré.
Conclusion
fzf est l’un des outils les plus impactants que vous pouvez ajouter à votre flux de travail Linux terminal. Son algorithme de correspondance floue, son filtrage en temps réel et son intégration transparente avec les commandes shell en font un multiplicateur de productivité indispensable — que vous recherchiez des fichiers, que vous rappeliez des commandes, que vous gériez des branches Git ou que vous naviguiez sur des serveurs distants.
Points clés de ce guide :
- Installez fzf via Git clone pour les dernières fonctionnalités, ou utilisez votre gestionnaire de paquets pour la simplicité
- Activez les liaisons de touches (
Ctrl+T,Ctrl+R,Alt+C) pour un accès instantané aux fonctionnalités les plus utiles de fzf - Combinez fzf avec
vim,ssh,git,killetfinden utilisant la substitution de commande - Personnalisez l’apparence et le comportement via
FZF_DEFAULT_OPTSet la configuration du shell - Utilisez
--previewpour transformer fzf en navigateur de fichiers complet
Commencez par les bases, intégrez progressivement les intégrations qui correspondent à votre flux de travail, et vous vous demanderez rapidement comment vous avez jamais pu gérer le terminal sans lui.
sur tous les services d'hébergement