Korben, roi d’internet, logo bébé avec des lunettes en mode thug life Korben, roi d’internet, logo bébé avec des lunettes en mode thug life

Korben Upgrade your mind

TheFuck – La commande qui corrige vos commandes

Amis sous Linux, OSX ou BSD, si vos 10 doigts sont parfois plus rapides que votre cerveau, alors vous devez surement rager lorsque vous tapez une commande erronée dans votre terminal.

Heureusement, j’ai la solution ! Ça s’appelle TheFuck et c’est une application qui permet de corriger automatiquement la commande précédemment entrée.

Par exemple, si je tape « apt-get install vim » et que j’oublie de mettre « sudo » devant, je n’ai qu’à taper ensuite : fuck

Et ça corrige tout seul…

gif with examples

Voici quelques autres exemples :

git push
fatal: The current branch master has no upstream branch.
To push the current branch and set the remote as upstream, use

    git push --set-upstream origin master

➜ fuck
git push --set-upstream origin master [enter/ctrl+c]
Counting objects: 9, done.
====================================
puthon
No command 'puthon' found, did you mean:
 Command 'python' from package 'python-minimal' (main)
 Command 'python' from package 'python3' (main)
zsh: command not found: puthon

➜ fuck
python [enter/ctrl+c]
Python 3.4.2 (default, Oct  8 2014, 13:08:17)
...
 ===============================

Pratique non ?

TheFuck, c’est l’outil des gens pas réveillés et qui ont un peu de mal parfois, dans la vie. Bref, c’est pour moi et probablement pour vous !

Vous trouverez tous les détails ici.

Merci au gentil lecteur qui me l’a recommandé !



Réponses notables

  1. fofo says:

    ça marche si on écrit fcuk ou fcku ?
    sudo so
    fcku
    fuck

  2. @fofo : Ahaha, bonne question !

  3. C’est pas aussi rapide et simple à mémoriser que ‘fuck’, mais il y a des expressions incluses de base dans bash qui permettent de corriger une ancienne commande tapée.

    Quelques exemples :

    !!		= dernière commande
    !chaîne 	= dernière commande commençant par chaîne
    !?chaîne	= dernière commande incluant chaîne
    ^old^new	= dernière commande en remplaçant la 1e occurrence de old par new
    !!:gs/old/new 	= dernière commande en remplaçant toutes les occurrences de old par new
    

    Ça peut servir quand on doit retaper une très longue commande en modifiant juste un passage ou simplement quand on oublie de mettre sudo devant la dernière commande : sudo !!

    Par défaut, ces expressions ne sont pas développées, ce qui peut être ennuyeux parce qu’on ne voit pas à l’avance ce que bash va exécuter.
    Pour les développer en appuyant sur espace, il faut ajouter dans son .bashrc :

    bind Space:magic-space
    

    Puis relancer son terminal ou recharger la config’ de bash via :

    source ~/.bashrc

Continuer la discussion sur Korben Communauté

2 commentaires supplémentaires dans les réponses

Participants