If-Koubou

Što znači "Sve je datoteka" u Linuxu?

Što znači "Sve je datoteka" u Linuxu? (Kako da)

Jedna od značajki Linuxa i ostalih operacijskih sustava sličnih UNIX-u jest da je "sve datoteke". To je previše pojednostavljenja, no razumijevanje onoga što to znači pomoći će vam da shvatite kako Linux radi.

Mnogo se stvari na Linuxu pojavljuju u datotečnom sustavu, ali zapravo nisu datoteke. Posebne su datoteke koje predstavljaju hardverske uređaje, informacije o sustavu i druge stvari - uključujući generator slučajnih brojeva.

Te 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 procesu.

/ proc

Na primjer, recimo da želite pronaći informacije o vašem CPU-u. / Proc direktorij sadrži posebnu datoteku - / proc / cpuinfo - koja sadrži te podatke.

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

Zapamtite, / proc / cpuinfo zapravo nije tekstna datoteka koja sadrži te informacije - Linux kernel i sustav proc datoteka izlažu nam ovu informaciju kao datoteku. To nam omogućuje da koristimo poznate alate za pregled i rad s informacijama.

/ Proc direktorij također sadrži i druge slične datoteke, na primjer:

  • / proc / uptime - Izdvojeno produženje vašeg Linux kernela - drugim riječima, koliko dugo je vaš sustav uključen bez zatvaranja.
  • / proc / version - Prikazuje verziju vašeg Linux kernela.

/ dev

U / dev direktoriju pronaći ćete 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 je / dev / sda1 prva particija na vašem prvom tvrdom disku.

Želite montirati svoj CD-ROM? Pokrenite naredbu za montiranje i odredite / dev / cdrom kao uređaj koji želite montirati. Želite li particionirati svoj prvi tvrdi disk? Pokrenite program za particioniranje diska i odredite / dev / sda kao tvrdi disk koji želite urediti. Želite formatirati prvu particiju na svom prvom tvrdom disku? Pokrenite naredbu za oblikovanje i recite da formatirate / dev / sda1.

Kao što vidite, izlaganje tih uređaja kao dijela datotečnog sustava ima svoje prednosti. Sustav datoteka pruža dosljedan "prostor imena" koji svi programi mogu koristiti za pristup i pristup uređajima.

/ dev / null, / dev / slučajni i / dev / nula

Sustav datoteka / dev ne sadrži samo datoteke koje predstavljaju fizičke uređaje. Evo tri najznačajnija posebna uređaja koja sadrži:

  • / dev / null - odbacuje sve podatke koji su mu zapisani - sjetite se kao smeće ili crnu rupu. Ako ikad vidite komentar koji vam govori da pošaljete pritužbe na / dev / null - to je geeky način govoreći: "bacajte ih u smeće".
  • / dev / random - Izrađuje slučajnost pomoću buke okoliša. To je generator slučajnih brojeva koji možete dodirnuti.
  • / dev / nula - Proizvodi nula - stalni tok nula.

Ako mislite o ta tri datoteke, nećete ih koristiti za njih. Umjesto toga, zamislite ih kao alate.

Na primjer, prema zadanim postavkama Linux naredbe izrađuju poruke o pogreškama i druge rezultate koje ispisuju na standardni izlaz, obično terminal. Ako želite pokrenuti naredbu i ne brinite o njegovom izlazu, možete preusmjeriti taj izlaz na / dev / null. Preusmjeravanje izlaza naredbe na / dev / null odmah ga odbacuje. Umjesto da svaka naredba implementira vlastiti "tihi način rada", možete koristiti ovu metodu bilo kojom naredbom.

naredba> / dev / null

Ako ste htjeli izvor slučajnosti - recimo, za generiranje ključa za šifriranje, ne biste trebali napisati svoj generator slučajnih brojeva - možete upotrijebiti / dev / random.

Da biste izbrisali sadržaj tvrdog diska pisanjem 0 na njega, ne trebate poseban uslužni program namijenjen nultoj diskovima - možete koristiti standardne uslužne programe i / dev / nulu. Na primjer, dd naredba čita s lokacije i piše na drugo mjesto. Sljedeća naredba čita nula iz / dev / nula i upisuje 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 prvoj particiji ako je pokrenete. Pokreni ovu naredbu samo ako želite uništiti podatke.)

dd if = / dev / nula od / dev / sda1

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

razjašnjenje

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

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