Optimiser les recherches dans son terminal comme un chef

fzf
Dernière mise a jour 05 Oct 2021 a 07:11

Dans ma vie d’éternel apprenti informaticien, j’ai souvent des échecs. Mais il m’arrive parfois aussi d’avoir des grands bons en avant. Ça se joue souvent à quelques détails.Des techniques, des astuces qui marquent un tournant et te font progresser d’un coup. A tel point que tu te demandes comment tu faisais avant …Du coup, aujourd’hui j’ai décidé de te partager deux de ces techniques qui ont chamboulé ma vie de petit padawan linuxien.Je les utilise tout le temps pour rechercher une commande , un fichier , un nom d’hôte dans mon terminal. Et elles sont redoutables d’efficacité [/teasing]

« CTRL+R » : les 2 touches qui font mouche

Le raccourci clavier incontournable du terminal: « CTRL+R » .Si tu es adminsys aguerri , je suppose que je ne t’apprends rien sur ce coup là ,donc tu peux sauter directement à la seconde technique.

Pour les autres, la combinaison de touches « Ctrl+r » va vous faire gagner beaucoup de temps. Je l’utilise au quotidien déjà depuis plusieurs années.Elle fait désormais partie intégrante de mes réflexes digitaux lorsque je tapote sur un shell.

Cas d’usage:
tu veux rappeler une commande super complexe que tu as tapée ya quelques jours. Pas de soucis , tu ouvres un terminal et tu tapes « ctrl+r » pour passer en mode recherche.Tu commences à écrire n’importe quel mot ou occurrence que contient la commande que tu cherches . Peu importe la position de ce mot dans la ligne de commande.
Le résultat s’affiche en temps réel en commençant par la commande la plus récente. Si cette dernière n’est pas celle que tu recherchais , tu rappuies sur « ctrl+R » jusqu’à retrouver la bonne.

Exemple : je cherche une commande « python ». Je commence à taper « p », « y », « t »…

Voilà si tu débutes en administration système et que tu n’avais qu’un seul raccourci clavier à retenir , ce serait celui là. Et ne m’oblige pas à le réécrire une vingtième fois 🙂

Pour augmenter ton skill niveau recherche, voici ma deuxième astuce:

l’outil « fzf »: l’omnipotence à portée de doigts

FZF pour fuzzy finder est un outil multiplate-forme qui permet d’optimiser comme un dude ses recherches dans un terminal. Sa puissance est phénoménale et on peut l’installer et l’associer à bash ou zsh.

Pour la petite histoire, ce tool je l’ai découvert tout récemment au cours d’un des lives twitch d’imil, »le gourou bsd fou ». Si vous ne savez pas qui est imil et surtout ce qu’il fait , je vous encourage vivement à mater sa série de vidéos notamment intitulées « linux (vraiment) from scratch« . Vous apprendrez plein de trucs de barbus et il vous fera plonger dans les entrailles d’un système Linux.On se laisse facilement embarquer dans son univers de dingo « bsdien ». Voilà fin de l’aparté, retour à fzf.

ok « fzf » il fait quoi au juste?

Il fonctionne comme un filtre et agit sur son entrée standard.L’une de ses grandes forces est qu’il permet des recherches approximatives en mode interactif. Il suffit de taper des lettres ou mot à rechercher, fzf va afficher toutes les lignes qui contiennent ces lettres peu importe qu’elles forment ou non un mot compréhensible. Bon un exemple vaut mieux que de longs discours:

j’ai un fichier fruits.txt qui contient:

pomme
poire
patate

je le passe en entrée à fzf:

cat fruits.txt | fzf

  • je tape « m »->1 résultat : m’affiche que pomme
  • je tape « o » ->2 résultats :m’affiche pomme et poire
  • je tape « e »-> 3 résultats :m’affiche pomme ,poire,patate

Bon cet exemple est un peu bidon je te l’accorde , mais l’idée est là et ça illustre bien le principe de la recherche avec fuzzy finder.

Autre exemple que tu peux tester dans ton shell:

find . | fzf

Rechercher dans son historique:

Donc, on l’a vu tout à l’heure, « CTRL + r » c’est la vie. Mais associé à « fzf » c’est la vie éternelle 🙂 Aujourd’hui je ne parlerai que de ce cas d’usage . Mais sache qu’il est possible de l’utiliser de multiples manières pour éditer des fichiers, générer des aperçus etc

Alors je reprends le cas de tout à l’heure, où je recherche ma commande « python » dans l’historique de mon bash. Un ptit « ctrl+r » et cette fois j’ai la liste des résultats en temps réels que je peux affiner au fur et à mesure, en la parcourant et en sélectionnant la ligne qui m’intéresse.

Pour parcourir les résultats, suffit d’utiliser « ctrl+j » et « ctrl+k » et de sélectionner avec « entrée ».

Le mieux pour te persuader de son utilité c’est de l’essayer.

Installer fzf:

A partir du dépôt officiel:

git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf

~/.fzf/install

On répond « yes » pour l’autocompletion et le « key-binding »

FZF est puissant. Il peut permettre d’avoir des aperçus d’arbos, d’éditer des fichiers directement après une recherche…les possibilités sont immenses, je n’ai fait qu’effleurer l’une d’entre elle dans ce billet.Je te laisse les découvrir (voir ci-dessous)

Ah oui j’oubliais , si toi aussi tu as un conseil , une astuce pour faire gagner du temps et de l’agilité , n’hésite pas à la partager dans les commentaires 🙂

Liens utiles pour aller plus loin:

https://www.armandphilippot.com/article/fzf-fuzzy-finder-recherche-linux/
https://github.com/junegunn/fzf
https://sim590.github.io/fr/outils/fzf/

5 commentaires sur Optimiser les recherches dans son terminal comme un chef

Leave a Reply

Votre adresse de messagerie ne sera pas publiée.


*