Dacă sunteți nou în Linux sau l-ați folosit de câteva luni, atunci trebuie să fi auzit sau citit declarații precum „În Linux, totul este un fișier”.
Acest lucru este de fapt adevărat, deși este doar un concept de generalizare, în Unix și derivatele sale, cum ar fi Linux, totul este considerat ca un fișier. Dacă ceva nu este un fișier, atunci trebuie să fie rulează ca proces pe sistem.
Pentru a înțelege acest lucru, luați, de exemplu, spațiul de pe rădăcină (/)
directorul este întotdeauna consumat de diferite tipuri de fișiere Linux. Când creați un fișier sau transferați un fișier în sistemul dvs., acesta ocupă ceva spațiu pe discul fizic și este considerat a fi într-un format specific (tip de fișier).
De asemenea, sistemul Linux nu face diferența între fișiere și directoare, dar directoarele fac o treabă importantă, și anume să stocați alte fișiere în grupuri într-o ierarhie pentru localizare usoara. Toate componentele dumneavoastră hardware sunt reprezentate ca fișiere și sistemul comunică cu ele folosind aceste fișiere.
Ideea este o descriere importantă a unei proprietăți grozave a Linux, în care resursele de intrare/ieșire, cum ar fi documentele, directoarele (foldere în Mac OS X și Windows), tastatura, monitorul, hard disk-urile, mediile amovibile, imprimantele, modemurile, terminalele virtuale și, de asemenea, comunicarea între procese și rețea sunt fluxuri de octeți definite de fișier spațiu de sistem.
Un avantaj notabil al faptului că totul este un fișier este că același set de instrumente Linux, utilități și API-uri pot fi utilizate pentru resursele de intrare/ieșire de mai sus. Deși totul în Linux este un fișier, există anumite fișiere speciale care sunt mai mult decât un fișier, de exemplu prize și conducte denumite.
În Linux există practic trei tipuri de fișiere:
Acestea sunt fișierele de date care conțin text, date sau instrucțiuni de program și sunt cele mai frecvente tipuri de fișiere pe care vă puteți aștepta să le găsiți pe un sistem Linux, acestea includ:
Fișierele speciale includ următoarele:
Acestea sunt fișiere de dispozitiv care oferă acces tamponat la componentele hardware ale sistemului. Acestea oferă o metodă de comunicare cu driverele de dispozitiv prin sistemul de fișiere.
Un aspect important al bloc fișierele este că pot transfera un bloc mare de date și informații la un moment dat.
Listarea socket-urilor de fișiere bloc într-un director folosind comanda ls:
# ls -l /dev | grep "^b" brw-rw disc rădăcină 0 B Wed Apr 26 08:39:09 2023 loop0. brw-rw disc rădăcină 0 B miercuri 26 apr 08:39:09 2023 bucla1. brw-rw disc rădăcină 0 B Wed Apr 26 08:39:09 2023 loop2. brw-rw disc rădăcină 0 B Wed Apr 26 08:39:09 2023 bucla3. brw-rw disc rădăcină 0 B Wed Apr 26 08:39:09 2023 loop4. brw-rw disc rădăcină 0 B Wed Apr 26 08:39:09 2023 bucla5. brw-rw disc rădăcină 0 B Wed Apr 26 08:39:09 2023 loop6. brw-rw disc rădăcină 0 B Wed Apr 26 08:39:09 2023 loop7. brw-rw disc rădăcină 0 B Wed Apr 26 08:39:09 2023 sda. brw-rw disc rădăcină 0 B Wed Apr 26 08:39:09 2023 sda1. brw-rw disc rădăcină 0 B Wed Apr 26 08:39:10 2023 sda2. brw-rw disc rădăcină 0 B Wed Apr 26 08:39:09 2023 sdb. brw-rw disc rădăcină 0 B Wed Apr 26 08:39:09 2023 sdb1. brw-rw disc rădăcină 0 B miercuri 26 apr 08:39:09 2023 sdb2. brw-rw disc rădăcină 0 B miercuri 26 apr 08:39:09 2023 sdb3...
Acestea sunt, de asemenea, fișiere de dispozitiv care oferă acces serial fără tampon componentele hardware ale sistemului. Ele funcționează oferind o modalitate de comunicare cu dispozitivele prin transferul de date un caracter la un moment dat.
Listarea soclurilor fișierelor de caractere într-un director:
# ls -l /dev | grep "^c" crw-r--r-- root root 0 B Wed Apr 26 08:39:09 2023 autofs. crw-rw disc rădăcină 0 B Wed Apr 26 08:39:09 2023 btrfs-control. crw--w root tty 0 B Wed Apr 26 08:39:09 2023 console. crw root root 0 B Wed Apr 26 08:39:09 2023 cpu_dma_latency. crw root root 0 B Wed Apr 26 08:39:09 2023 cuse. crw root root 0 B Wed Apr 26 08:39:09 2023 ecryptfs. crw-rw root video 0 B Wed Apr 26 08:39:09 2023 fb0. crw-rw-rw- root root 0 B Wed Apr 26 08:39:09 2023 full. crw-rw-rw- root root 0 B Wed Apr 26 08:39:09 2023 fusible. crw root root 0 B Wed Apr 26 08:39:09 2023 hidraw0. crw root root 0 B Wed Apr 26 08:39:09 2023 hidraw1. crw root root 0 B Wed Apr 26 08:39:09 2023 hidraw2. crw root root 0 B Wed Apr 26 08:39:09 2023 hidraw3. crw root root 0 B Wed Apr 26 08:39:09 2023 hpet. crw root root 0 B Wed Apr 26 08:39:09 2023 hwrng. crw root root 0 B Wed Apr 26 08:39:09 2023 i2c-0. crw root root 0 B Wed Apr 26 08:39:12 2023 i2c-1. crw root root 0 B Wed Apr 26 08:39:12 2023 i2c-2. crw root root 0 B Wed Apr 26 08:39:12 2023 i2c-3. crw-r--r-- root root 0 B Wed Apr 26 08:39:09 2023 kmsg. crw-rw+ root kvm 0 B Miercuri 26 apr 08:39:09 2023 kvm. crw-rw disc rădăcină 0 B Wed Apr 26 08:39:09 2023 loop-control. crw-rw root lp 0 B Wed Apr 26 08:39:09 2023 lp0. crw root root 0 B Wed Apr 26 08:39:09 2023 mcelog. crw root root 0 B Wed Apr 26 08:39:09 2023 mei0...
O legătură simbolică este o referire la un alt fișier din sistem. Prin urmare, fișiere de link simbolic sunt fișiere care indică alte fișiere și pot fi fie directoare, fie fișiere obișnuite.
Listarea socket-urilor de link simbolic într-un director:
# ls -l /dev/ | grep "^l" lrwxrwxrwx root root 13 B Wed Apr 26 08:39:04 2023 fd ⇒ /proc/self/fd. lrwxrwxrwx root root 11 B Wed Apr 26 08:39:04 2023 core ⇒ /proc/kcore. lrwxrwxrwx root root 12 B Wed Apr 26 08:39:09 2023 initctl ⇒ /run/initctl. lrwxrwxrwx root root 28 B Wed Apr 26 08:39:09 2023 log ⇒ /run/systemd/journal/dev-log. lrwxrwxrwx rădăcină rădăcină 4 B Miercuri 26 apr 08:39:09 2023 rtc ⇒ rtc0. lrwxrwxrwx root root 15 B Wed Apr 26 08:39:04 2023 stderr ⇒ /proc/self/fd/2. lrwxrwxrwx root root 15 B Wed Apr 26 08:39:04 2023 stdin ⇒ /proc/self/fd/0. lrwxrwxrwx root root 15 B Wed Apr 26 08:39:04 2023 stdout ⇒ /proc/self/fd/1...
Puteți crea legături simbolice folosind ln
utilitar în Linux ca în exemplul de mai jos.
# atingeți fișierul1.txt. # ln -s file1.txt /home/tecmint/file1.txt [creează o legătură simbolică] # ls -l /home/tecmint/ | grep „^l” [Listați linkuri simbolice]
În exemplul de mai sus, am creat un fișier numit fișier1.txt
în /tmp director, apoi a creat legătura simbolică, /home/tecmint/file1.txt a indica /tmp/file1.txt.
Acestea sunt fișiere care permit comunicarea între procese prin conectarea ieșirii unui proces la intrarea altuia. O conductă numită este de fapt un fișier care este utilizat de două procese pentru a comunica cu fiecare și acționează ca o conductă Linux.
Listarea prizelor de conducte într-un director:
# ls -l | grep "^p" prw-rw-r-- 1 tecmint tecmint 0 Apr 18 17:47 pipe1. prw-rw-r-- 1 tecmint tecmint 0 Apr 18 17:47 pipe2. prw-rw-r-- 1 tecmint tecmint 0 Apr 18 17:47 pipe3. prw-rw-r-- 1 tecmint tecmint 0 Apr 18 17:47 pipe4. prw-rw-r-- 1 tecmint tecmint 0 Apr 18 17:47 pipe5.
Puteți folosi mkfifo utilitar pentru a crea o conductă numită în Linux, după cum urmează.
# mkfifo pipe1. # echo „Acesta se numește conductă1” > conductă1.
În exemplul de mai sus, am creat o conductă numită numită teava1
, apoi i-am transmis câteva date folosind comanda ecou, după aceea shell-ul a devenit neinteractiv în timpul procesării intrării.
Apoi am deschis un alt shell și am rulat o altă comandă pentru a imprima ceea ce a fost transmis conductei.
# while read line ;do echo "Acest lucru a fost trecut-'$line'"; TerminatFișiere Linux Socket
Acestea sunt fișiere care oferă un mijloc de comunicare între procese, dar pot transfera date și informații între procese care rulează în medii diferite.
Aceasta înseamnă că socket-urile oferă transfer de date și informații între procesele care rulează pe diferite mașini dintr-o rețea.
Un exemplu pentru a arăta funcționarea socket-urilor ar fi un browser web care face o conexiune la un server web.
# ls -l /dev/ | grep "^s" srw-rw-rw- 1 rădăcină rădăcină 0 Apr 18 10:26 log.Acesta este un exemplu de priză creată în C prin folosirea
priză()
apel de sistem.int socket_desc= socket (AF_INET, SOCK_STREAM, 0);În cele de mai sus:
AF_INET
este familia de adrese (IPv4)SOCK_STREAM
este tipul (conexiunea este orientată spre protocolul TCP)0
este protocolul (protocolul IP)Pentru a vă referi la fișierul socket, utilizați socket_desc
, care este același cu descriptorul de fișier și utilizați citit()
și scrie()
apeluri de sistem pentru a citi și, respectiv, a scrie din socket.
Acestea sunt fișiere speciale care stochează atât fișiere obișnuite, cât și alte fișiere speciale și sunt organizate pe sistemul de fișiere Linux într-o ierarhie pornind de la rădăcină. (/)
director.
Listarea socket-urilor într-un director:
# ls -l / | grep "^d" drwxr-xr-x root root 4,0 KB vineri, 21 apr 10:21:42 2023 boot. drwxr-xr-x root root 4.0 KB Miercuri 6 oct 22:55:05 2021 cdrom. rădăcină rădăcină drwxr-xr-x 4,4 KB miercuri 26 apr 08:39:12 2023 dev. rădăcină rădăcină drwxr-xr-x 12 KB Sâmbătă, 22 apr 10:59:02 2023 etc. drwxr-xr-x root root 4.0 KB Miercuri 6 octombrie 22:55:12 2021 acasă. rădăcină rădăcină drwx 16 KB miercuri 6 octombrie 22:52:31 2021 pierdut+găsit. rădăcină rădăcină drwxr-xr-x 4,0 KB Joi 7 octombrie 18:03:09 2021 media. rădăcină rădăcină drwxr-xr-x 4,0 KB Luni 18 iulie 11:34:54 2022 mnt. rădăcină rădăcină drwxr-xr-x 4,0 KB Mar 4 apr 15:09:01 2023 opt. dr-xr-xr-x root root 0 B Wed Apr 26 08:39:04 2023 proc. rădăcină rădăcină drwx 4.0 KB Vineri 7 apr 11:28:42 2023 rădăcină. rădăcină rădăcină drwxr-xr-x 1,1 KB miercuri 26 aprilie 08:44:09 2023 rulează. rădăcină rădăcină drwxr-xr-x 4,0 KB Miercuri 15 decembrie 13:23:40 2021 srv. dr-xr-xr-x root root 0 B Wed Apr 26 08:39:04 2023 sys. rădăcină drwxrwxrwt rădăcină 4,0 KB Miercuri 26 apr 10:14:23 2023 tmp. rădăcină rădăcină drwxr-xr-x 4,0 KB Sâmbătă, 3 iulie 22:29:26 2021 usr. drwxr-xr-x root root 4.0 KB Thu Mar 30 10:46:04 2023 var.
Puteți face un director folosind comanda mkdir.
# mkdir -m 1666 tecmint.com. # mkdir -m 1666 news.tecmint.com. # mkdir -m 1775 linuxsay.com.
Acum ar trebui să înțelegeți clar de ce totul în Linux este un fișier și diferitele tipuri de fișiere care pot exista pe sistemul dumneavoastră Linux.
Puteți adăuga mai multe la aceasta citind mai multe despre tipurile de fișiere individuale și acestea sunt create. Sper că veți găsi acest ghid util și pentru orice întrebări și informații suplimentare pe care ați dori să le împărtășiți, vă rugăm să lăsați un comentariu și vom discuta mai multe.