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.
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:
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.
Sustav datoteka / dev ne sadrži samo datoteke koje predstavljaju fizičke uređaje. Evo tri najznačajnija posebna uređaja koja sadrži:
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.
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.