Objaśnienie „Everything Is a Plik” i typy plików w Linux

Objaśnienie „Everything Is a Plik” i typy plików w Linux

Jeśli jesteś nowy w Linux lub używasz go przez kilka miesięcy, musisz usłyszeć lub przeczytać oświadczenia, takie jak „W Linux wszystko jest plik".

Wszystko jest plik i typy plików w Linux

Przeczytaj także: 5 Przydatne polecenia do zarządzania typami plików Linux

Jest to w rzeczywistości prawdą, chociaż jest to tylko koncepcja uogólniająca, w UNIX i jej pochodnych, takich jak Linux, wszystko jest uważane za plik. Jeśli coś nie jest plik, musi być uruchomiony jako proces w systemie.

Aby to zrozumieć, weź na przykład ilość miejsca na korzeni (/) Katalog jest zawsze zużywany przez różne typy plików Linux. Podczas tworzenia pliku lub przesyłania pliku do systemu zajmuje on trochę miejsca na dysku fizycznym i jest uważany za określony format (typ pliku).

A także system Linux nie rozróżnia plików i katalogów, ale katalogi wykonują jedno ważne zadanie, czyli przechowuj inne pliki w grupach w hierarchii dla łatwej lokalizacji. Wszystkie komponenty sprzętowe są reprezentowane jako pliki, a system komunikuje się z nimi za pomocą tych plików.

Pomysł jest ważnym opisem świetnej właściwości Linux, w której zasoby wejściowe/wyjściowe, takie jak dokumenty, katalogi (foldery w Mac OS X i Windows), klawiatura, monitor, jazda twardych, nośniki usuwające, drukarki, modemy, wirtualne, wirtualne, wirtualne Terminale, a także komunikacja między procesami i komunikacją sieciową są strumieniami bajtów zdefiniowanych przez przestrzeń systemu plików.

Godną uwagi zaletą tego, że wszystko jest plik, jest to, że ten sam zestaw narzędzi, narzędzi i interfejsów API Linux może być używany w powyższych zasobach wejściowych/wyjściowych.

Chociaż wszystko w Linux jest plik, istnieją pewne specjalne pliki, które są czymś więcej niż tylko plik na przykład gniazda i nazwane rury.

Jakie są różne typy plików w Linux?

W Linux są zasadniczo trzy typy plików:

  1. Zwykłe/zwykłe pliki
  2. Pliki specjalne
  3. Katalogi

Zwykłe/zwykłe pliki

Są to dane z plików zawierają instrukcje tekstu, danych lub programu i są najczęstszym typem plików, których można się spodziewać w systemie Linux i obejmują one:

  1. Czytelne pliki
  2. Pliki binarne
  3. Pliki obrazu
  4. Skompresowane pliki i tak dalej.

Pliki specjalne

Pliki specjalne zawierają następujące:

Blokuje pliki : Są to pliki urządzeń, które zapewniają buforowany dostęp do komponentów sprzętu systemowego. Zapewniają metodę komunikacji z sterownikami urządzeń za pośrednictwem systemu plików.

Jeden ważny aspekt o blok Pliki polega na tym, że mogą one przesyłać duży blok danych i informacji w danym momencie.

Wymień Gniazda plików blokowych w katalogu:

# ls -l /dev | grep „^b” 
Przykładowy wyjście
BRW-RW ---- 1 Dysk korzeniowy 7, 0 maja 18 10:26 LOOP0 BRW-RW ---- 1 Dysk korzeniowy 7, 1 maja 18 10:26 Loop1 Brw-Rw ---- 1 Dysk root 7, 2 maja 18 10:26 LOOP2 BRW-RW ---- 1 Dysk korzeniowy 7, 3 maja 18 10:26 LOOP3 BRW-RW ---- 1 Dysk root 7, 4 maja 18 10:26 Brw-Rw-- -1 Dysk korzeniowy 7, 5 maja 18 10:26 Loop5 Brw-Rw ---- 1 Dysk root 7, 6 maja 18 10:26 Loop6 Brw-Rw ---- 1 Dysk root 7, 7 maja 18 10: 26 LOOP7 BRW-RW ---- 1 Dysk korzeniowy 1, 0 maja 18 10:26 RAM0 BRW-RW ---- 1 Dysk główny 1, 1 maja 18 10:26 RAM1 BRW-RW ---- 1 Dysk rootowy 1, 10 maja 18 10:26 RAM10 BRW-RW ---- 1 Dysk główny 1, 11 maja 18 10:26 Ram11 Brw-RW ---- 1 Dysk root 1, 12 maja 18 10:26 RAM12 BRW-RW ---- 1 Dysk korzeniowy 1, 13 maja 18 10:26 RAM13 BRW-RW ---- 1 Dysk root 1, 14 maja 18 10:26 RAM14 BRW-RW ---- 1 Dysk root 1, 15 maja 18 10:26 RAM15 BRW-RW ---- 1 Dysk root 1, 2 maja 18 10:26 RAM2 BRW-RW ---- 1 Dysk root 1, 3 maja 18 10:26 RAM3 BRW-RW ---- 1 Dysk korzeniowy 1, 4 maja 18 10:26 RAM4 BRW-RW ---- 1 Dysk korzeniowy 1, 5 maja 18 10:26 RAM5… 

Pliki znaków : Są to również pliki urządzeń, które zapewniają nieskórny dostęp do komponentów sprzętowych systemowych. Pracują, zapewniając sposób komunikacji z urządzeniami poprzez przesyłanie danych o jeden znak na raz.

Wymień Gniazda plików znaków w katalogu:

# ls -l /dev | grep „^c” 
Przykładowy wyjście
CRW ------- 1 Root root 10, 235 maja 18:54 Autofs CRW ------- 1 Root 10, 234 maja 18 15:54 Btrfs-Control CRW ------- 1 root root 5, 1 maja 18 10:26 Konsola CRW ------- 1 Root root 10, 60 maja 18 10:26 CPU_DMA_LATENCY CRW ------- 1 root root 10, 203 maja 18 15: 54 CUSE CRW ------- 1 root 10, 61 maja 18 10:26 Ecryptfs CRW-RW ---- 1 Korzenie wideo 29, 0 maja 18 10:26 FB0 CRW-RW-RW- 1 root root root root 1, 7 maja 18 10:26 Pełny CRW-RW-RW- 1 Root root 10, 229 maja 18 10:26 FUSE CRW ------- 1 Root root 251, 0 maja 18 10:27 Hidraw0 Crw-- ----- 1 Root root 10, 228 maja 18 10:26 HPET CRW-R-R-- 1 Root root 1, 11 maja 18 10:26 kmsg crw-rw ----+ 1 root root 10, 232 maja 18 10:26 KVM CRW ------- 1 Root 10, 237 maja 18 10:26 CRW-CRW ------- 1 Root 10, 227 maja 18 10:26 McElog CRW ------- 1 Root root 249, 0 maja 18 10:27 Media0 Crw ------- 1 root 250, 0 maja 18:26 MEI0 CRW-R ----- 1 KMEM KMEM 1, 1 maja 18 10:26 MEM CRW ------- 1 root 10, 57 maja 18 10:26 Memory_bandwidth CRW ------- 1 root 10, 59 maja 18:26 Network_latency CRW ------- 1 root root 10, 58 maja 18 10:26 Network_Throughput Crw-Rw-Rw- 1 root root 1, 3 maja 18 10:26 NULL CRW-R ----- 1 KMEM 1, 4 maja 18 10:26 Port CRW ------- 1 Root root 108, 0 maja 18 10:26 PPP CRW ------- 1 Root 10, 1 maja 18 10:26 Psaux CRW-RW-RW- 1 Root Tty 5 , 2 maja 18 17:40 PTMX CRW-RW-RW- 1 Root root 1, 8 maja 18 10:26 losowy 

Symboliczne pliki linków : Link symboliczny to odniesienie do innego pliku w systemie. Dlatego symboliczne pliki linków są plikami wskazującymi na inne pliki i mogą to być katalogi lub zwykłe pliki.

Wymień symboliczne gniazda linków w katalogu:

# ls -l / dev / | grep „^l” 
Przykładowy wyjście
LRWXRWXRWX 1 root root 3 maja 18 10:26 CDROM -> SR0 LRWXRWXRWX 1 root root 11 maja 18:54 rdzeń ->/proc/kcore lrwxrwxrwx 1 root root 13 maja 18 15:54 FD ->/proc/self/fd LRWXRWXRWX 1 root root 4 maja 18 10:26 RTC -> rTC0 LRWXRWXRWX 1 root root 8 maja 18 10:26 SHM ->/run/shm lRwxRwxrwx 1 root root 15 maja 18 15:54 Stderr ->/proc/self/fd /2 LRWXRWXRWX 1 root root 15 maja 18 15:54 stdin ->/proc/self/fd/0 lwxrwxrwx 1 root 15 maja 18 15:54 stdout ->/proc/self/fd/1 

Możesz tworzyć symboliczne linki za pomocą Ln narzędzie w Linux jak w poniższym przykładzie.

# Touch File1.txt # ln -s file1.txt/home/tecmint/file1.TXT [Utwórz link symboliczny] # ls -l/home/tecmint/| GREP „^l” [Lista symbolicznych linków] 

W powyższym przykładzie utworzyłem plik o nazwie plik 1.tekst W /TMP katalog, a następnie utworzył link symboliczny, /home/tecMint/File1.tekst wskazać /tmp/file1.tekst.

Rury lub nazwane rury : Są to pliki, które umożliwiają komunikację między procesami, łącząc wyjście jednego procesu z wejściem drugiego.

Nazwana rura to w rzeczywistości plik używany przez dwa procesy do komunikacji z każdym i działa jak rura Linuksa.

Lista rur gniazda w katalogu:

# ls -l | grep „^p” 
Przykładowy wyjście
PRW-RW-R-- 1 TECMINT TECMINT 0 MAJA 18 17:47 PURE1 PRW-RW-R-- 1 TECMINT TECMINT 0 MAJA 18 17:47 PURE2 PRW-RW-R-- 1 TECMINT TECMINT 0 MAJ 18 17:47 PIPE3 PRW-RW-R-- 1 TECMINT TECMINT 0 MAJA 18 17:47 PIPE4 PRW-RW-R-- 1 TECMINT TECMINT 0 maja 18:47 Pipe5 

Możesz użyć Mkfifo narzędzie do utworzenia nazwanej rury w Linux w następujący sposób.

# Mkfifo Pipe1 # echo „To nazywa się Pipe1”> Pipe1 

W powyższym przykładzie stworzyłem nazwaną rurę o nazwie Pipe1, Następnie przekazałem do niego niektóre dane za pomocą polecenia Echo, po tym powłokę stała się interaktywna ONZ podczas przetwarzania danych wejściowych.

Potem otworzyłem kolejną skorupę i uruchomiłem inne polecenie, aby wydrukować to, co zostało przekazane do rury.

# podczas przeczytania linii; do echo „To zostało przekazane-„ $ line ””; zrobione 

Pliki gniazda : Są to pliki, które dostarczają środków komunikacji między procesami, ale mogą przesyłać dane i informacje między procesem działającym w różnych środowiskach.

Oznacza to, że gniazda zapewniają przesyłanie danych i informacji między procesem działającym na różnych maszynach w sieci.

Przykładem pokazania pracy gniazda byłaby przeglądarka internetowa nawiązująca połączenie z serwerem WWW.

# ls -l / dev / | Grep „^s” 
Przykładowy wyjście
SRW-RW-RW- 1 Root root 0 maja 18:26 Log 

To jest przykład tworzenia gniazda C za pomocą gniazdo elektryczne() wywołanie systemowe.

int Socket_Desc = Socket (af_inet, sock_stream, 0); 

W powyższym:

  1. AF_INET to rodzina adresów (IPv4)
  2. Sock_stream jest typem (połączenie jest zorientowane na protokół TCP)
  3. 0 jest protokołem (protokół IP)

Aby odnieść się do pliku gniazda, użyj Socket_desc, który jest taki sam jak deskryptor pliku i używaj Czytać() I pisać() wywoływanie systemu do odczytu i zapisu odpowiednio z gniazda.

Katalogi

Są to specjalne pliki, które przechowują zarówno zwykłe, jak i inne specjalne pliki i są zorganizowane w systemie plików Linux w hierarchii, zaczynając od korzenia (/) informator.

Lista gniazd w katalogu:

# ls -l / | grep „^d” 
Przykładowy wyjście
DRWXR-XR-X 2 Root root 4096 MAJ 5 15:49 Bin Drwxr-Xr-X 4 root root 4096 maja 15:58 BOOT DRWXR-XR-X 2 Korzenie root 4096 kwietnia 2015 CDROM DRWXR-XR-X 17 Root root 4400 maja 18 10:27 Dev Drwxr-xr-X 168 Root root 12288 18 MAY 10:28 itd. DRWXR-XR-X 3 Root 4096 kwietnia 2015 Home Drwxr-Xr-X 25 root 4096 maja 5 15:44 Lib Drwxr-xr-x 2 Root root 4096 maja 5:44 Lib64 Drwx ------ 2 Root root 16384 Kwiecień 11 2015 Zagubiony+Znaleziono DRWXR-XR-X 3 Root 4096 kwietnia 10 2015 Media Drwxr-xr- x 3 Root root 4096 23 lutego 17:54 mnt drwxr-xr-x 16 root 4096 kwietnia 16:01 Opt Dr-xr-xr-x 223 root 0 maja 18 15:54 Proc Drwx ------- 19 Root root 4096 kwietnia 9 11:12 root Drwxr-xr-x 27 Root 920 maja 18 10:54 Uruchom DRWXR-xr-X 2 Root root 12288 MAJ 15:57 SBIN DRWXR-XR-X 2 Root root 4096 DEC 4096 DEC 1 2014 SRV DR-XR-XR-X 13 Root 0 maja 18 15:54 SYS DRWXRWXRWT 13 Root root 4096 18:55 TMP DRWXR-XR-x 11 Root root 4096 marca 31 16:00 USR DRWXR-XR-X 12 root 4096 listopada 12 2015 Var 

Możesz zrobić katalog za pomocą Mkdir Komenda.

# mkdir -m 1666 Tecmint.com # mkdir -m 1666 Wiadomości.Tecmint.com # mkdir -m 1775 Linuxsay.com 

Streszczenie

Powinieneś teraz jasno zrozumieć, dlaczego wszystko w Linux jest plik i różne typy plików, które mogą wyjść z systemu Linux.

Możesz dodać do tego więcej, czytając więcej o poszczególnych typach plików i są one tworzone. Mam nadzieję, że ten przewodnik uzna za pomocne i w przypadku wszelkich pytań i dodatkowych informacji, którymi chciałbyś się podzielić, zostaw komentarz, a my omówimy więcej.