Ces astuces fzf transformeront la façon dont vous utilisez le terminal Linux
Le terminal est encombrant et inefficace sans personnalisations supplémentaires. Si vous êtes débutant, vous penserez peut-être que c'est aussi bon que possible, mais ce n'est pas le cas. Un outil en particulier se démarque et peut améliorer considérablement votre expérience. J'expose plusieurs raisons pour lesquelles fzf est mon outil de terminal préféré.
Sommaire
Qu'est-ce que fzf et pourquoi est-il incroyable ?
La commande fzf est un outil permettant d'effectuer des recherches rapides sur de grandes listes d'éléments. Cela peut ne pas sembler très attrayant, mais comment effectuez-vous généralement une recherche parmi un grand nombre de choix sur le terminal ? Par exemple, lorsque vous choisissez un chemin de fichier parmi des milliers d’autres, comment y parvenir ? Avez-vous du mal à terminer les onglets ou effectuez-vous une forme d'acrobatie terminale maladroite ? Ni l’un ni l’autre n’est un choix approprié, et fzf résout directement ce problème.
Installation
Pour suivre, vous devrez installer le package fzf.
Sur Debian, vous devez exécuter la commande d'installation suivante.
sudo apt install fzf
Sur Fedora, vous devez exécuter la commande d'installation suivante.
sudo dnf install fzf
Sous Arch Linux, vous devez exécuter la commande d'installation suivante.
sudo pacman -S fzf
Désormais, pour activer les fonctionnalités avancées de fzf, vous devez ajouter une ligne à votre fichier de configuration shell.
Si vous utilisez Bash, placez la commande suivante dans votre fichier ~/.bashrc et rechargez votre shell avec source ~/.bashrc.
eval "$(fzf --bash)"
Si vous utilisez Zsh, mettez-le dans votre fichier ~/.zshrc et rechargez votre shell avec source ~/.zshrc.
source <(fzf --zsh)
Recherche dans l'historique des commandes
La recherche de l'historique de votre shell dans Bash, que ce soit à l'aide de la commande history ou des touches fléchées, est insupportablement lente. Avec fzf, vous pouvez instantanément rechercher des milliers de commandes passées en temps réel, ce qui est facilement ma fonctionnalité de terminal préférée. Une fois que vous avez activé fzf, appuyez simplement sur Ctrl+R, commencez à taper et appuyez sur Entrée pour exécuter.
Il existe un outil similaire appelé Atuin qui offre une expérience très similaire.
Navigation rapide dans le répertoire
La navigation dans le système de fichiers peut prendre beaucoup de temps sur le terminal, et après l'avoir utilisé pendant un certain temps, vous souhaiterez peut-être une méthode plus rapide. Avec les fonctionnalités avancées du terminal de fzf activées, vous pouvez appuyer sur Alt+C pour accéder rapidement à n'importe quel sous-répertoire. Lorsque vous faites cela, fzf présentera une liste récursive de sous-répertoires, ce qui vous permettra de les affiner rapidement et d'en sélectionner un. Ceci est utile lorsque vous essayez d'explorer un sous-répertoire profondément imbriqué.
Recherche et sélection rapides de fichiers
Souvent, lorsque vous tapez une commande, vous devez choisir un fichier. Utiliser la complétion par tabulation est une approche, mais ce n'est pas la meilleure. Une meilleure approche consiste à utiliser un chercheur flou, et fzf fournit un sélecteur de fichiers intégré.
Commencez par taper votre commande, et lorsqu'il s'agit de choisir un fichier, appuyez sur Ctrl+T. Le sélecteur de fichiers fzf s'activera, recherchant de manière récursive le répertoire de travail actuel. Lorsque vous appuyez sur Entrée sur un choix, votre commande sera complétée avec le fichier choisi.
Une fois que vous avez compris, l'activation de fzf à mi-commande devient une seconde nature et réduit considérablement le temps d'écriture de la commande.
Terminaison facile du processus
Tuer un processus Linux peut être un jeu de devinettes lorsque vous ne connaissez pas son nom exact. Les commandes telles que pgrep, killall et kill all nécessitent le nom ou l'ID du processus, ce qui peut parfois être difficile à retenir. Avec l'intégration shell de fzf, vous pouvez rapidement rechercher et sélectionner le processus que vous souhaitez mettre fin.
Pour tuer des processus avec fzf, entrez la commande suivante et appuyez sur la touche Tab (n'appuyez pas sur Entrée) :
kill -9 **
L'utilisation de la commande fzf vous permet de sélectionner rapidement un processus et de le tuer ; c'est beaucoup plus rapide que les autres commandes, et c'est indulgent lorsque vous avez oublié le nom exact du processus.
Commandes bonus
La syntaxe « ** » déclenche la fenêtre de recherche de fzf. Les commandes fzf que vous avez ajoutées à votre configuration shell précédemment ont créé des fonctions qui gèrent cette syntaxe et activent d'autres fonctionnalités fzf.
Le déclencheur « ** » fonctionne avec presque toutes les commandes ; certaines commandes sont gérées spécialement (comme la commande SSH) et le reste est par défaut un sélecteur de fichiers. Je vous encourage à l'essayer, en gardant à l'esprit que « ** » active un sélecteur de fichiers par défaut.
SSH
SSH reçoit un traitement spécial. La complétion par ** vous permet de rechercher des hôtes flous à partir de votre configuration SSH, des hôtes connus et de /etc/hosts.
ssh **
Git
L'auteur de fzf fournit un script Git officiel appelé fzf-git.sh. Si vous suivez les instructions d'installation sur le README du référentiel, vous pouvez accéder à des complétions floues rapides sur les opérations Git.
Variables d'environnement
Exécutez la commande suivante pour connaître rapidement quelle est la valeur de n'importe quelle variable d'environnement.
env | fzf
Vous pouvez même rapidement supprimer une variable d'environnement avec fzf :
unset **
Systèmed
Systemd est le système d'initialisation de la plupart des distributions ; il gère le processus de démarrage, y compris les services système. La gestion des fichiers d'unité systemd est pénible, et le démarrage et l'arrêt des services bénéficient grandement d'un script basé sur fzf. Il existe un tel script, appelé fuzzy-sys. Pour l'utiliser, suivez les instructions du référentiel README du script, puis exécutez la commande suivante.
fuzzy-sys --status
Cela vous montrera l'état de n'importe quel service.
Il prend en charge plusieurs indicateurs, notamment démarrer, arrêter, activer et modifier, etc. Ce script facilite le choix d'un service ; désormais, vous n'avez plus besoin de taper des noms de services longs et gênants.
Fzf améliore considérablement la productivité du terminal et propose une liste complète de scripts communautaires. Les commandes complexes qui prenaient autrefois quelques minutes à écrire et à exécuter prennent désormais quelques secondes : écrire et exécuter plusieurs commandes compliquées en succession rapide est désormais incroyablement simple.
