GNU/Linux >> Tutoriels Linux >  >> Linux

Comment corriger les erreurs et les fautes de frappe dans les commandes de console précédentes sous Linux

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.


Linux
  1. 10 utilisations étonnantes et mystérieuses du symbole (!) ou de l'opérateur dans les commandes Linux

  2. Comment désactiver les commandes d'arrêt et de redémarrage sous Linux

  3. Qu'est-ce qu'une commande Chown sous Linux et comment l'utiliser

  4. Commandes Linux - Présentation et exemples

  5. linux :comment exécuter une commande dans un répertoire donné

Comment exécuter automatiquement les scripts et commandes de démarrage Linux

Comment corriger facilement les commandes Bash mal orthographiées sous Linux

Comment exécuter plusieurs commandes Linux en une seule commande

Comment installer et utiliser la commande fd sous Linux

Comment exécuter plusieurs commandes Linux à la fois dans le terminal Linux

Comment écrire et exécuter un programme C sous Linux