So erstellen Sie Gerätedateien unter Linux mit dem Befehl mknod

So erstellen Sie Gerätedateien unter Linux mit dem Befehl mknod

In Linux, Alles ist eine Datei, sogar physische Geräte wie Festplatten, CD/DVD -ROM und Disketten werden mithilfe von Dateien dargestellt. Diese Dateien sind jedoch keine regulären Datendateien. Stattdessen werden diese speziellen Dateien als Gerätedateien bezeichnet und können die Daten generieren oder empfangen.

Normalerweise sind alle Sonderdateien unter dem vorhanden /dev Verzeichnis. Einige der häufigsten Beispiele für spezielle Dateien sind /dev/null, /dev/null, /dev/voll, Und /dev/sr0.

Die speziellen Dateien können vom Typ Charakter oder Block sein. Wie der Name schon sagt, verarbeiten die Zeichendateien ein Zeichen zu einem Zeitpunkt, in dem die Blockdateien gleichzeitig mehrere Zeichen verarbeiten.

In diesem erweiterten Handbuch werden wir besprechen, wie Sie eine Gerätedatei mit der Erstellung des Erstellens des Erstellens haben Mknod Befehl. Nach diesem Handbuch können Linux -Benutzer mit verschiedenen Arten von Gerätedateien zuversichtlich arbeiten.

Inhaltsverzeichnis

1
  • Mknod -Befehlssyntax
  • 1. Erstellen Sie eine namenlose Rohre unter Linux
  • 2. Erstellen Sie ein benanntes Rohr unter Linux
  • 3. Erstellen Sie eine Zeichenvorrichtungsdatei unter Linux
  • 4. Erstellen Sie eine Block -Gerätedatei unter Linux
  • 5. Erstellen Sie eine Gerätedatei mit Berechtigungen

Mknod -Befehlssyntax

Die Syntax der Mknod Der Befehl unterscheidet sich geringfügig von den anderen Linux -Befehlen. Der Hauptunterschied besteht darin, dass wir die Haupt- und Kleinzahlen angeben müssen, während wir ein Zeichen- und Block -Gerätedateien erstellen:

$ mknod [Optionen] [Major] [Moll]… 

In der obigen Syntax klammern die Quadrat ([]) stellen die optionalen Argumente dar, während Winkelklammern () die obligatorischen Argumente darstellen.

In Linux wird die Hauptnummer verwendet, um den Gebrauch des Gerätetreibers anzugeben, der verwendet werden muss. Diese Nummer wird beim Registrieren eines Gerätetreibers zugewiesen.

In ähnlicher Weise wird die geringfügige Zahl verwendet, um das tatsächliche Gerät anzugeben. Wir finden die reservierten Major- und kleineren Zahlen in der Dokumentation des Linux -Kernels.

1. Erstellen Sie eine namenlose Rohre unter Linux

In Linux verwenden wir Rohre, um die Kommunikation zwischen den Prozess zu ermöglichen. In der Schale wird das Rohr unter Verwendung der vertikalen Linie dargestellt (|). Es liest die Ausgabe des vorherigen Prozesses und sendet ihn als Eingabe an den nächsten Prozess.

Lassen Sie uns dies mit einem einfachen Beispiel verstehen:

$ echo "tecmint.com "| wc -c 

In diesem Beispiel verwenden wir das Rohr, um die Ausgabe des Echo -Befehls zu lesen und sie als Eingabe an den WC -Befehl zur weiteren Verarbeitung zu senden.

Hier haben wir die vertikale Linie verwendet (|) Um ein Rohr zu erstellen. Dies schafft jedoch eine unbenannte Pfeife und sein Umfang ist nur auf den aktuellen Befehl beschränkt. Im nächsten Beispiel werden wir sehen, wie man eine benannte Pfeife erstellt.

2. Erstellen Sie ein benanntes Rohr unter Linux

Wir können die verwenden Mknod Befehl zum Erstellen einer benannten Pipe. Das benannte Rohr liegt wie in jeder anderen regulären Datei im Dateisystem. Der Hauptzweck besteht jedoch darin, die Kommunikation zwischen den Prozess zwischen nicht verwandten Prozessen zu ermöglichen.

Lassen Sie uns zunächst den Gerätetyp als angeben P So erstellen Sie ein benanntes Rohr:

$ mknod /tmp /named pipe p $ ls -l /tmp /named pipe 

Versuchen wir nun, die Datei zu lesen:

$ cat /tmp /named pipe 

Hier können wir sehen, dass der CAT -Befehl unendlich wartet:

Lesen Sie die benannte Pipe -Datei

Öffnen wir als nächstes ein weiteres Terminal und schreiben einige Daten an die /TMP/Named-Pipe Datei:

$ echo "tecmint.com "> /tmp /named pipe 

Gehen Sie schließlich zum ersten Terminal, um das Ergebnis anzuzeigen:

Pipe -Datei anzeigen

Hier können wir sehen, dass die Echo Und Katze Befehle können mit der benannten Pipe kommunizieren.

3. Erstellen Sie eine Zeichenvorrichtungsdatei unter Linux

In ähnlicher Weise können wir den Gerätetyp als verwenden C So erstellen Sie ein Zeichengerät. Wir müssen jedoch die Haupt- und Kleinzahlen verwenden, während wir ein Zeichengerät erstellen.

Verwenden wir den Befehl ls, um die Haupt- und Kleinzahlen der zu finden /dev/voll Gerät:

$ ls -l /dev /voll 
Finden Sie die Datei Major und kleinere Nummer

In der obigen Ausgabe trennte sich das von Kommas getrennte Zahlenpaar i.e. 1, 7 die Haupt- bzw. geringfügigen Zahlen darstellen.

In Linux die /dev/voll Das Gerät gibt immer die zurück Kein Speicherplatz auf dem Gerätefehler. Um dies zu verstehen, schreiben wir einige Daten auf dieses Gerät:

$ echo "tecmint.com "> /dev /voll 
Schreiben Sie Daten in die Gerätedatei

Lassen Sie uns nun das verwenden Mknod Befehl zum Erstellen eines neuen Geräts, das gleich verhalten wie /dev/voll Gerät:

$ sudo mknod /tmp /full device c 1 7 

Ändern wir als nächstes die Dateiberechtigungen:

$ sudo chmod 666 /tmp /full device $ ls -l /tmp /full device 

Schreiben Sie schließlich einige Daten auf das neu erstellte Gerät:

$ echo "tecmint"> /tmp /full device 
Neue Gerätedatei erstellen

Es ist wichtig zu beachten, dass sich das neu erstellte Zeichengerät wie das verhält /dev/voll Gerät aufgrund der gleichen Haupt- und kleineren Zahlen.

4. Erstellen Sie eine Block -Gerätedatei unter Linux

Darüber hinaus können wir den Gerätetyp als angeben B So erstellen Sie ein Blockgerät. Um ein Blockgerät zu erstellen, müssen wir die Haupt- und Kleinzahlen verwenden.

Unter Linux, /dev/sr0 repräsentiert die CD/DVD ROM Gerät. Lassen Sie uns nun ein neues Blockgerät erstellen, das sich genauso verhält wie /dev/sr0.

Lassen Sie uns zunächst die Haupt- und Kleinzahlen der /dev/sr0:

$ ls -l /dev /sr0 
Überprüfen Sie die Major- und kleinere Nummern der Gerätedatei

In der obigen Ausgabe können wir sehen, dass seine Haupt- und Kleinzahlen sind 11 Und 0 bzw.

Lassen Sie uns nun ein neues Blockgerät mit den gleichen Haupt- und Kleinzahlen erstellen:

$ sudo mknod /tmp /dvd-rom b 11 0 $ ls -l /tmp /dvd-rom 
Neues Blockgerät erstellen

Als nächstes montieren wir das ISO -Bild von der CD/DVD -ROM an die /mnt Verzeichnis und überprüfen Sie, ob der Mount Operation erfolgreich ist:

$ sudo montage /tmp /dvd -rom /mnt /$ ls -1 /mnt / 
Neues Blockgerät montieren

In diesem Beispiel können wir sehen, dass die /TMP/DVD-ROM Block Device kann über das CD/DVD -ROM auf das ISO -Bild zugreifen.

5. Erstellen Sie eine Gerätedatei mit Berechtigungen

Manchmal müssen wir die Zugriffsberechtigung der Gerätedatei ändern, bevor wir sie verwenden. In solchen Fällen müssen wir die verwenden Chmod Befehl. Wir können jedoch das gleiche Ergebnis mit dem erzielen Mknod Befehl anstatt zwei separate Befehle zu verwenden.

Um dies zu verstehen, verwenden wir die -M Option zum Festlegen von Zugriffsberechtigungen beim Erstellen eines benannten Rohrs:

$ sudo mknod -m 444 /tmp /pipe-with-permissions p 

Überprüfen wir nun, dass die Berechtigungen ordnungsgemäß festgelegt wurden:

$ ls -l /tmp /pipe-with-permissions 
Erstellen Sie die Gerätedatei mit Berechtigungen

In diesem Beispiel haben wir die verwendet -M Option mit dem benannten Rohr. Wir können es jedoch auch mit dem Charakter- und Blockieren verwenden.

Kennen Sie ein anderes bestes Beispiel der Mknod Befehl in Linux? Lassen Sie uns Ihre Ansichten in den Kommentaren unten wissen.