Gestion de fichiers

Qu'est-ce que /dev/null et comment l'utiliser

Qu'est-ce que /dev/null et comment l'utiliser
Linux est un système d'exploitation intéressant qui héberge des périphériques virtuels à de nombreuses fins. En ce qui concerne les programmes exécutés dans le système, ces périphériques virtuels agissent comme s'il s'agissait de vrais fichiers. Les outils peuvent demander et alimenter des données à partir de ces sources. Les données sont générées par le système d'exploitation au lieu de les lire à partir d'un disque.

Un tel exemple est /dev/null. C'est un fichier spécial qui est présent dans chaque système Linux. Cependant, contrairement à la plupart des autres fichiers virtuels, au lieu de lire, il est utilisé pour écrire. Tout ce que vous écrivez dans /dev/null sera rejeté, oublié dans le vide. C'est ce qu'on appelle le périphérique nul dans un système UNIX.

Pourquoi voudriez-vous jeter quelque chose dans le vide? Voyons ce qu'est /dev/null et son utilisation.

Conditions préalables

Avant de plonger profondément dans l'utilisation de /dev/null, nous devons avoir une compréhension claire du sortie standard et stderr flux de données. Consultez ce guide détaillé sur standard, stderr, et sortie standard.

Faisons un rafraîchissement rapide. Chaque fois qu'un utilitaire de ligne de commande est exécuté, il génère deux sorties. La sortie va à sortie standard et l'erreur (si générée) va à stderr. Par défaut, ces deux flux de données sont associés au terminal.

Par exemple, la commande suivante imprimera la chaîne entre guillemets doubles. Ici, la sortie est stockée dans sortie standard.

$ echo "Bonjour tout le monde"

La commande suivante nous montrera l'état de sortie de la commande précédemment exécutée.

$ écho $?

Comme la commande précédente s'est exécutée avec succès, l'état de sortie est 0. Sinon, le statut de sortie sera différent. Que se passe-t-il lorsque vous essayez d'exécuter une commande invalide?

$ adfadsf
$ écho $?

Maintenant, nous devons connaître le descripteur de fichier. Dans l'écosystème UNIX, ce sont des valeurs entières affectées à un fichier. Tous les deux sortie standard (descripteur de fichier = 1) et stderr (descripteur de fichier = 2) ont un descripteur de fichier spécifique. En utilisant le descripteur de fichier (1 et 2 dans cette situation), nous pouvons rediriger le sortie standard et stderr vers d'autres fichiers.

Pour commencer, l'exemple suivant redirigera le sortie standard de la commande echo dans un fichier texte. Ici, nous n'avons pas spécifié le descripteur de fichier. Si non spécifié, bash utilisera sortie standard par défaut.

$ echo "Hello World" > log.SMS

La commande suivante redirigera le stderr dans un fichier texte.

$ asdfadsa 2> erreur.SMS

Utilisation de /dev/null

Rediriger la sortie vers /dev/null

Maintenant, nous sommes prêts à apprendre à utiliser /dev/null. Voyons d'abord comment filtrer la sortie normale et les erreurs. Dans la commande suivante, grep essaiera de rechercher une chaîne (bonjour, dans ce cas) dans le répertoire "/sys".

$ grep -r bonjour /sys/

Cependant, cela générera beaucoup d'erreurs car sans privilège root, grep ne peut pas accéder à un certain nombre de fichiers. Dans un tel cas, cela entraînera des erreurs « Autorisation refusée ». Maintenant, en utilisant la redirection, nous pouvons obtenir une sortie plus claire.

$ grep -r bonjour /sys/ 2> /dev/null

La sortie a l'air beaucoup mieux, à droite? Rien! Dans ce cas, grep n'a pas accès à beaucoup de fichiers et ceux qui sont accessibles n'ont pas la chaîne "hello".

Dans l'exemple suivant, nous allons envoyer un ping à Google.

$ ping google.com

Cependant, nous ne voulons pas voir tous ces résultats de ping réussis. Au lieu de cela, nous voulons uniquement nous concentrer sur les erreurs lorsque le ping n'a pas pu atteindre Google. Comment fait-on cela?

$ ping google.com 1> /dev/null

Ici, le contenu de sortie standard sont vidés dans /dev/null, ne laissant que les erreurs.

Rediriger toutes les sorties vers /dev/null

Dans certaines situations, la sortie peut ne pas être utile du tout. En utilisant la redirection, nous pouvons vider toute la sortie dans le vide.

$ grep -r bonjour /sys/ > /dev/null 2>&1

Brisons un peu cette commande. Premièrement, nous jetons tous les sortie standard vers /dev/null. Ensuite, dans la deuxième partie, nous disons à bash d'envoyer stderr à sortie standard. Dans cet exemple, il n'y a rien à afficher. Cependant, si vous êtes confus, vous pouvez toujours vérifier si la commande s'est exécutée avec succès.

$ écho $?

La valeur est 2 car la commande a généré beaucoup d'erreurs.

Si vous avez tendance à oublier le descripteur de fichier de sortie standard et stderr, la commande suivante fera très bien l'affaire. C'est un format plus généralisé de la commande précédente. Tous les deux sortie standard et stderr sera redirigé vers /dev/null.

$ grep -r bonjour /sys/ &> /dev/null

Autres exemples

Celui-ci est intéressant. Rappelez-vous l'outil dd? C'est un outil puissant pour convertir et copier des fichiers. En savoir plus sur jj. En utilisant dd, nous pouvons tester la vitesse de lecture séquentielle de votre disque. Bien sûr, ce n'est pas une mesure précise. Cependant, pour un test rapide, c'est assez utile.

$ dd si= of=/dev/null status=progress bs=1M iflag=direct

Ici, j'ai utilisé Ubuntu 18.04.4 ISO comme gros fichier.

De même, vous pouvez également tester la vitesse de téléchargement de votre connexion Internet.

$ wget -O /dev/null

Dernières pensées

J'espère que vous avez une compréhension claire de ce qu'est ce fichier /dev/null. C'est un périphérique spécial qui, s'il y est écrit, rejette et s'il est lu depuis, lit null. Le vrai potentiel de cette fonctionnalité intéressante réside dans les scripts bash intéressants.

Êtes-vous intéressé par les scripts bash? Consultez le guide du débutant sur les scripts bash.

Prendre plaisir!

Comment utiliser Xdotool pour stimuler les clics de souris et les frappes sous Linux
Xdotool est un outil de ligne de commande gratuit et open source pour simuler les clics de souris et les frappes. Cet article couvrira un bref guide s...
Top 5 des produits de souris d'ordinateur ergonomiques pour Linux
L'utilisation prolongée de l'ordinateur provoque-t-elle des douleurs au poignet ou aux doigts? Vous souffrez de raideurs articulaires et devez constam...
Comment modifier les paramètres de la souris et du pavé tactile à l'aide de Xinput sous Linux
La plupart des distributions Linux sont livrées avec la bibliothèque "libinput" par défaut pour gérer les événements d'entrée sur un système. Il peut ...