Una dintre trăsăturile definitorii ale Linux și ale altor sisteme de operare asemănătoare UNIX este că "totul este un fișier". Aceasta este o simplificare simplificată, dar înțelegerea a ceea ce înseamnă înseamnă că vă va ajuta să înțelegeți cum funcționează Linux.
Multe lucruri pe Linux apar în sistemul dvs. de fișiere, dar acestea nu sunt de fapt fișiere. Sunt fișiere speciale care reprezintă dispozitive hardware, informații despre sistem și alte lucruri - inclusiv un generator de numere aleatoare.
Aceste fișiere speciale pot fi localizate în sisteme de fișiere pseudo sau virtuale, cum ar fi / dev, care conține fișiere speciale care reprezintă dispozitive și / proc, care conține fișiere speciale care reprezintă informații despre sistem și proces.
De exemplu, să presupunem că doriți să găsiți informații despre procesorul dvs. Directorul / proc conține un fișier special - / proc / cpuinfo - care conține aceste informații.
Nu aveți nevoie de o comandă specială care să vă spună informațiile CPU - puteți citi conținutul acestui fișier utilizând orice comandă standard care funcționează cu fișiere text simplu. De exemplu, ați putea folosi comanda cat / proc / cpuinfo pentru a tipări conținutul acestui fișier pe terminal - tipărirea informațiilor CPU către terminal. Puteti chiar deschide / proc / cpuinfo intr-un editor de text pentru a vizualiza continutul acestuia.
Amintiți-vă că / proc / cpuinfo nu este de fapt un fișier text care conține aceste informații - kernel-ul Linux și sistemul de fișiere proc expun aceste informații la noi ca fișier. Acest lucru ne permite să folosim instrumente familiare pentru a vizualiza și a lucra cu informațiile.
Directorul / proc conține, de asemenea, alte fișiere similare, de exemplu:
În directorul / dev veți găsi fișiere care reprezintă dispozitive - precum și fișiere care reprezintă alte lucruri speciale. De exemplu, / dev / cdrom este unitatea dvs. CD-ROM. / dev / sda reprezintă prima dvs. unitate de disc, în timp ce / dev / sda1 reprezintă prima partiție de pe prima dvs. unitate de disc.
Doriți să vă montați CD-ROM-ul? Rulați comanda mount și specificați / dev / cdrom ca dispozitiv pe care doriți să-l montați. Doriți să partiționați primul hard disk? Rulați un utilitar de partiționare pe disc și specificați / dev / sda ca hard disk pe care doriți să îl modificați. Doriți să formatați prima partiție pe primul dvs. hard disk? Rulați o comandă de formatare și spuneți-i formatul / dev / sda1.
După cum puteți vedea, expunerea acestor dispozitive ca parte a sistemului de fișiere are avantajele sale. Sistemul de fișiere oferă un "spațiu de nume" consistent pe care toate aplicațiile îl pot utiliza pentru a aborda și a accesa dispozitivele.
Sistemul de fișiere / dev nu conține doar fișiere care reprezintă dispozitive fizice. Iată trei dintre cele mai notabile dispozitive speciale pe care le conține:
Dacă vă gândiți la aceste trei fișiere, nu veți vedea o utilizare pentru ele. În schimb, gândiți-vă la ele ca la unelte.
De exemplu, în mod implicit, comenzile Linux produc mesaje de eroare și alte ieșiri pe care le imprimă la ieșirea standard, în mod normal terminalul. Dacă doriți să executați o comandă și nu vă pasă de ieșirea acesteia, puteți redirecționa ieșirea la / dev / null. Redirecționarea ieșirii unei comenzi la / dev / null o elimină imediat. În loc de a avea fiecare comandă să implementeze propriul "mod silențios", puteți folosi această metodă cu orice comandă.
comanda> / dev / null
Dacă v-ați dorit o sursă de aleatorie - să spuneți, pentru generarea unei chei de criptare, nu ar trebui să scrieți propriul generator de numere aleatoare - ați putea folosi / dev / random.
Pentru a șterge conținutul unui hard disk prin scrierea lui 0 la el, nu aveți nevoie de un utilitar special dedicat zero-ului unei unități - ați putea folosi utilitarele standard și / dev / zero. De exemplu, dd comanda citește dintr-o locație și scrie în altă locație. Următoarea comandă va citi zerouri din / dev / zero și le va scrie direct pe prima partiție de hard disk de pe sistem, ștergând complet conținutul.
(Avertizare: Această comandă va șterge toate datele de pe prima dvs. partiție dacă o rulați. Rulați această comandă numai dacă doriți să distrugeți datele.)
dd dacă = / dev / zero din = / dev / sda1
Aici folosim dd cu fișiere speciale (/ dev / zero și / dev / sda1), dar am putea folosi și dd pentru a citi și scrie fișierele reale. Aceeași comandă funcționează atât pentru manipularea directă a dispozitivelor, cât și pentru lucrul cu fișierele.
În practică, este mai precis să spunem că "totul este un flux de octeți" decât "totul este un fișier." / Dev / random nu este un fișier, dar cu siguranță este un flux de octeți. Și, deși aceste lucruri nu sunt fișiere tehnice, ele sunt accesibile în sistemul de fișiere - sistemul de fișiere este un "spațiu de nume" universal în care totul este accesibil. Doriți să accesați un generator de numere aleatorii sau să citiți direct dintr-un dispozitiv? Veți găsi atât în sistemul de fișiere; nu este nevoie de altă formă de abordare.
Desigur, unele lucruri nu sunt fișiere de fapt - procesele care rulează pe sistemul dvs. nu fac parte din sistemul de fișiere. "Totul este un fișier" este inexact, dar multe lucruri se comportă ca fișiere.