Avez-vous déjà exécuté sans le savoir une commande contenant une faute de frappe ? Eh bien, vous pouvez simplement appuyer sur la flèche HAUT / BAS pour afficher l'historique des commandes, trouver la commande mal orthographiée, modifier la faute de frappe et enfin la réexécuter. C'est ce que la plupart d'entre nous font habituellement ! Cependant, il existe également d'autres moyens de corriger les fautes de frappe dans les commandes saisies précédemment. Dans ce didacticiel, nous verrons toutes les manières possibles de corriger les erreurs dans les commandes de console précédentes sous Linux et Unix.
Avis de non-responsabilité :
Cet article contient un NSFW (Pas sûr pour le travail) et un mot inhabituel à certains endroits. Même si j'ai légèrement masqué ce mot, je ne pouvais pas l'éviter complètement. Puisqu'il n'y a aucun moyen d'exclure ce mot, veuillez accepter mes excuses à l'avance si ce message vous a mis mal à l'aise et si je vous ai offensé de quelque manière que ce soit.
1. Corrigez les erreurs dans les commandes de console précédentes à l'aide de l'application "thef*ck"
L'utilitaire f*ck est utilisé pour corriger les erreurs et les fautes de frappe dans les commandes précédemment exécutées sous Linux.
Avez-vous exécuté une commande avec une faute de frappe à la hâte ? Avez-vous oublié d'ajouter sudo
dans une commande ? Aucun problème! Cette application affichera automatiquement la ou les commandes corrigées pour la commande précédemment exécutée !!
Vous pouvez choisir la bonne commande et appuyer sur ENTER pour l'exécuter. Pas besoin de naviguer dans l'historique des commandes pour corriger manuellement la faute de frappe dans une commande !
Le développeur de cette application s'est inspiré d'un tweet et fait cette application cool. Il est écrit en langage Python. Il s'agit d'une application open source et son code est accessible au public sur GitHub.
1.1. Mise en place
Nous pouvons l'installer en utilisant soit le PiP gestionnaire de packages ou le gestionnaire de packages par défaut de la distribution.
Assurez-vous d'avoir installé PiP .
Après avoir installé PiP, exécutez la commande suivante pour l'installer comme ci-dessous :
$ pip3 install --user thefuck
Cela installera la dernière version disponible.
Il est également fourni pour de nombreuses distributions Linux et Unix, vous pouvez donc l'installer à l'aide du gestionnaire de packages par défaut de votre distribution. Reportez-vous à la page GitHub du projet (donnée à la fin) pour savoir comment l'installer à l'aide du gestionnaire de packages du système d'exploitation.
1.2. Configuration
Il est recommandé d'ajouter la ligne suivante dans votre .bash_profile
, .bashrc
, .zshrc
ou un autre script de démarrage.
$ nano ~/.bashrc
Ajoutez la ligne suivante :
eval $(thefuck --alias fixthis)
Ici, j'ai utilisé 'fixthis' comme alias. Vous pouvez utiliser ce que vous voulez comme alias.
Appuyez sur Ctrl+o
et ENTER pour enregistrer le fichier et Ctrl+x
pour le fermer.
Exécutez la commande suivante pour mettre à jour les modifications :
$ source ~/.bashrc
1.3. Utilisation
Le 'fixthis' fonctionne sur la base d'un ensemble de règles intégrées. La liste complète des règles activées est disponible ici. Vous pouvez également créer vos propres règles.
Lors de l'exécution d'une commande mal saisie, il tentera de faire correspondre la commande précédente avec une règle. Si une correspondance est trouvée, une nouvelle commande est créée à l'aide de la règle correspondante et exécutée.
Voyons quelques exemples.
Je vais mettre à jour mon système Manjaro en utilisant la commande suivante en tant qu'utilisateur normal :
$ pacman -Syu
Exemple de résultat :
error: you cannot perform this operation unless you are root.
Comme vous pouvez le voir, la commande ci-dessus affiche une erreur d'autorisation. Parce que je n'ai pas ajouté sudo
devant la commande.
Pas besoin d'ajouter sudo
et relancez la commande. Tout ce que vous avez à faire est d'exécuter la commande 'fixthis' comme ci-dessous :
$ fixthis
Maintenant, il listera la suggestion de commande valide pour la commande précédemment exécutée.
Si c'est celui que vous voulez exécuter, appuyez simplement sur ENTER pour l'exécuter. Si ce n'est pas le cas, appuyez sur les flèches HAUT/BAS pour afficher les autres commandes suggérées.
Dans mon cas, j'utilise la première, qui est la bonne commande, comme indiqué dans la sortie ci-dessous.
sudo pacman -Syu [enter/↑/↓/ctrl+c]
Voir? Si la commande précédente échoue en raison d'une erreur d'autorisation, l'application 'fixthis' ajoutera à la commande sudo
et exécutez-le à nouveau. Cool, non ? Pour abandonner l'exécution de la commande, appuyez sur ctrl+c .
De même, si vous avez exécuté une commande mal orthographiée, il corrigera la faute d'orthographe et exécutera à nouveau la commande.
$ pithon
Exemple de résultat :
bash: pithon: command not found
$ fixthis python3 [enter/↑/↓/ctrl+c]
Si vous souhaitez corriger les commandes de manière récursive jusqu'à ce qu'elles réussissent, vous pouvez utiliser le -r
choix :
$ fixthis -r
Voir ci-dessous le screencast officiel réalisé par son développeur pour plus d'exemples.
Bien qu'elle soit super utile pour corriger rapidement les fautes de frappe et les erreurs dans les commandes Linux, cette application porte un nom sensible et inapproprié, vous ne voudrez donc peut-être pas l'utiliser dans certaines situations.
Si vous vous sentez mal à l'aise lors de l'exécution de cette commande dans de telles situations, vous pouvez simplement créer un alias (par exemple, s'il vous plaît, réparez ceci) comme indiqué dans la section "Configuration" ci-dessus.
2. Corrigez les erreurs dans les commandes à l'aide de Fix
Le correctif est un autre utilitaire sympa qui nous aide à corriger rapidement les erreurs ou les fautes de frappe dans une commande. Même si le correctif fait la même chose que thef*ck, il diffère légèrement.
Thef*ck est fort en syntaxe alors que le Fix est meilleur lorsque l'aspect sémantique est important. Thef*ck ne peut pas vous dire quel package installer lorsque l'exécution d'un script ne fonctionne pas.
L'utilitaire Fix est destiné à être utilisé lorsque vous ne savez pas comment le réparer vous-même. Il suggère quelques solutions pour les commandes mal saisies ou mal orthographiées.
Il utilise l'IA Codex d'OpenAI proposer toutes les solutions possibles pour corriger les erreurs dans les commandes. Tout ce que vous avez à faire est de faire précéder la commande de "fix", et l'IA vous proposera des solutions optimales.
2.1. Installer le correctif sous Linux
L'installation de Fix est facile !
1. Tout d'abord, vous devez avoir accès à l'API Codex d'OpenAI .
2. Et git clonez le dépôt :
$ git clone https://github.com/tom-doerr/fix.git
Il clonera le contenu du référentiel github du projet dans un dossier local nommé 'fix
'.
3. cd dans le répertoire 'fix' :
$ cd fix
4. Ajoutez main.py
à votre $PATH :
$ cp $PWD/main.py ~/.local/bin/fix
2.2. Utilisation
Pour corriger une commande mal saisie, ajoutez simplement "fix" devant la commande comme ci-dessous :
$ fix mkdir abc/def
Pour corriger la dernière commande, faites simplement :
$ fix !!
L'IA génère principalement de mauvaises solutions, mais suffisamment de solutions générées fonctionnent réellement pour qu'elle soit utile.
Voici la démo visuelle de l'application Fix.
Suggestion de lecture :
- Différentes façons de répéter votre dernière commande sous Linux
3. Corrigez les commandes Bash mal orthographiées avec le symbole Caret
Cette astuce ne fonctionnera que sur BASH.
Cette astuce est très simple. Nous remplaçons simplement le mot mal saisi avec le mot correct en utilisant Caret (^ ) symbole.
Disons que vous voulez créer un répertoire avec 'mkdir
' commande. Mais, vous avez manqué le 'i
' dans la commande et saisi 'mkdr
' à la place comme ci-dessous.
$ mkdr ostechnix bash: mkdr: command not found
Pour corriger la faute de frappe dans la commande ci-dessus, nous pouvons simplement remplacer 'dr
' avec 'dir
' avec le symbole Caret comme ci-dessous :
$ ^dr^dir^
Maintenant, Bash interprétera cela comme 'mkdir
' et exécutez-le et affichez la sortie comme indiqué ci-dessous.
mkdir ostechnix
4. Corriger les fautes de frappe lors de l'utilisation de la commande cd
J'ai souvent essayé de taper rapidement dans la console et de me retrouver avec des fautes de frappe lorsque cd
dans un répertoire.
$ cd Pctures bash: cd: Pctures: No such file or directory
Il me manquera un mot ou deux lors de la saisie du nom du répertoire. Si vous êtes comme moi, voici comment corriger automatiquement les fautes de frappe lors de l'utilisation de cd
commande.
Pour résoudre ce problème, modifiez ~/.bashrc
fichier :
$ nano ~/.bashrc
Ajoutez la ligne suivante à la fin :
shopt -s cdspell
Appuyez sur Ctrl+o
et ENTER pour enregistrer le fichier et Ctrl+x
pour le fermer.
Exécutez la commande suivante pour mettre à jour les modifications :
$ source ~/.bashrc
À partir de maintenant, votre shell reconnaît automatiquement le chemin d'accès correct au répertoire même s'il a fait une faute de frappe.
Cette astuce a quelques inconvénients. Le cas et l'ordre est important.
Par exemple, si vous utilisez 'images' au lieu de 'Images' , il ne reconnaîtra pas le chemin. Ici, j'ai utilisé des minuscules 'p' pour le répertoire 'Images' .
$ cd Pctures bash: cd: Pctures: No such file or directory
Aussi si vous utilisez 'Pctrues' au lieu de 'Images' , il ne reconnaîtra toujours pas le chemin du répertoire même si vous utilisez la casse correcte et se plaint qu'il n'y a pas un tel fichier ou répertoire.
$ cd Pctrues bash: cd: Pctrues: No such file or directory
Ici, j'ai changé l'ordre des lettres du répertoire 'Images'.
De plus, s'il manque plus d'une lettre dans le chemin du répertoire, cela ne fonctionnera pas aussi bien.
Veuillez noter que cette astuce ne concerne que 'cd
' commande. De plus, cette astuce ne concerne que Bash. Dans Fish and Zsh, cette fonctionnalité est intégrée.
Bonus - Suggérer l'installation du package lors de l'exécution d'une commande manquante
Vous avez dû remarquer que lorsque vous exécutez une commande indisponible, vous obtenez un message d'erreur comme ci-dessous :
bash: ....: command not found
Si vous savez quel package fournit la commande manquante, vous pouvez simplement installer ce package et réexécuter la commande à nouveau. Cependant, si vous ne le savez pas, vous aurez peut-être besoin d'un peu d'aide.
Pour atténuer ce problème, il existe un package appelé 'command-not-found '. Cela vous proposera une liste de packages à installer pour utiliser la commande indisponible.
Il recherchera automatiquement les dépôts officiels, lors de la saisie d'une commande non reconnue ou indisponible. Pour plus de détails, consultez le lien suivant.
- Suggérer l'installation de packages lors de l'exécution d'une commande non disponible
Conclusion
Voilà! Voici quelques façons de gérer les fautes de frappe et les erreurs de ligne de commande dans les systèmes Linux et Unix. Vous pouvez choisir celui qui vous convient ou utiliser une combinaison de deux ou plus. Par exemple, j'utilise de temps en temps "Fix" et "thef*ck" pour corriger les erreurs et les fautes de frappe dans les commandes de la console.