Comment créer des fichiers de périphérique dans Linux à l'aide de la commande MKNOD

Comment créer des fichiers de périphérique dans Linux à l'aide de la commande MKNOD

Dans Linux, Tout est un fichier, même les appareils physiques tels que les lecteurs de disque, la ROM CD / DVD et les disquettes sont représentés à l'aide de fichiers. Cependant, ces fichiers ne sont pas des fichiers de données réguliers. Au lieu de cela, ces fichiers spéciaux sont appelés fichiers de périphérique et ils peuvent générer ou recevoir les données.

Habituellement, tous les fichiers spéciaux sont présents sous le / dev annuaire. Certains des exemples courants de fichiers spéciaux sont / dev / null, / dev / zéro, / dev / complet, et / dev / sr0.

Les fichiers spéciaux peuvent être du caractère ou du blocage. Comme son nom l'indique, les fichiers de caractères traitent un caractère à un moment où les fichiers de blocs traitent plusieurs caractères à la fois.

Dans ce guide avancé, nous discuterons de la façon de créer un fichier de périphérique à l'aide du mknod commande. Après avoir suivi ce guide, les utilisateurs de Linux pourront travailler avec différents types de fichiers de périphérique en toute confiance.

Table des matières

1
  • Syntaxe de commande MKNOD
  • 1. Créer un tuyau sans nom dans Linux
  • 2. Créer un tuyau nommé dans Linux
  • 3. Créer un fichier de périphérique de caractère dans Linux
  • 4. Créer un fichier de périphérique de bloc dans Linux
  • 5. Créer un fichier de périphérique avec des autorisations

Syntaxe de commande MKNOD

La syntaxe du mknod La commande est légèrement différente des autres commandes Linux. La principale différence est que nous devons spécifier les nombres majeurs et mineurs tout en créant un caractère et bloquer les fichiers de périphériques:

$ mknod [options] [Major] [mineur]… 

Dans la syntaxe ci-dessus, les crochets ([]) représentent les arguments facultatifs tandis que les supports angulaires () représenter les arguments obligatoires.

Dans Linux, le nombre majeur est utilisé pour spécifier le pilote de périphérique qui doit être utilisé. Ce numéro est attribué lors de l'enregistrement d'un pilote d'appareil.

De la même manière, le nombre mineur est utilisé pour spécifier l'appareil réel. Nous pouvons trouver les nombres majeurs et mineurs réservés dans la documentation du noyau Linux.

1. Créer un tuyau sans nom dans Linux

Dans Linux, nous utilisons des tuyaux pour permettre la communication interprète. Dans Shell, le tuyau est représenté en utilisant la ligne verticale (|). Il lit la sortie du processus précédent et l'envoie comme entrée au processus suivant.

Comprenons cela avec un exemple simple:

$ echo "Tecmint.com "| wc -c 

Dans cet exemple, nous utilisons le tuyau pour lire la sortie de la commande echo et l'envoyons comme entrée à la commande wc pour un traitement ultérieur.

Ici, nous avons utilisé la ligne verticale (|) Pour créer un tuyau. Cependant, cela crée un tuyau sans nom et sa portée est limitée à la commande actuelle uniquement. Dans l'exemple suivant, nous verrons comment créer un tuyau nommé.

2. Créer un tuyau nommé dans Linux

Nous pouvons utiliser le mknod commande pour créer un tuyau nommé. Le tuyau nommé réside sur le système de fichiers comme tout autre fichier régulier. Cependant, son objectif principal est de permettre la communication interprète entre les processus non liés.

Tout d'abord, spécifions le type de périphérique comme p Pour créer un tuyau nommé:

$ mknod / tmp / nommé P $ ls -l / tmp / nommé-pipe 

Maintenant, essayons de lire le fichier:

$ cat / tmp / nommé 

Ici, nous pouvons voir que la commande CAT attend l'infini:

Lire le fichier de tuyaux nommé

Ensuite, ouvrons un autre terminal et écrivons des données sur le / tmp / nommé-pipe déposer:

$ echo "Tecmint.com "> / tmp / nommé-pipe 

Enfin, dirigez-vous vers le premier terminal pour voir le résultat:

Afficher le fichier de tuyaux nommé

Ici, nous pouvons voir que le écho et chat Les commandes sont capables de communiquer en utilisant le tuyau nommé.

3. Créer un fichier de périphérique de caractère dans Linux

De la même manière, nous pouvons utiliser le type d'appareil comme c Pour créer un périphérique de caractère. Cependant, nous devons avoir à utiliser les nombres majeurs et mineurs tout en créant un appareil de caractère.

Utilisons la commande LS pour trouver le nombre majeur et mineur du / dev / complet appareil:

$ ls -l / dev / complet 
Trouver le fichier majeur et le numéro mineur

Dans la sortie ci-dessus, la paire de nombres séparés par des virgules I.e. 1, 7 représentent respectivement les nombres majeurs et mineurs.

Dans Linux, le / dev / complet l'appareil renvoie toujours le Aucun espace laissé sur l'erreur de l'appareil. Pour comprendre cela, écrivons des données sur cet appareil:

$ echo "Tecmint.com "> / dev / full 
Écrire des données dans le fichier de périphérique

Maintenant, utilisons le mknod commande pour créer un nouvel appareil qui se comporte de la même manière que / dev / complet appareil:

$ sudo mknod / tmp / complet C 1 7 

Ensuite, modifions les autorisations de fichier:

$ sudo Chmod 666 / TMP / Full-Device $ LS -L / TMP / Full-Device 

Enfin, écrivez des données sur l'appareil nouvellement créé:

$ echo "tecmint"> / tmp / complet 
Créer un nouveau fichier de périphérique

Il est important de noter que le dispositif de caractère nouvellement créé se comporte comme le / dev / complet appareil en raison des mêmes nombres majeurs et mineurs.

4. Créer un fichier de périphérique de bloc dans Linux

En plus de cela, nous pouvons spécifier le type de périphérique comme b Pour créer un périphérique de bloc. Pour créer un appareil de bloc, nous devons utiliser les nombres majeurs et mineurs.

En linux, / dev / sr0 représente le ROM CD / DVD appareil. Maintenant, créons un nouvel appareil de bloc qui se comporte de la même manière que / dev / sr0.

Tout d'abord, découvrons le nombre majeur et mineur du / dev / sr0:

$ ls -l / dev / sr0 
Vérifiez le fichier de périphérique majeur et numéros mineurs

Dans la sortie ci-dessus, nous pouvons voir que ses nombres majeurs et mineurs sont 11 et 0 respectivement.

Maintenant, créons un nouvel appareil de bloc avec les mêmes numéros majeurs et mineurs:

$ sudo mknod / tmp / dvd-rom b 11 0 $ ls -l / tmp / dvd-rom 
Créer un nouveau périphérique de bloc

Ensuite, montons l'image ISO de la ROM CD / DVD à la / mnt Répertoire et vérifiez que l'opération de montage réussit:

$ sudo mont / tmp / dvd-rom / mnt / $ ls -1 / mnt / 
Monter le nouveau périphérique de bloc

Dans cet exemple, nous pouvons voir que le / TMP / DVD-ROM Le périphérique de bloc est capable d'accéder à l'image ISO à partir de la ROM CD / DVD.

5. Créer un fichier de périphérique avec des autorisations

Parfois, nous devons modifier l'autorisation d'accès du fichier de périphérique avant de l'utiliser. Dans de tels cas, nous devons utiliser le chod commande. Cependant, nous pouvons obtenir le même résultat en utilisant le mknod commande au lieu d'utiliser deux commandes distinctes.

Pour comprendre cela, utilisons le -m Option pour définir les autorisations d'accès lors de la création d'un tuyau nommé:

$ sudo mknod -m 444 / tmp / tuyau avec permissions p 

Maintenant, vérifions que les autorisations ont été correctement définies:

$ ls -l / tmp / tuyau avec permissions 
Créer un fichier de périphérique avec les autorisations

Dans cet exemple, nous avons utilisé le -m Option avec le tuyau nommé. Cependant, nous pouvons également l'utiliser avec le caractère et les appareils de blocage.

Connaissez-vous tout autre meilleur exemple du mknod Commande dans Linux? Faites-nous savoir votre point de vue dans les commentaires ci-dessous.