Početna » kako da » Što znači “sve što je datoteka” u Linuxu?

    Što znači “sve što je datoteka” u Linuxu?

    Jedna od osnovnih značajki Linuxa i drugih operacijskih sustava nalik UNIX-u je da je "sve datoteka." Ovo je pretjerano pojednostavljenje, ali razumijevanje što to znači pomoći će vam razumjeti kako Linux radi.

    Mnoge se stvari na Linuxu pojavljuju u vašem datotečnom sustavu, ali one zapravo nisu datoteke. To su posebne datoteke koje predstavljaju hardverske uređaje, informacije o sustavu i druge stvari - uključujući generator slučajnih brojeva.

    Ove posebne datoteke mogu se nalaziti u pseudo ili virtualnim datotečnim sustavima kao što je / dev, koji sadrži posebne datoteke koje predstavljaju uređaje, i / proc, koji sadrži posebne datoteke koje predstavljaju informacije o sustavu i podacima o procesu.

    / proc

    Na primjer, recimo da želite pronaći informacije o CPU-u. Direktorij / proc sadrži posebnu datoteku - / proc / cpuinfo - koja sadrži te informacije.

    Ne trebate posebnu naredbu koja vam govori vaš CPU info - možete jednostavno pročitati sadržaj ove datoteke koristeći bilo koju standardnu ​​naredbu koja radi s običnim tekstualnim datotekama. Na primjer, možete koristiti naredbu cat / proc / cpuinfo za ispis sadržaja ove datoteke na terminal - ispis podataka CPU-a na terminal. Možete čak otvoriti / proc / cpuinfo u uređivaču teksta da biste vidjeli njegov sadržaj.

    Zapamtite, / proc / cpuinfo zapravo nije tekstualna datoteka koja sadrži ove informacije - Linux kernel i proc datotečni sustav izlažu ove informacije nama kao datoteku. To nam omogućuje da koristimo poznate alate za pregled i rad s informacijama.

    Direktorij / proc sadrži i druge slične datoteke, na primjer:

    • / proc / uptime - razotkriva vrijeme neprekidnog rada vašeg Linux kernela - drugim riječima, koliko dugo je vaš sustav uključen bez isključivanja.
    • / proc / version - Izlaže verziju vašeg Linux kernela.

    / dev

    U imeniku / dev ćete pronaći datoteke koje predstavljaju uređaje - kao i datoteke koje predstavljaju druge posebne stvari. Na primjer, / dev / cdrom je vaš CD-ROM pogon. / dev / sda predstavlja vaš prvi tvrdi disk, dok / dev / sda1 predstavlja prvu particiju na vašem prvom tvrdom disku.

    Želite li montirati CD-ROM? Pokrenite naredbu mount i navedite / dev / cdrom kao uređaj koji želite montirati. Želite li podijeliti svoj prvi tvrdi disk? Pokrenite uslužni program za particioniranje diska i navedite / dev / sda kao tvrdi disk koji želite urediti. Želite li formatirati prvu particiju na svom prvom tvrdom disku? Pokrenite naredbu oblikovanja i recite joj da formatira / dev / sda1.

    Kao što možete vidjeti, izlaganje tih uređaja kao dijela datotečnog sustava ima svoje prednosti. Sustav datoteka osigurava dosljedan "prostor imena" koji sve aplikacije mogu koristiti za adresiranje i pristup uređajima.

    / dev / null, / dev / random, i / dev / zero

    Datotečni sustav / dev ne sadrži samo datoteke koje predstavljaju fizičke uređaje. Ovdje su tri najznačajnija posebna uređaja koja sadrži:

    • / dev / null - Odbacuje sve podatke koji su mu napisani - zamislite ih kao smeće ili crnu rupu. Ako ikada vidite komentar koji vam govori da šaljete žalbe na / dev / null - to je geeky način da se kaže "bacite ih u smeće".
    • / dev / random - stvara nasumičnost pomoću buke okoline. To je generator slučajnih brojeva u koji možete ući.
    • / dev / zero - proizvodi nule - konstantan tok nula.

    Ako mislite o tim trima datotekama, nećete ih vidjeti koristiti. Umjesto toga, razmislite o njima kao o alatima.

    Na primjer, Linux naredbe proizvode poruke o pogreškama i druge izlaze koje ispisuju na standardni izlaz, obično terminal. Ako želite pokrenuti naredbu i ne brinete o njegovom izlazu, možete preusmjeriti taj izlaz na / dev / null. Preusmjeravanje izlaza naredbe u / dev / null odmah ga odbacuje. Umjesto da svaka naredba implementira vlastiti "tihi način rada", tu metodu možete koristiti s bilo kojom naredbom.

    naredba> / dev / null

    Ako ste željeli izvor slučajnosti - recimo, za generiranje ključa za šifriranje, ne biste trebali pisati vlastiti generator slučajnih brojeva - možete koristiti / dev / random.

    Da biste izbrisali sadržaj tvrdog diska tako da ga napišete na 0, ne trebate poseban uslužni program posvećen nuliranju pogona - možete koristiti standardne alate i / dev / zero. Na primjer, dd naredba čita s lokacije i piše na drugo mjesto. Sljedeća naredba će čitati nule iz / dev / zero i pisati ih izravno na prvu particiju tvrdog diska na vašem sustavu, potpuno brišući njezin sadržaj.

    (Upozorenje: Ova naredba će izbrisati sve podatke na vašoj prvoj particiji ako je pokrenete. Pokrenite ovu naredbu samo ako želite uništiti podatke.)

    dd ako = / dev / nula = / dev / sda1

    Ovdje koristimo dd s posebnim datotekama (/ dev / zero i / dev / sda1), ali možemo također koristiti dd za čitanje i pisanje stvarnih datoteka. Ista naredba radi i za izravno rukovanje uređajima i za rad s datotekama.

    razjašnjenje

    U praksi je točnije reći da je "sve tok bajtova" nego "sve je datoteka." / Dev / random nije datoteka, ali svakako je tok bajtova. I premda te stvari tehnički nisu datoteke, dostupne su u datotečnom sustavu - datotečni sustav je univerzalni “prostor imena” u kojem je sve dostupno. Želite li pristupiti generatoru slučajnih brojeva ili čitati izravno s uređaja? U datotečnom sustavu pronaći ćete oba; nijedan drugi oblik adresiranja nije potreban.

    Naravno, neke stvari zapravo nisu datoteke - procesi koji se izvode na vašem sustavu nisu dio datotečnog sustava. "Sve je datoteka" je netočno, ali mnoge se stvari ponašaju kao datoteke.