Kotisivu » miten » Mitä “Kaikki on tiedosto” tarkoittaa Linuxissa?

    Mitä “Kaikki on tiedosto” tarkoittaa Linuxissa?

    Yksi Linuxin ja muiden UNIX-kaltaisten käyttöjärjestelmien määrittävistä piirteistä on, että “kaikki on tiedosto.” Tämä on liian yksinkertaistava, mutta ymmärtää, mitä se tarkoittaa, auttaa sinua ymmärtämään, miten Linux toimii.

    Linuxissa esiintyy monia asioita tiedostojärjestelmässä, mutta ne eivät oikeastaan ​​ole tiedostoja. Ne ovat erityisiä tiedostoja, jotka edustavat laitteita, järjestelmätietoja ja muita asioita - mukaan lukien satunnaislukugeneraattori.

    Nämä erityiset tiedostot voivat sijaita näennäis- tai virtuaalitiedostojärjestelmissä, kuten / dev, jotka sisältävät laitteita edustavia erityisiä tiedostoja, ja / proc, joka sisältää erityisiä tiedostoja, jotka edustavat järjestelmän ja prosessin tietoja.

    / proc

    Oletetaan esimerkiksi, että haluat etsiä tietoja keskusyksiköstäsi. / Proc-hakemistossa on erityinen tiedosto - / proc / cpuinfo -, joka sisältää nämä tiedot.

    Sinun ei tarvitse erityistä komentoa, joka kertoo CPU-tietosi - voit vain lukea tämän tiedoston sisällön millä tahansa tavallisella komennolla, joka toimii tavallisilla tekstitiedostoilla. Voit esimerkiksi käyttää komentoa kissa / proc / cpuinfo tulostaa tämän tiedoston sisältö päätelaitteelle - CPU-tietojen tulostaminen päätelaitteelle. Voit jopa avata / proc / cpuinfo tekstieditorissa nähdäksesi sen sisällön.

    Muista, että / proc / cpuinfo ei oikeastaan ​​ole tätä tietoa sisältävä tekstitiedosto - Linux-ydin ja proc-tiedostojärjestelmä paljastavat nämä tiedot meille tiedostona. Näin voimme käyttää tuttuja työkaluja tietojen tarkasteluun ja työskentelyyn.

    / Proc-hakemistossa on myös muita vastaavia tiedostoja, esimerkiksi:

    • / proc / uptime - Linux-ytimen käyttöaika - toisin sanoen, kuinka kauan järjestelmä on ollut käynnissä sammuttamatta.
    • / proc / version - Käyttää Linux-ytimen versiota.

    / dev

    / Dev-hakemistossa on tiedostoja edustavia tiedostoja - sekä muita erityisiä asioita edustavia tiedostoja. Esimerkiksi / dev / cdrom on CD-ROM-asema. / dev / sda edustaa ensimmäistä kiintolevyäsi, kun taas / dev / sda1 edustaa ensimmäistä kiintolevyn osiota.

    Haluatko asentaa CD-ROM-levyn? Suorita asennuskomento ja määritä / dev / cdrom kuin laite, jonka haluat liittää. Haluatko jakaa ensimmäisen kiintolevyn? Suorita levyosiointityökalu ja määritä / dev / sda kiintolevyksi, jota haluat muokata. Haluatko alustaa ensimmäisen kiintolevyn ensimmäisen osion? Suorita muotoilukomento ja kerro se muodossa / dev / sda1.

    Kuten näette, näiden laitteiden paljastaminen osana tiedostojärjestelmää on sen etuja. Tiedostojärjestelmä tarjoaa johdonmukaisen ”nimitilan”, jota kaikki sovellukset voivat käyttää laitteiden osoitukseen ja niiden käyttämiseen.

    / dev / null, / dev / random ja / dev / nolla

    / Dev-tiedostojärjestelmä ei sisällä vain tiedostoja, jotka edustavat fyysisiä laitteita. Tässä on kolme merkittävintä erikoislaitetta, jotka sisältävät:

    • / dev / null - Poistaa kaikki sille kirjoitetut tiedot - ajattele sitä roskakoriin tai mustaan ​​reikään. Jos näet koskaan kommentin, jossa kerrotaan, että haluat lähettää valituksia / dev / null - se on geeky tapa sanoa "heittää ne roskakoriin".
    • / dev / random - Tuottaa satunnaisuutta käyttämällä ympäristömelua. Se on satunnaislukugeneraattori, johon voit hyödyntää.
    • / dev / zero - Tuottaa nollia - jatkuvaa nollavirtaa.

    Jos ajattelet näistä kolmesta tiedostona, et näe niitä. Sen sijaan ajattele niitä työkaluina.

    Esimerkiksi Linux-komennot tuottavat oletusarvoisesti virheilmoituksia ja muita tulostustuloksia, jotka ne tulostavat normaalilähtöön, tavallisesti päätelaitteeseen. Jos haluat suorittaa komennon ja et välitä sen lähdöstä, voit ohjata kyseisen lähdön / dev / null-tilaan. Komennon lähdön ohjaaminen / dev / nulliin hylkää välittömästi sen. Sen sijaan, että jokaisella komennolla olisi oma "hiljainen tila", voit käyttää tätä menetelmää millä tahansa komennolla.

    komento> / dev / null

    Jos halusit satunnaislähdettä - esimerkiksi salausavaimen tuottamiseen, sinun ei tarvitse kirjoittaa omaa satunnaislukugeneraattoriasi - voit käyttää / dev / random.

    Jos haluat poistaa kiintolevyn sisällön kirjoittamalla siihen 0: n, et tarvitse erityistä apuohjelmaa, joka on tarkoitettu aseman nollaamiseen - voit käyttää tavallisia apuohjelmia ja / dev / nolla. Esimerkiksi dd komento lukee paikasta ja kirjoittaa toiseen paikkaan. Seuraava komento lukee nollia / dev / nollasta ja kirjoita ne suoraan järjestelmän ensimmäiseen kiintolevyosioon, poistamalla sen sisällön 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äytetään dd: tä erityisillä tiedostoilla (/ dev / zero ja / dev / sda1), mutta voisimme myös käyttää dd: tä lukemaan ja kirjoittamaan todellisiin tiedostoihin. Sama komento toimii sekä laitteiden manipuloinnissa että tiedostojen käsittelyssä.

    Selvennys

    Käytännössä on tarkempaa sanoa, että "kaikki on tavujen virta" kuin "kaikki on tiedosto." / Dev / random ei ole tiedosto, mutta se on varmasti tavujen virta. Ja vaikka nämä asiat eivät teknisesti ole tiedostoja, ne ovat saatavilla tiedostojärjestelmässä - tiedostojärjestelmä on yleinen ”nimitila”, jossa kaikki on käytettävissä. Haluatko käyttää satunnaislukugeneraattoria tai lukea suoraan laitteesta? Löydät molemmat tiedostojärjestelmässä; muuta osoitetta ei tarvita.

    Jotkut asiat eivät tietenkään ole tiedostoja - järjestelmässä toimivat prosessit eivät ole osa tiedostojärjestelmää. "Kaikki on tiedosto" on epätarkka, mutta paljon asioita käyttäytyy tiedostoina.