Jak tworzyć pliki urządzeń w Linux za pomocą polecenia mknod

Jak tworzyć pliki urządzeń w Linux za pomocą polecenia mknod

W Linux, Wszystko jest plik, nawet urządzenia fizyczne, takie jak dyski, CD/DVD ROM i dyskietki są reprezentowane za pomocą plików. Jednak te pliki nie są zwykłymi plikami danych. Zamiast tego te specjalne pliki są nazywane plikami urządzeń i mogą generować lub odbierać dane.

Zwykle wszystkie specjalne pliki są obecne w ramach /Dev informator. Niektóre z wspólnych przykładów specjalnych plików to /dev/null, /dev/zero, /dev/pełne, I /dev/sr0.

Pliki specjalne mogą być typu lub blokiem. Jak sama nazwa wskazuje, pliki znaków przetwarzają jeden znak na raz, w którym pliki blokowe przetwarzają wiele znaków jednocześnie.

W tym zaawansowanym przewodniku omówimy, jak utworzyć plik urządzenia za pomocą mknod Komenda. Po przestrzeganiu tego przewodnika użytkownicy Linux będą mogli pewnie pracować z różnymi rodzajami plików urządzeń.

Spis treści

1
  • Składnia polecenia mknod
  • 1. Utwórz nienazwaną rurę w Linux
  • 2. Utwórz nazwaną rurę w Linux
  • 3. Utwórz plik urządzenia postaci w Linux
  • 4. Utwórz plik urządzenia blokowego w Linux
  • 5. Utwórz plik urządzenia z uprawnieniami

Składnia polecenia mknod

Składnia mknod Polecenie jest nieco inne niż inne polecenia Linux. Główną różnicą jest to, że musimy określić główne i mniejsze liczby podczas tworzenia postaci i blokowania plików urządzeń:

$ mknod [opcje] [Major] [Minor]… 

W powyższej składni kwadratowe nawiasy ([]) reprezentują opcjonalne argumenty, podczas gdy wsporniki kątowe () reprezentują obowiązkowe argumenty.

W Linux główny numer służy do określenia sterownika urządzenia, którego należy użyć. Ten numer jest przypisany podczas rejestracji sterownika urządzenia.

W podobny sposób niewielka liczba służy do określenia rzeczywistego urządzenia. Możemy znaleźć zarezerwowane główne i niewielkie liczby w dokumentacji jądra Linuksa.

1. Utwórz nienazwaną rurę w Linux

W Linux używamy rur, aby umożliwić komunikację między procesami. W skorupce rura jest reprezentowana za pomocą linii pionowej (|). Odczytuje wyjście z poprzedniego procesu i wysyła je jako dane wejściowe do następnego procesu.

Rozumiemy to z prostym przykładem:

$ echo "tecmint.com "| wc -c 

W tym przykładzie używamy rury do odczytania wyjścia polecenia Echo i wysyłamy ją jako wejście do polecenia WC w celu dalszego przetwarzania.

Tutaj użyliśmy linii pionowej (|) Aby stworzyć fajkę. Stwarza to jednak nienazwaną rurę, a jej zakres jest ograniczony tylko do bieżącego polecenia. W następnym przykładzie zobaczymy, jak utworzyć nazwaną rurę.

2. Utwórz nazwaną rurę w Linux

Możemy użyć mknod polecenie utworzenia nazwanej rury. Nazwana rura znajduje się w systemie plików, podobnie jak każdy inny zwykły plik. Jednak jego głównym celem jest umożliwienie komunikacji między procesami między niepowiązanymi procesami.

Najpierw określmy typ urządzenia jako P Aby utworzyć nazwaną rurę:

$ mknod /tmp /nazywana-ripe p $ ls -l /tmp /nazywana-ripe 

Teraz spróbujmy przeczytać plik:

$ cat /tmp /nazywana-ripe 

Tutaj widzimy, że polecenie CAT czeka nieskończenie:

Przeczytaj nazwany plik rury

Następnie otwórzmy kolejny terminal i napiszmy kilka danych do /tmp/nazywana-ripe plik:

$ echo "tecmint.com "> /tmp /nazywana-ripe 

Na koniec przejdź do pierwszego terminala, aby zobaczyć wynik:

Zobacz plik rury

Tutaj widzimy, że Echo I kot Polecenia mogą komunikować się za pomocą nazwanej rury.

3. Utwórz plik urządzenia postaci w Linux

W podobny sposób możemy użyć typu urządzenia jako C Aby utworzyć urządzenie postaci. Musiemy jednak używać głównych i mniejszych liczb podczas tworzenia urządzenia postaci.

Użyjmy polecenia LS, aby znaleźć główną i niewielką liczbę /dev/pełne urządzenie:

$ ls -l /dev /pełne 
Znajdź liczbę główną i drobną pliku

W powyższym wyjściu, oddzielona przecinkami para liczb i.mi. 1, 7 reprezentują odpowiednio główne i niewielkie liczby.

W Linux, /dev/pełne Urządzenie zawsze zwraca Brak miejsca na błąd urządzenia. Aby to zrozumieć, napiszmy kilka danych do tego urządzenia:

$ echo "tecmint.com "> /dev /full 
Zapisz dane do pliku urządzenia

Teraz użyjmy mknod polecenie utworzenia nowego urządzenia, które zachowuje się tak samo jak /dev/pełne urządzenie:

$ sudo mknod /tmp /pełne urządzenie c 1 7 

Następnie zmieńmy uprawnienia do pliku:

$ sudo chmod 666 /tmp /pełne urządzenie $ ls -l /tmp /pełne urządzenie 

Na koniec zapisz kilka danych do nowo utworzonego urządzenia:

$ echo „tecmint”> /tmp /pełne urządzenie 
Utwórz nowy plik urządzenia

Należy zauważyć, że nowo utworzone urządzenie postaci zachowuje się jak /dev/pełne urządzenie z powodu tych samych głównych i mniejszych liczb.

4. Utwórz plik urządzenia blokowego w Linux

Oprócz tego możemy określić typ urządzenia jako B Aby utworzyć urządzenie blokowe. Aby utworzyć urządzenie blokowe, musimy użyć głównych i mniejszych liczb.

W Linux, /dev/sr0 reprezentuje CD/DVD ROM urządzenie. Teraz utwórzmy nowe urządzenie blokowe, które zachowuje się tak samo jak /dev/sr0.

Najpierw dowiedzmy się głównej i niewielkiej liczby /dev/sr0:

$ ls -l /dev /sr0 
Sprawdź główne liczby pliku urządzenia i drobne

W powyższym wyjściu widać, że jego główne i mniejsze liczby są 11 I 0 odpowiednio.

Teraz utwórzmy nowe urządzenie blokowe o tych samych głównych i mniejszych liczbach:

$ sudo mknod /tmp /dvd-rom b 11 0 $ ls -l /tmp /dvd-rom 
Utwórz nowe urządzenie blokowe

Następnie zamontujmy obraz ISO z CD/DVD ROM do /MNT katalog i sprawdź, czy operacja montowania się powiedzie:

$ sudo Mount /tmp /dvd -rom /mnt /$ ls -1 /mnt / 
Zamontować nowe urządzenie blokowe

W tym przykładzie widzimy, że /TMP/DVD-ROM Urządzenie blokowe jest w stanie uzyskać dostęp do obrazu ISO z CD/DVD ROM.

5. Utwórz plik urządzenia z uprawnieniami

Czasami musimy zmodyfikować uprawnienie do dostępu pliku urządzenia przed użyciem. W takich przypadkach musimy użyć chmod Komenda. Możemy jednak osiągnąć ten sam wynik za pomocą mknod polecenie zamiast używać dwóch osobnych poleceń.

Aby to zrozumieć, użyjmy -M Opcja ustawienia uprawnień dostępu podczas tworzenia nazwanej rury:

$ sudo mknod -m 444 /tmp /rura z permisjami p 

Teraz sprawdźmy, czy uprawnienia zostały poprawnie ustawione:

$ ls -l /tmp /rura z permisjami 
Utwórz plik urządzenia za pomocą uprawnień

W tym przykładzie użyliśmy -M Opcja z nazwaną rury. Możemy jednak użyć go z znakiem postaci i blokowania urządzeń.

Czy znasz jakikolwiek inny najlepszy przykład mknod polecenie w Linux? Daj nam znać swoje poglądy w komentarzach poniżej.