Domača » kako » Kaj pomeni »vse je datoteka« v Linuxu?

    Kaj pomeni »vse je datoteka« v Linuxu?

    Eden od značilnosti, ki definira Linux in druge operacijske sisteme, podobne Unixu, je, da je "vse, kar je datoteka.".

    V datotečnem sistemu se na Linuxu pojavijo številne stvari, ki pa dejansko niso datoteke. To so posebne datoteke, ki predstavljajo strojne naprave, sistemske informacije in druge stvari - vključno z generatorjem naključnih števil.

    Te posebne datoteke se lahko nahajajo v psevdo ali virtualnih datotečnih sistemih, kot je / dev, ki vsebuje posebne datoteke, ki predstavljajo naprave, in / proc, ki vsebuje posebne datoteke, ki predstavljajo sistemske in procesne informacije..

    / proc

    Na primer, recimo, da želite najti informacije o CPU. Imenik / proc vsebuje posebno datoteko - / proc / cpuinfo - ki vsebuje te informacije.

    Ne potrebujete posebnega ukaza, ki vam pove vašo CPU informacijo - lahko samo preberete vsebino te datoteke s katerim koli standardnim ukazom, ki deluje z datotekami z navadnim besedilom. Na primer, lahko uporabite ukaz cat / proc / cpuinfo za tiskanje vsebine te datoteke na terminal - tiskanje informacij o CPE-ju na terminal. Lahko celo odprete / proc / cpuinfo v urejevalniku besedila, da si ogledate njegovo vsebino.

    Zapomnite si, da / proc / cpuinfo dejansko ni besedilna datoteka, ki vsebuje te informacije - jedro Linuxa in datotečni sistem proc nam posredujeta kot datoteko. To nam omogoča uporabo znanih orodij za ogled in delo z informacijami.

    Imenik / proc vsebuje tudi druge podobne datoteke, na primer:

    • / proc / uptime - razkrije uptime vašega jedra Linuxa - z drugimi besedami, kako dolgo je vaš sistem vklopljen brez zaustavitve.
    • / proc / version - Razkrije različico vašega jedra Linuxa.

    / dev

    V imeniku / dev boste našli datoteke, ki predstavljajo naprave - kot tudi datoteke, ki predstavljajo druge posebne stvari. / Dev / cdrom je na primer vaš CD-ROM pogon. / dev / sda predstavlja vaš prvi trdi disk, medtem ko / dev / sda1 predstavlja prvo particijo na vašem prvem trdem disku.

    Želite namestiti CD-ROM? Zaženite ukaz mount in navedite / dev / cdrom kot napravo, ki jo želite namestiti. Želite razdeliti svoj prvi trdi disk? Zaženite pripomoček za particioniranje na disku in podajte / dev / sda kot trdi disk, ki ga želite urediti. Želite formatirati prvo particijo na prvem trdem disku? Zaženite ukaz za oblikovanje in mu povejte, da oblikuje / dev / sda1.

    Kot lahko vidite, ima izpostavljanje teh naprav kot dela datotečnega sistema svoje prednosti. Datotečni sistem zagotavlja skladen "prostor imena", ki ga lahko uporabljajo vse aplikacije za naslov in dostop do naprav.

    / dev / null, / dev / random in / dev / zero

    Datotečni sistem / dev ne vsebuje samo datotek, ki predstavljajo fizične naprave. Tu so trije najpomembnejše posebne naprave, ki jih vsebuje:

    • / dev / null - Zavrže vse podatke, ki so bili zapisani nanj - mislim, da je to smetnjak ali črna luknja. Če ste kdaj videli komentar, ki vas nagovarja, da pošljete pritožbe na / dev / null - to je geeky način, da bi rekli »vrgite jih v smeti«.
    • / dev / random - Ustvari naključnost z uporabo okoljskega hrupa. To je generator naključnih števil, v katerega lahko pridete.
    • / dev / zero - proizvaja ničle - konstanten tok ničel.

    Če pomislite na te tri datoteke kot datoteke, jih ne boste videli uporabljati. Namesto tega jih pomislite kot orodje.

    Na primer, Linuxovi ukazi ustvarjajo sporočila o napakah in druge izhode, ki jih natisnejo na standardni izhod, običajno terminal. Če želite zagnati ukaz in ne zanima njegovega izhoda, ga lahko preusmerite v / dev / null. Preusmerjanje izhoda ukaza v / dev / null ga takoj zavrže. Namesto, da vsak ukaz izvaja svoj »tihi način«, lahko uporabite to metodo s katerim koli ukazom.

    ukaz / dev / null

    Če ste želeli vir naključnosti - recimo, za generiranje šifrirnega ključa, vam ne bi bilo treba napisati lastnega generatorja naključnih števil - lahko uporabite / dev / random.

    Če želite izbrisati vsebino trdega diska tako, da mu pišete 0, ne potrebujete posebnega pripomočka, namenjenega ničelnemu pogonu - lahko uporabite standardne pripomočke in / dev / zero. Na primer: dd ukaz bere z lokacije in piše na drugo mesto. Naslednji ukaz bi prebral ničle iz / dev / zero in jih zapisal neposredno na prvo particijo trdega diska v vašem sistemu, pri čemer bi se njena vsebina popolnoma izbrisala..

    (Opozorilo: Ta ukaz izbriše vse podatke na prvi particiji, če jih zaženete. Ta ukaz zaženite samo, če želite uničiti podatke.)

    dd če je = / dev / zero od = / dev / sda1

    Tukaj uporabljamo dd s posebnimi datotekami (/ dev / zero in / dev / sda1), vendar pa lahko uporabimo tudi dd za branje in zapisovanje dejanskih datotek. Isti ukaz deluje tako za neposredno upravljanje naprav kot za delo z datotekami.

    Pojasnilo

    V praksi je natančneje povedati, da je »vse, kar je bajtov«, kot »vse je datoteka.« / Dev / random ni datoteka, vendar je zagotovo tok bajtov. In čeprav teh stvari tehnično niso datoteke, so dostopne v datotečnem sistemu - datotečni sistem je univerzalni »imenski prostor«, kjer je vse dostopno. Želite dostopati do generatorja naključnih števil ali brati neposredno iz naprave? Oba najdete v datotečnem sistemu; ni potrebna nobena druga oblika obravnavanja.

    Seveda nekatere stvari dejansko niso datoteke - procesi, ki se izvajajo v vašem sistemu, niso del datotečnega sistema. "Vse je datoteka" je netočna, vendar se veliko stvari obnaša kot datoteke.