29Jul

Mitä "Kaikki on tiedosto" tarkoittaa Linuxia?

Yksi Linuxin 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 Linuxin toimivuutta.

Linuxissa on monia asioita tiedostojärjestelmässäsi, 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.

/ proc

Esimerkiksi sanokaamme haluat etsiä tietoja 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ää komentorivi

-kissa /proc/ cpuinfo tulostaa tämän tiedoston sisällön päätelaitteelle - tulostat CPU-tiedot päätteelle. Voit jopa avata /proc/ cpuinfo tekstieditorissa sen sisällön katsomiseksi.

Muista, /proc/ cpuinfo ei oikeastaan ​​ole tekstitiedostoa, joka sisältää nämä tiedot - Linux-ydin ja proc-tiedostojärjestelmä paljastavat meille tiedoston. Näin voimme käyttää tuttuja työkaluja tietojen tarkastelemiseen ja käsittelemiseen.

/ proc-hakemisto sisältää myös muita vastaavia tiedostoja, esimerkiksi:

  • /proc/ uptime - Näyttää Linux-ytimen käytettävyyden - toisin sanoen, kuinka kauan järjestelmäsi on ollut päältä sulkematta.
  • /proc/ versio - Näyttää Linux-ytimen version.

/ dev

/ dev-hakemistossa löydät 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 kiinnittää 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 alustuskomento ja kerro se /dev/ sda1: n muodostamiseksi.

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/ null, /dev/ satunnainen ja /dev/ nolla

/ dev-tiedostojärjestelmä ei sisällä vain tiedostoja, jotka edustavat fyysisiä laitteita. Tässä on kolme tärkeimpiä erikoislaitteita, jotka se sisältää:

  • /dev/ null - Poistaa kaikki kirjoitetut tiedot - ajatella sitä roskakori tai musta aukko. Jos näet kommentoinnin, joka kertoo sinulle, että lähetät valitukset /dev/: lle null - se on geeky tapa sanoa "heittää heidät roskakoriin."
  • /dev/ satunnainen - tuottaa satunnaisuuden ympäristömelua käyttäen. Se on satunnaislukugeneraattori, johon voit napauttaa.
  • /dev/ nolla - Tuottaa nollia - jatkuva nollavirta.

Jos ajattelet näitä kolmea tiedostoina, et näe käyttöä niille. 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 sen ulostulon /dev/ nulliksi. Komentosarjojen uudelleenohjaaminen /dev/: hen nolla 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 & gt;/dev/ null

Jos haluat satunnaislähteen - sanokaa, että salausavain generoimiseksi sinun ei tarvitse kirjoittaa oma satunnaislukugeneraattori - voit käyttää /dev/ satunnaista.

Voit poistaa kiintolevyn sisällön kirjoittamalla 0: n siihen, et tarvitse erityistä apuohjelmaa, joka on omistettu aseman nollaamiseksi - voit käyttää tavallisia apuohjelmia ja /dev/ nollaa. Esimerkiksi dd -komento lukee paikasta ja kirjoittaa toiseen paikkaan. Seuraava komento lukee nollia /dev/ nollasta ja kirjoittaa ne suoraan ensimmäiseen kiintolevyosiosi järjestelmään, joka poistaa sen sisällön kokonaan.

( ) Jos ( ) on ( ), ( ): ( )erityisillä tiedoilla( /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.

Selvennys

Käytännössä on tarkempaa sanoa, että "kaikki on tavuinen tavu" kuin "kaikki on tiedosto". /dev/ satunnaisuus 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.

Tietenkin jotkut asiat eivät oikeastaan ​​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.