in

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

Libre d'une touche du clavier étiquetée "Oops!"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.

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.

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 example, VirtualBox exige que les utilisateurs fassent partie du groupe « vboxusers ». Nous pouvons le faire avec usermod.

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

groups

Lister les groupes d'un utilisateur avec la commande groups

Nous ajouterons un utilisateur dave à un nouveau groupe. Les -a (ajouter) ajoute le nouveau groupe à la liste des groupes existants dans lesquels se trouve l’utilisateur. -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é.

groups

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 le -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 le Incorrect 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.

groups

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.

2. Utilisation du mauvais identifiant de lecteur avec dd

Les dd La commande écrit des blocs de données dans les systèmes de fichiers. Il est souvent utilisé pour écrire Images ISO sur 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 trouverons cela en sifflant lsblk par grepen recherchant les entrées contenant « sd ».

lsblk | grep sd

Utilisation de grep pour rechercher des lignes avec "Dakota du Sud" en eux, 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=Downloads/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 le Incorrect commande:

sudo dd bs=4M if=Downloads/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 utiliser « /dev/sdun“, donc c’est 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 ».

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, telles que les mkfs outils. 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 le Incorrect 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.

4. Ne supprimez pas votre fichier crontab

Les cron démon exécute des tâches à des heures prédéterminées pour vous. Il tire sa configuration d’un crontab dossier. Chaque utilisateur, y compris root, peut avoir un crontab dossier. Pour modifier votre crontabutilisez cette commande :

crontab -e

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

Les crontab le fichier 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 saisissez mal la commande et appuyez sur « r » au lieu de « e », vous supprimerez – comme dans supprimer – votre crontab dossier.

C’est le Incorrect commande:

crontab -r

La commande qui supprime votre fichier crontab : crontab -r

La prochaine fois que vous utiliserez le crontab -e commande, 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 complexe crontab fichier n’est pas amusant.

5. Répéter l’histoire

En utilisant le history La commande 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.

Les history La commande 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 ».

history

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 le git clone commande. 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.

!re

Mais si vous avez utilisé le reboot commande depuis votre dernier utilisé votre script, c’est le reboot commande 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.

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.

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 pourra. 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éter 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 geocoder/bin

Suppression du répertoire geocoder/bin

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

C’est le Incorrect commande:

rm -r geocoder/ 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.

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 un 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 > memory.txt
head memory.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 >> memory.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.

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 placenames.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 sqlite3 génère est écrit dans votre fichier de schéma, l’effaçant.

C’est le Incorrect 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 sqlite3 coquille.

cat placenames.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 votre propre court et mémorable des alias 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.

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.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Saviez-vous que vous pouvez obtenir une clé USB Lightning pour votre iPhone ?

Saviez-vous que vous pouvez obtenir une clé USB Lightning pour votre iPhone ?

Qu'est-ce qu'un Power Virus et comment peut-il détruire votre PC ?

Qu’est-ce qu’un Power Virus et comment peut-il détruire votre PC ?