Mida tähendab „kõik on fail” Linuxis?
Linuxi ja teiste UNIX-i sarnaste operatsioonisüsteemide üks tähtsamaid omadusi on see, et „kõik on fail.” See on ülelihtsustamine, kuid mõistmine, mida see tähendab, aitab teil mõista, kuidas Linux töötab.
Linuxis ilmuvad paljud asjad failisüsteemis, kuid need ei ole tegelikult failid. Nad on spetsiaalsed failid, mis esindavad riistvaraseadmeid, süsteemi teavet ja muid asju, sealhulgas juhusliku numbri generaatorit.
Need erifailid võivad asuda pseudo- või virtuaalsetes failisüsteemides, näiteks / dev, mis sisaldab spetsiaalseid faile, mis esindavad seadmeid, ja / proc, mis sisaldab spetsiaalseid faile, mis esindavad süsteemi ja protsessi teavet.
/ proc
Oletame näiteks, et soovite teavet oma CPU kohta. / Proc kataloog sisaldab spetsiaalset faili - / proc / cpuinfo -, mis sisaldab seda teavet.
Teil ei ole vaja spetsiaalset käsku, mis ütleb teile oma CPU-info - saate lihtsalt lugeda selle faili sisu mis tahes standardkäsuga, mis töötab lihttekstifailidega. Näiteks võite kasutada käsku kass / proc / cpuinfo selle faili sisu printimiseks terminalile - CPU-teabe printimine terminalile. Saate isegi avada / proc / cpuinfo tekstiredaktoris selle sisu vaatamiseks.
Pea meeles, et / proc / cpuinfo ei ole tegelikult seda teavet sisaldav tekstifail - Linuxi tuum ja proc-failisüsteem avaldavad selle teabe meile failina. See võimaldab meil tutvuda ja tuttavaks kasutada tuttavaid tööriistu.
/ Proc kataloog sisaldab ka muid sarnaseid faile, näiteks:
- / proc / uptime - rakendab teie Linuxi kerneli tööaeg - teisisõnu, kui kaua teie süsteem on sisse lülitatud ilma sulgemata.
- / proc / version - avab teie Linuxi tuuma versiooni.
/ dev
Kataloogis / dev leiad faile, mis esindavad seadmeid - ning faile, mis esindavad teisi erilisi asju. Näiteks on / dev / cdrom teie CD-ROM-draiv. / dev / sda esindab teie esimest kõvaketast, samas kui / dev / sda1 esindab esimest partitsiooni teie esimesel kõvakettal.
Kas soovite oma CD-ROMi ühendada? Käivitage mount käsk ja määrake / dev / cdrom kui seade, mida soovite ühendada. Kas soovite oma esimese kõvaketta partitsioonida? Käivitage kettaosalise utiliit ja määrake / dev / sda kui kõvaketas, mida soovite muuta. Kas soovite esimese kõvaketta esimese sektsiooni vormindada? Käivitage vormindamise käsk ja ütle sellele formaat / dev / sda1.
Nagu näete, on nende seadmete esitamine failisüsteemi osana oma eelised. Failisüsteem pakub järjekindlat "nime ruumi", mida kõik rakendused saavad kasutada seadmetele adresseerimiseks ja neile juurdepääsuks.
/ dev / null, / dev / random ja / dev / null
/ Dev-failisüsteem ei sisalda ainult faile, mis esindavad füüsilisi seadmeid. Siin on kolm kõige märgatavamat spetsiaalset seadet, mis sisaldavad:
- / dev / null - Kõrvaldab kõik sellele kirjutatud andmed - mõtle sellele prügikasti või musta auku. Kui sa näed kommentaari, mis ütleb teile, et saadate kaebusi / dev / null-le - see on geeky viis öelda „viska need prügikasti”.
- / dev / random - toodab juhuslikkust, kasutades keskkonnamüra. See on juhuslik arvegeneraator, mida saab kasutada.
- / dev / zero - toodab nulle - pidev nullide voog.
Kui arvate, et need kolm on failid, ei näe te nende kasutamist. Mõelge neile kui vahenditele.
Näiteks toovad Linuxi käsud vaikimisi välja veateateid ja muud väljundit, mida nad trükivad standardväljundile, tavaliselt terminalile. Kui soovite käsu käivitada ja selle väljundit ei huvita, saate selle väljundi suunata / dev / null. Käsu väljundi suunamine / dev / null-le loobub sellest kohe. Selle asemel, et iga käsk rakendaks oma "vaikne režiimi", saate seda meetodit kasutada mis tahes käsuga.
käsk> / dev / null
Kui soovisite juhuslikkuse allikat - näiteks krüpteerimisvõtme genereerimiseks, ei pea te kirjutama oma juhusliku arvu generaatorit - sa võiksid kasutada / dev / random.
Kõvaketta sisu kustutamiseks, kirjutades sellele 0-d, ei pea te spetsiaalset utiliiti, mis on mõeldud draivi nullimiseks - saate kasutada tavalisi utiliite ja / dev / nulli. Näiteks dd käsk loeb asukohast ja kirjutab teise asukohta. Järgmine käsk loeb nullid / dev / nullist ja kirjutab need otse teie süsteemi esimesele kõvaketta partitsioonile, kustutades selle sisu täielikult.
(Hoiatus: See käsk kustutab kõik teie esimese partitsiooni andmed, kui seda käivitate. Käivitage see käsk ainult siis, kui soovite andmeid hävitada.)
dd if = / dev / null = / dev / sda1
Siin kasutame dd spetsiaalsete failidega (/ dev / null ja / dev / sda1), kuid me võiksime kasutada ka dd-d tegelike failide lugemiseks ja kirjutamiseks. Sama käsk töötab nii seadmete otseseks töötlemiseks kui ka failidega töötamiseks.
Selgitamine
Praktikas on täpsem öelda, et „kõik on baitide voog” kui “kõik on fail.” / Dev / random ei ole fail, kuid see on kindlasti baitide voog. Ja kuigi need asjad tehniliselt ei ole failid, on need failisüsteemis kättesaadavad - failisüsteem on universaalne „nime ruum”, kus kõik on kättesaadav. Kas soovite kasutada juhusliku numbri generaatorit või lugeda otse seadmest? Leiad mõlemad failisüsteemis; mingit muud adresseerimisvormi ei ole vaja.
Muidugi ei ole mõned asjad tegelikult failid - teie süsteemis töötavad protsessid ei kuulu failisüsteemi. „Kõik on fail” on ebatäpne, kuid palju asju toimib failidena.