29Jul

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

Jedna od značajki Linuxa i ostalih operacijskih sustava sličnih UNIX-u jest to da je "sve datoteka". 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 vašem 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.

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

/ proc

Na primjer, recimo da želite pronaći informacije o vašem CPU-u. The / proc katalog 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 pomoću bilo koje standardne naredbe 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.

Ne zaboravite, /proc/ cpuinfo zapravo nije tekstna datoteka koja sadrži te informacije - Linux kernel i proc file sustav izlažu nam ove podatke 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/ produženje rada - Izvrsno vrijeme rada vašeg Linux kernela - drugim riječima, koliko dugo je vaš sustav uključen bez zatvaranja.
  • /proc/ verzija - Izlaže verziju vašeg Linux kernela.

/ dev

U mapi / dev 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 /dev/ sda1 predstavlja prvu particiju na vašem prvom tvrdom disku.

Želite li 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 navedite /dev/ sda kao tvrdi disk koji želite urediti.Želite formatirati prvu particiju na svom prvom tvrdom disku? Pokrenite naredbu za formatiranje i recite da formatira /dev/ sda1.

Kao što možete vidjeti, izlaganje tih uređaja kao dio 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. Ovdje su tri najznačajnija posebna uređaja koja sadrži:

  • /dev/ null - odbacuje sve podatke koji su mu zapisani - zamislite je kao kantu za smeće ili crnu rupu. Ako ikad vidite komentar koji vam govori da pošaljete žalbe na /dev/ null - to je geeky način govoreći: "bacajte ih u smeće."
  • /dev/ slučajni - proizvodi 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 proizvode poruke o pogreškama i druge izlaze koji ispisuju na standardni izlaz, obično terminal. Ako želite pokrenuti naredbu i ne zanima se njegov izlaz, možete preusmjeriti taj izlaz na /dev/ null. Preusmjeravanje izlaza naredbe na /dev/ null odmah odbacuje. Umjesto da svaka naredba implementira vlastiti "tihi način rada", možete koristiti ovu metodu bilo kojom naredbom.

naredba & gt;/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 koristiti slučajni /dev/.

Da biste izbrisali sadržaj tvrdog diska pisanjem 0 na njega, ne trebate poseban uslužni program namijenjen nulom pogonu - možete koristiti standardne alate i nulu sa /dev/.Na primjer, naredba dd čita s lokacije i piše na drugo mjesto. Sljedeća naredba čita nulu od /dev/ nula i napiše 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. Samo pokrenite ovu naredbu ako želite uništiti podatke.)

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

Ovdje koristimo dds 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.

Pojaš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.