J’ai arrêté de taper mes commandes Linux en entier après avoir découvert cette astuce simple

La touche Tab. Deux mots. Un réflexe qui change tout. Si tu passes plus de dix minutes par jour dans un terminal Linux et que tu tapes encore tes commandes lettre par lettre jusqu’au bout, je t’annonce que tu perds un temps précieux, et surtout que tu t’infliges une corvée totalement inutile.

L’autocomplétion dans le shell, c’est l’une de ces fonctionnalités qui existent depuis des décennies et que la moitié des utilisateurs ignorent ou sous-exploitent. Pas parce qu’elle est cachée, mais parce que personne ne t’a jamais montré jusqu’où elle va vraiment. Spoiler : bien plus loin que compléter un nom de fichier.

À retenir

  • Une touche oubliée fait disparaître 30% de tes frappes inutiles
  • L’historique cache une puissance que même les vétérans ignorent
  • Ton shell peut devenir aussi intelligent qu’un IDE avec deux changements simples

Tab, deux fois Tab, et le monde s’ouvre

Le cas de base, tu le connais peut-être : tu tapes cd Doc puis tu appuies sur Tab, et le shell complète avec Documents/. Basique, pratique, mais c’est là que beaucoup de gens s’arrêtent. Le vrai saut quantique arrive quand tu appuies sur Tab deux fois de suite sur une saisie incomplète. Le terminal affiche alors toutes les options disponibles correspondant à ce que tu as tapé. C’est ton filet de sécurité et ton moteur de découverte en même temps.

Mais là où ça devient franchement jouissif, c’est avec la complétion des commandes elles-mêmes. Tape git suivi d’un espace, puis appuie deux fois sur Tab : tu obtiens la liste complète des sous-commandes git disponibles. Pareil avec apt, systemctl, docker… Le shell ne complète pas que les fichiers, il complète les arguments des programmes, les options, les flags. Sous Bash avec bash-completion installé, ou encore mieux sous Zsh, c’est une expérience quasi-contextuelle.

Le petit détail que j’adore : quand il n’y a qu’une seule option possible, Tab complète instantanément sans rien afficher. Quand il y en a plusieurs, il liste. Ce comportement dit beaucoup sur la philosophie Unix en général : le terminal ne te prend pas la main, il t’assiste exactement là où tu en as besoin.

L’historique, cette mine d’or que personne n’exploite vraiment

Deuxième astuce qui m’a sauvé des heures : Ctrl+R. Cette combinaison lance une recherche inversée dans l’historique de tes commandes. Tu tapes Ctrl+R, puis quelques lettres d’une commande que tu as tapée un jour, et le shell remonte dans son historique pour te proposer la correspondance la plus récente. Tu peux continuer à appuyer sur Ctrl+R pour remonter encore plus loin.

Imagine que tu te souviens vaguement avoir tapé une longue commande ffmpeg la semaine dernière avec des dizaines d’options. Plutôt que de fouiller dans ~/.bash_history à la main ou de tout retaper, tu fais Ctrl+R, tu tapes « ffmpeg », et hop. Le fait que l’historique bash puisse stocker plusieurs milliers de commandes avec les bonnes options dans .bashrc (HISTSIZE=10000, HISTFILESIZE=20000) transforme cette recherche en quelque chose de vraiment puissant.

Un chiffre qui m’a frappé quand j’y ai réfléchi : selon une étude sur les habitudes de développeurs publiée il y a quelques années, environ 30% des commandes tapées dans un terminal sont des répétitions quasi-identiques de commandes récentes. C’est presque un tiers de ton temps clavier qui pourrait être économisé avec Ctrl+R et la flèche du haut.

Zsh et Oh My Zsh : passer à la vitesse supérieure

Bash fait le job, mais si tu veux que l’autocomplétion devienne vraiment intelligente, le passage à Zsh est une décision que tu ne regretteras pas. Zsh propose une complétion bien plus fine : il complète en ignorant la casse, il corrige les petites typos, il te propose des menus navigables avec les flèches plutôt que de juste lister les options.

Avec Oh My Zsh par-dessus (un framework de configuration qu’on installe en une ligne depuis le terminal), tu accèdes à des plugins qui boostent la complétion pour des outils spécifiques : git, kubectl, terraform, npm… Chaque plugin comprend les commandes de son écosystème et te guide dans les arguments. C’est la différence entre un assistant qui répond « oui » ou « non » et un assistant qui comprend le contexte de ta question.

Un petit truc tout simple que j’utilise quotidiennement dans Zsh : quand tu fais une faute dans un chemin de répertoire, Zsh peut le corriger automatiquement. Tu tapes cd /usr/lcal/bin au lieu de /usr/local/bin, il te demande si tu voulais dire la version corrigée. Petit détail, gain de temps réel sur des dizaines de manipulations par jour.

Les alias : construire ton propre langage de terminal

L’autocomplétion te fait gagner du temps sur ce que tu tapes. Les alias te font gagner du temps sur ce que tu penses. Ajouter dans ton .bashrc ou .zshrc une ligne du type alias gs='git status' ou alias ll='ls -lah', c’est construire un vocabulaire personnel dans le shell.

Le truc puissant, c’est que l’autocomplétion marche aussi sur tes alias. Si tu définis alias dco='docker-compose', Zsh avec les bons plugins complétera quand même les sous-commandes de docker-compose après dco. Tu as la brièveté de l’alias et l’intelligence de la complétion.

Certains développeurs poussent ça très loin avec des fonctions shell, des alias dynamiques, voire des outils comme fzf (un fuzzy finder en ligne de commande) qui transforme la recherche dans l’historique en quelque chose de visuellement interactif. À ce stade, ton terminal commence à ressembler à un IDE taillé exactement à tes besoins, et plus à l’outil intimidant que tu contournais au profit de l’interface graphique.

La vraie question que ça soulève, c’est pourquoi ces fonctionnalités ne sont pas activées par défaut sur toutes les distributions. Bash sans bash-completion installé, c’est comme livrer une voiture sans rétroviseurs : ça roule, mais c’est inutilement dangereux. Les distributions modernes font des progrès, mais il y a encore des configs minimales où Tab ne complète rien d’autre que les fichiers. Si tu bosses souvent sur des serveurs fraîchement provisionnés, mettre en place ta config de base en deux minutes est probablement la meilleure habitude que tu puisses prendre.

Leave a Comment