8 fautes de frappe que vous devez vraiment éviter sous Linux

Publié: 2023-01-15
Gros plan d'une touche du clavier étiquetée "Oups !"
Redpixel.pl/Shutterstock
Vérifiez que vous avez correctement tapé votre commande avant d'appuyer sur "Entrée". Sous Linux, une faute de frappe peut avoir des répercussions destructrices. Utilisez la complétion par tabulation pour remplir automatiquement autant d'entrées de ligne de commande que possible. Les alias pour les commandes longues et compliquées sont également une excellente idée.

La ligne de commande Linux offre une grande puissance. Le problème est que l'utilisation correcte de ce pouvoir dépend de la précision de votre frappe. Voici huit fautes de frappe que vous ne voudrez jamais faire.

Table des matières

La ligne de commande Linux
1. N'oubliez pas le -a
2. Utilisation du mauvais identifiant de lecteur avec dd
3. Utilisation du mauvais identifiant de lecteur avec mkfs
4. Ne supprimez pas votre fichier crontab
5. Répéter l'histoire
6. La calamité des espaces
7. Utiliser > au lieu de >>
8. Redirection dans la mauvaise direction
Comment éviter les fautes de frappe sur la ligne de commande

La ligne de commande Linux

La ligne de commande Linux est un portail vers une grande puissance, mais une faute de frappe suffit pour que cette puissance se retourne contre vous. Nous avons tous entendu parler de la commande que vous ne devriez jamais exécuter. Ce dont nous parlons ici, ce sont des commandes que vous voulez exécuter, mais où une erreur peut signifier un désastre.

Lorsque vous appuyez sur "Entrée", tout ce que vous avez tapé est traité par le shell. Les alias et les variables sont développés. Les commandes, les options et les paramètres sont identifiés. C'est ce qu'on appelle l'analyse. L'étape suivante transmet votre entrée analysée aux commandes qui vont exécuter vos instructions.

Si vous faites une erreur lorsque vous tapez vos commandes, cela peut être pris comme une erreur de syntaxe. Mais si votre erreur crée une autre ligne de commande valide, elle sera exécutée.

Une simple faute de frappe peut être vraiment destructrice. Le niveau de destruction dépend de la commande et de l'erreur. Vous pourriez perdre du temps. Vous pourriez perdre un fichier. Vous pourriez perdre un système de fichiers entier.

CONNEXION: Qu'est-ce que le shell Bash et pourquoi est-il si important pour Linux?

1. N'oubliez pas le -a

Vous devrez peut-être ajouter quelqu'un à un groupe pour lui permettre, par exemple, d'utiliser un logiciel particulier. Par exemple, VirtualBox exige que les utilisateurs fassent partie du groupe "vboxusers". Nous pouvons le faire avec usermod .

La commande groups répertorie les groupes d'un utilisateur.

 groupes 

Lister les groupes d'un utilisateur avec la commande groups

Nous ajouterons l'utilisateur dave à un nouveau groupe. L'option -a (ajouter) ajoute le nouveau groupe à la liste des groupes existants dans lesquels se trouve l'utilisateur. L'option -G (groupes) identifie le groupe.

 sudo usermod -a -G vboxusers dave 

Ajouter un utilisateur à un nouveau groupe à l'aide de la commande usermod

Le nouveau groupe est visible une fois que l'utilisateur s'est connecté et déconnecté.

 groupes 

Le groupe vboxusers affiché dans la liste des groupes dans lesquels cet utilisateur se trouve

Il est maintenant dans le groupe "vboxusers". Cependant, si vous oubliez d'utiliser l'option -a (ajouter), tous les groupes existants de l'utilisateur sont supprimés. Le seul groupe dans lequel ils seront, c'est le nouveau groupe.

C'est la mauvaise commande :

 sudo usermod -G vboxusers dave 

Ajouter un utilisateur à un groupe sans utiliser l'option -a append

Lorsqu'ils se connecteront ensuite, ils constateront qu'ils ne font partie que d'un seul groupe.

 groupes 

L'utilisateur est maintenant dans un seul groupe

Si vous avez un seul utilisateur configuré et que vous lui faites cela, vous aurez de sérieux problèmes. D'une part, l'utilisateur n'est plus membre du groupe "sudo", vous ne pouvez donc pas utiliser sudo pour commencer à corriger les choses.

CONNEXION : Ajouter un utilisateur à un groupe (ou un deuxième groupe) sous Linux

2. Utilisation du mauvais identifiant de lecteur avec dd

La commande dd écrit des blocs de données dans les systèmes de fichiers. Il est souvent utilisé pour écrire des images ISO sur des clés USB.

Le schéma de nommage Linux pour les périphériques de stockage utilise une seule lettre pour l'identification. Le premier disque dur est nommé "/dev/sda", le second est "/dev/sdb", le troisième est "/dev/sdc", et ainsi de suite. Les partitions sont identifiées par un numéro. La première partition sur le premier disque dur est "/dev/sda1", la seconde est "/dev/sda2", et ainsi de suite.

Si vous gravez une image sur une clé USB, vous devez connaître l'identifiant de lecteur de la clé USB. Nous le découvrirons en lsblk via grep , en recherchant les entrées contenant « sd ».

 lsblk | grep sd 

Utilisation de grep pour rechercher des lignes contenant "sd" dans la sortie de la commande lsblk

Nous pouvons voir que le disque dur "/dev/sda" est un disque de 32 Go avec trois partitions. L'une des partitions est la partition "/boot", et la partition "/dev/sda3" est montée sur "/", qui est la racine du système de fichiers.

Le disque dur "/dev/sdb" est signalé comme un disque de 7,5 Go. Il est monté sur "/media/dave/Pink". En clair, le lecteur "/dev/sda" est le disque dur principal de cet ordinateur et "/dev/sdb" est la clé USB.

La commande pour écrire un fichier ISO qui se trouve dans le répertoire "~/Downloads" sur notre clé USB est :

 sudo dd bs=4M if=Téléchargements/distro-image.iso of=/dev/sdb conv=fdatasync status=progress 

Ecrire une image sur une clé USB avec la commande dd

On nous demande notre mot de passe, puis dd plonge dans l'action. Il n'y a pas de "Êtes-vous sûr?" des avertissements ou des chances de reculer. L'écriture commence immédiatement.

L'affichage de la progression dd lors de l'écriture d'une image sur une clé USB

Cependant, si vous tapez la mauvaise lettre pour l'identifiant du lecteur et qu'elle correspond à un disque dur existant, vous écraserez ce lecteur au lieu de la clé USB.

C'est la mauvaise commande :

 sudo dd bs=4M if=Téléchargements/distro-image.iso of=/dev/sda conv=fdatasync status=progress 

L'écriture erronée d'une image sur le disque dur principal se termine par un message d'erreur

Nous avons dit à dd d'utiliser « /dev/sd a », c'est ce qu'il a fait. L'action d'écriture est beaucoup plus rapide, mais se termine par un avertissement. Vous venez de supprimer votre installation Linux.

Vérifiez et revérifiez les identifiants de lecteur avant d'appuyer sur "Entrée".

CONNEXION: Comment graver un fichier ISO sur une clé USB sous Linux

3. Utilisation du mauvais identifiant de lecteur avec mkfs

Il existe d'autres commandes qui prennent les identifiants de lecteur dans leur ligne de commande, comme les outils mkfs . Ces lecteurs formatent en créant des systèmes de fichiers sur des partitions.

Sur cet ordinateur, nous avons un lecteur de 25 Go et un lecteur de 10 Go.

La sortie de lsblk acheminée via grep, affichant les disques durs d'un ordinateur

Si nous voulons créer un système de fichiers Ext4 sur la première partition du lecteur de 10 Go, nous utiliserons ces commandes.

 sudo umount /dev/sdb1
 sudo mkfs.ext4 /dev/sdb1 

Création d'un système de fichiers ext4 sur une clé USB

Mais si nous commettons l'erreur d'utiliser un "a" au lieu d'un "b" dans l'identifiant du lecteur, nous effacerons l'une des partitions du lecteur de 25 Go et rendrons notre ordinateur impossible à démarrer.

C'est la mauvaise commande :

 sudo umount /dev/sda1
 sudo mkfs.ext4 /dev/sda1 

Formatage par erreur du disque principal d'un ordinateur

Cette petite lettre a du punch, alors assurez-vous que vous appuyez sur le bon lecteur.

CONNEXION : Comment utiliser la commande mkfs sous Linux

4. Ne supprimez pas votre fichier crontab

Le démon cron exécute des tâches à des moments prédéterminés pour vous. Il prend sa configuration à partir d'un fichier crontab . Chaque utilisateur, y compris root, peut avoir un fichier crontab . Pour modifier votre crontab , utilisez cette commande :

 crontab -e 

La commande pour éditer votre fichier crontab : crontab -e

Le fichier crontab est ouvert dans un éditeur. Vous pouvez apporter des modifications et ajouter de nouvelles commandes.

Un fichier crontab ouvert dans un éditeur

Mais si vous tapez mal la commande et appuyez sur "r" au lieu de "e", vous supprimerez - comme dans supprimer - votre fichier crontab .

C'est la mauvaise commande :

 crontab -r 

La commande qui supprime votre fichier crontab : crontab -r

La prochaine fois que vous utiliserez la commande crontab -e , vous verrez un fichier vide par défaut.

C'est une erreur facile à faire, car "e" et "r" sont côte à côte sur la plupart des claviers. Reconstruire un fichier crontab compliqué n'est pas amusant.

EN RELATION : Qu'est-ce qu'un travail Cron et comment les utilisez-vous ?

5. Répéter l'histoire

L'utilisation de la commande d' history est idéale lorsque vous essayez de réduire les frappes et de gagner du temps. Si vous pouvez extraire une commande de longue haleine de l'historique, vous gagnez en rapidité et en précision. Tant que vous sélectionnez la bonne commande dans votre historique.

La commande history répertorie vos commandes précédentes dans la fenêtre du terminal. Ils sont numérotés. Pour réutiliser une commande, faites précéder son numéro d'un point d'exclamation " ! ", et appuyez sur la touche "Entrée".

 l'histoire 

Supposons que nous ayons cloné un référentiel Git, que nous nous soyons retrouvés dans le pétrin et que nous l'ayons supprimé. Nous devons le cloner une fois de plus. En faisant défiler la fenêtre du terminal, nous pouvons bientôt repérer la commande git clone . Nous pouvons le relancer en tapant :

 !60

Mais si nous avons seulement jeté un coup d'œil à l'écran et mal lu le numéro, nous pourrions choisir le numéro suivant par erreur :

 !61

Cela exécute la commande suivante dans la liste, rm * . Cela supprime tous les fichiers de votre répertoire actuel.

Vous pouvez également utiliser le « ! ” point d'exclamation avec une chaîne de texte. La première commande correspondante est exécutée pour vous. Il n'est pas affiché pour que vous puissiez vérifier que c'est bien celui auquel vous pensiez, il est exécuté immédiatement.

Imaginez le scénario où vous avez un script appelé "restart.sh". Ce script définit par défaut un ensemble de fichiers de configuration pour certains logiciels que vous écrivez. Périodiquement, au fur et à mesure que vous développez et testez, vous devez effacer l'ardoise, vous appelez donc votre script.

Cette commande devrait être suffisante pour trouver et faire correspondre la commande dans votre historique, et pour l'exécuter.

 !concernant

Mais si vous avez utilisé la commande reboot depuis la dernière fois que vous avez utilisé votre script, c'est la commande reboot qui est trouvée et immédiatement exécutée.

La commande rm * étant exécutée par erreur

Sur votre ordinateur domestique mono-utilisateur, ce n'est probablement qu'une gêne. Sur un serveur partagé, c'est aussi une gêne pour beaucoup d'autres personnes.

CONNEXION: Comment utiliser la commande history sous Linux

6. La calamité des espaces

Les espaces dans les noms de fichiers et les chemins de répertoire peuvent causer des ravages. C'est pourquoi ils doivent toujours être échappés ou cités.

Comment gérer les espaces dans les noms de fichiers sous Linux
CONNEXION Comment gérer les espaces dans les noms de fichiers sous Linux

Les problèmes d'espaces peuvent être évités en utilisant la complétion par tabulation. Appuyez sur la touche "Tab" lorsque vous tapez un nom de fichier ou un chemin de répertoire et le shell complétera automatiquement autant de chemin ou de nom de fichier qu'il le peut. Vous devrez peut-être taper une lettre pour différencier le fichier que vous voulez et tout autre fichier qui partage une partie du même nom, mais une autre pression sur la touche "Tab" complétera le reste du nom de fichier pour vous.

Cela permet d'économiser sur les frappes, empêche les espaces de s'infiltrer à cause des fautes de frappe et échappe correctement à tous les espaces légitimes afin qu'ils ne causent pas de problèmes.

Disons que nous avons un répertoire « Development » qui contient deux autres répertoires, « geocoder » et « bin ». Il y a aussi un répertoire "bin" à l'intérieur du répertoire "geocoder".

Pour supprimer les fichiers du répertoire "geocoder/bin" et supprimer le répertoire, vous devez utiliser cette commande.

 rm -r géocodeur/bin 

Suppression du répertoire geocoder/bin

Imaginez maintenant que vous avez ajouté par inadvertance un espace après "geocoder/", comme ceci.

C'est la mauvaise commande :

 rm -r géocodeur/bin 

Suppression par erreur des répertoires geocoder et bin

Boom. Le répertoire "Développement" est maintenant vide. Les répertoires "Development/geocoder", "Development/geocoder/bin" et "Development/bin" ont tous été complètement effacés.

N'oubliez pas que l'achèvement des onglets est votre ami.

CONNEXION : Utilisez l'achèvement des onglets pour taper des commandes plus rapidement sur n'importe quel système d'exploitation

7. Utiliser > au lieu de >>

La redirection envoie la sortie d'un processus vers un fichier. Nous utilisons le signe supérieur à « > » pour capturer la sortie d'un processus. Si le fichier existe, il est d'abord vidé.

Disons que nous enquêtons sur une fuite de mémoire. Nous avons un script appelé "memlog.sh". Il affiche les statistiques de la mémoire une fois par seconde. Nous allons rediriger cela dans un fichier appelé "memory.txt", pour une analyse ultérieure.

 memlog.sh > mémoire.txt
 tête mémoire.txt 

Capture et affichage de la sortie du script memlog.sh

Le lendemain, nous voulons continuer notre enquête, et nous recommençons le script. Cette fois, nous devons utiliser deux signes supérieurs à " >> " pour que les nouvelles données soient ajoutées au fichier.

 memlog.sh >> mémoire.txt 

Ajout de nouvelles données à la fin d'un fichier existant

Si nous utilisons un seul signe supérieur à ">", nous perdrons les données d'hier car le fichier est vidé en premier.

CONNEXION: Qu'est-ce que stdin, stdout et stderr sous Linux?

8. Redirection dans la mauvaise direction

La redirection peut utiliser le contenu d'un fichier comme entrée d'un programme.

Nous avons un fichier appelé "placenames.sql" que nous voulons importer dans sqlite3 . Le fichier de schéma décrit comment recréer les tables de la base de données. Il contient également les données que nous voulons stockées dans la base de données. À 1,3 Go et plus de 11 millions de lignes, c'est un gros fichier.

 ls -hl noms de lieux.sql
 wc placenames.sql 

Vérification de la taille d'un fichier avec ls et wc

Nous pouvons créer une nouvelle base de données appelée "places.sqlite3" avec cette commande.

 sqlite3 places.sqlite3 < placenames.sql 

Importation d'un schéma à partir d'un fichier dans sqlite3

Le plus souvent, lorsque nous redirigeons, nous utilisons le caractère ">". Vous devez vous concentrer pour éviter de taper ">" par habitude. Si vous le faites, quelle que soit la sortie générée par sqlite3 , elle est écrite dans votre fichier de schéma, l'effaçant.

C'est la mauvaise commande :

 sqlite3 places.sqlite3 > placenames.sql 

Rediriger par erreur dans un fichier de schéma à partir de sqlite3

Notre fichier de schéma a été détruit, écrasé par le message de bienvenue du shell sqlite3 .

 noms de lieux de chat.sql 

Le fichier de schéma écrasé contenant le message de bienvenue sqlite3

Au revoir, 1,3 Go de données.

Comment éviter les fautes de frappe sur la ligne de commande

Il existe de bonnes habitudes que vous pouvez adopter pour éviter de commettre ce type d'erreurs.

Utilisez la saisie semi-automatique dans la mesure du possible. Vous éviterez les problèmes d'espaces dans les chemins de répertoire et les noms de fichiers.

Créez vos propres alias courts et mémorables pour les commandes longues et compliquées que vous devez parfois utiliser. De cette façon, vous ne vous tromperez pas en utilisant les mauvaises options et paramètres.

Comment taper moins et travailler plus vite dans le terminal Linux
CONNEXION Comment taper moins et travailler plus vite dans le terminal Linux

Il est notoirement difficile de relire votre propre écriture, mais c'est ce que vous devez faire sur la ligne de commande. Lisez ce qui est vraiment là. Ne vous contentez pas d'y jeter un coup d'œil et de penser qu'il dit ce que vous vouliez taper. Que dit-il vraiment ? Parce que c'est ce qu'il va vraiment faire.

CONNEXION: 8 commandes mortelles que vous ne devriez jamais exécuter sous Linux