Yksi Linux-käyttöjärjestelmän ja muiden UNIX-tyyppisten käyttöjärjestelmien määritelmistä on, että "kaikki on tiedosto". Tämä on yksinkertaistamista, mutta ymmärrys siitä, mitä se tarkoittaa, auttaa sinua ymmärtämään, miten Linux toimii.
Linuxissa esiintyy monia asioita tiedostojärjestelmässä, mutta ne eivät todellisuudessa ole tiedostoja. Ne ovat erityisiä tiedostoja, jotka edustavat laitteistoja, järjestelmätietoja ja muita asioita - mukaan lukien satunnaislukugeneraattori.
Nämä erikoistiedostot voivat sijaita pseudo- tai virtuaalisissa tiedostojärjestelmissä kuten / dev, joka sisältää erityisiä tiedostoja, jotka edustavat laitteita ja / proc, joka sisältää erityisiä tiedostoja, jotka edustavat järjestelmä- ja prosessitietoja.
Oletetaan esimerkiksi, että haluat löytää tietoa suorittimestasi. / Proc -hakemisto sisältää erityisen tiedoston - / proc / cpuinfo -, joka sisältää nämä tiedot.
Et tarvitse erityistä komentoa, joka kertoo CPU-tiedostosi - voit lukea tämän tiedoston sisällön käyttäen mitä tahansa vakiokomentoa, joka toimii tavallisen tekstitiedoston kanssa. Voit esimerkiksi käyttää komentoa cat / proc / cpuinfo tulostaa tämän tiedoston sisältö päätteeseen - tulostat CPU-tiedot päätteelle. Voit jopa avata / proc / cpuinfo tekstieditorissa sisällön tarkastelemiseksi.
Muista, että / proc / cpuinfo ei oikeastaan ole tekstitiedostoa, joka sisältää nämä tiedot - Linux-ydin ja proc-tiedostojärjestelmä paljastavat nämä tiedot meille tiedostoina. Näin voimme käyttää tuttuja työkaluja tietojen tarkastelemiseen ja käsittelemiseen.
/ Proc -hakemisto sisältää myös muita vastaavia tiedostoja, esimerkiksi:
/ Dev-hakemistossa löytyy tiedostoja, jotka edustavat laitteita - samoin kuin tiedostoja, jotka edustavat muita erikoisia asioita. Esimerkiksi / dev / cdrom on CD-asema. / dev / sda edustaa ensimmäistä kiintolevyä, kun taas / dev / sda1 edustaa ensimmäistä kiintolevyn ensimmäistä osuutta.
Haluatko asentaa CD-levyt? Suorita mount-komento ja määritä / dev / cdrom laitteeksi, jonka haluat asentaa. Haluatko jakaa ensimmäisen kiintolevyn? Suorita levyn osiointiapuohjelma ja määritä / dev / sda kiintolevyksi, jota haluat muokata. Haluatko muodostaa ensimmäisen osion ensimmäiselle kiintolevylle? Suorita muotoilukomento ja kerro sille, että se muodostaa / dev / sda1.
Kuten näette, näiden laitteiden paljastaminen osana tiedostojärjestelmää on sen etuja. Tiedostojärjestelmä tarjoaa yhtenäisen "nimiavaruuden", jota kaikki sovellukset voivat käyttää laitteiden käsittelemiseen ja käyttöön.
/ Dev-tiedostojärjestelmä ei sisällä vain tiedostoja, jotka edustavat fyysisiä laitteita. Tässä on kolme merkittävintä erikoislaitteistoa, jotka se sisältää:
Jos ajattelet näitä kolmea tiedostoina, et näe niitä käyttöä. Sen sijaan ajattele niitä työkaluina.
Esimerkiksi oletuksena Linux-komennot tuottavat virheilmoituksia ja muita tulosteita, jotka ne tulostavat vakiotuloon, tavallisesti päätteeseen. Jos haluat suorittaa komennon eikä välitä sen tuotosta, voit ohjata kyseisen tuoton uudelleen / dev / null: iin. Komentokäskyjen uudelleenohjaus / dev / null -tiedosto hylkää sen välittömästi. Sen sijaan, että jokainen komento toteuttaa oman "hiljaisen tilan", voit käyttää tätä menetelmää millä tahansa komennolla.
komento> / dev / null
Jos haluat satunnaislähteen - sanot salausavain generoimalla sinun ei tarvitse kirjoittaa oma satunnaislukugeneraattori - voit käyttää / dev / satunnaista.
Jos haluat poistaa kiintolevyn sisällön kirjoittamalla 0: n siihen, et tarvitse erityistä apuohjelmaa, joka on omistettu nollausasemalle - voit käyttää tavallisia apuohjelmia ja / dev / nollaa. Esimerkiksi dd komento lukee paikasta ja kirjoittaa toiselle paikalle. Seuraava komento lukee nollat / dev / nollaa ja kirjoittaa ne suoraan järjestelmään ensimmäiseen kiintolevyosiosiin, tyhjentämällä sen sisältö kokonaan.
(Varoitus: Tämä komento poistaa kaikki ensimmäisen osion tiedot, jos suoritat sen. Suorita tämä komento vain, jos haluat tuhota tietoja.)
dd if = / dev / nolla = / dev / sda1
Tässä käytämme dd: tä erikoistiedostoilla (/ dev / nolla ja / dev / sda1), mutta voimme myös käyttää dd: n lukea ja kirjoittaa todellisiin tiedostoihin. Sama komento toimii sekä manipuloimalla laitteita suoraan ja käsittelemällä tiedostoja.
Käytännössä on tarkempaa sanoa, että "kaikki on bytivirtaa" kuin "kaikki on tiedosto." / Dev / random ei ole tiedosto, mutta se on varmasti tavu tavuista. Ja vaikka nämä asiat eivät teknisesti ole tiedostoja, ne ovat käytettävissä tiedostojärjestelmässä - tiedostojärjestelmä on universaali "nimiavaruus", jossa kaikki on saatavilla. Haluatko käyttää satunnaislukugeneraattoria vai lukea suoraan laitteesta? Löydät molemmat tiedostossa; mitään muuta muotoilua ei tarvita.
Tietysti jotkut asiat eivät todellakaan ole tiedostoja - järjestelmissä käynnissä olevat prosessit eivät ole osa tiedostojärjestelmää. "Kaikki on tiedosto" on epätarkka, mutta monet asiat toimivat tiedostoina.