Skip to main content

Hva betyr "Alt er en fil" Betydning i Linux?

Hva betyr "Alt er en fil" Betydning i Linux?

Geoffrey Carr

En av de definerende funksjonene til Linux og andre UNIX-lignende operativsystemer er at "alt er en fil." Dette er en forenkling, men forstå hva det betyr for å hjelpe deg å forstå hvordan Linux fungerer.

Mange ting på Linux vises i filsystemet ditt, men de er egentlig ikke filer. De er spesielle filer som representerer maskinvareenheter, systeminformasjon og andre ting - inkludert en tilfeldig talegenerator.

Disse spesielle filene kan være plassert i pseudo- eller virtuelle filsystemer som / dev, som inneholder spesielle filer som representerer enheter og / proc, som inneholder spesielle filer som representerer system og prosessinformasjon.

/ proc

For eksempel, la oss si at du vil finne informasjon om CPUen din. Den / proc katalogen inneholder en spesiell fil - / proc / cpuinfo - som inneholder denne informasjonen.

Du trenger ikke en spesiell kommando som forteller deg CPU-infoen din - du kan bare lese innholdet i denne filen ved hjelp av en standardkommando som fungerer med enkle tekstfiler. For eksempel kan du bruke kommandoen katt / proc / cpuinfo å skrive ut denne filens innhold til terminalen - skrive ut CPU-informasjonen til terminalen. Du kan til og med åpne / proc / cpuinfo i en tekstredigerer for å se innholdet.

Husk, / proc / cpuinfo er egentlig ikke en tekstfil som inneholder denne informasjonen - Linux-kjernen og proc-filsystemet er å eksponere denne informasjonen til oss som en fil. Dette gjør at vi kan bruke kjente verktøy for å se og jobbe med informasjonen.

Den / proc katalogen inneholder også andre lignende filer, for eksempel:

  • / proc / oppetid - Viser oppetid på Linux-kjernen din - med andre ord, hvor lenge systemet har vært på uten å slå av.
  • / proc / version - Viser versjonen av Linux-kjernen din.

/ dev

I / dev-katalogen finner du filer som representerer enheter - samt filer som representerer andre spesielle ting. For eksempel er / dev / cdrom din CD-ROM-stasjon. / dev / sda representerer din første harddisk, mens / dev / sda1 representerer den første partisjonen på den første harddisken din.

Vil du montere CD-ROM-en? Kjør mount-kommandoen og spesifiser / dev / cdrom som enheten du vil montere. Vil du partisjonere din første harddisk? Kjør et diskpartisjoneringsverktøy og spesifiser / dev / sda som harddisken du vil redigere. Vil du formatere den første partisjonen på den første harddisken din? Kjør en formateringskommando og fortell det å formatere / dev / sda1.

Som du kan se, har eksponering av disse enhetene som en del av filsystemet sine fordeler. Filsystemet gir et konsistent "navnerom" som alle applikasjoner kan bruke til å adressere og få tilgang til enhetene.

/ dev / null, / dev / random, og / dev / null

/ Dev-filsystemet inneholder ikke bare filer som representerer fysiske enheter. Her er tre av de mest bemerkelsesverdige spesielle enhetene den inneholder:

  • / dev / null - Fjerne all data skrevet til den - tenk på den som søppelkasse eller svart hull. Hvis du noen gang ser en kommentar som forteller deg å sende klager til / dev / null - det er en geeky måte å si "kaste dem i søpla."
  • / dev / random - Produserer tilfeldighet ved hjelp av miljøstøy. Det er en tilfeldig talegenerator du kan tappe inn på.
  • / dev / null - Produserer nuller - en konstant strøm av nuller.

Hvis du tenker på disse tre som filer, vil du ikke se en bruk for dem. I stedet tenk på dem som verktøy.

For eksempel produserer Linux-kommandoer som standard feilmeldinger og annen utgang som de skriver ut til standardutgangen, vanligvis terminalen. Hvis du vil kjøre en kommando og ikke bryr seg om dens utgang, kan du omdirigere den utdata til / dev / null. Omdirigere en kommandos utdata til / dev / null kasserer umiddelbart det. I stedet for å ha hver kommando implementere sin egen "stille modus", kan du bruke denne metoden med en hvilken som helst kommando.

command > /dev/null

Hvis du vil ha en tilfeldighetskilde - si, for å generere en krypteringsnøkkel, trenger du ikke å skrive din egen tilfeldige tallgenerator - du kan bruke / dev / random.

For å slette innholdet på harddisken ved å skrive 0 til det, trenger du ikke et spesielt verktøy dedikert til null-en stasjon - du kan bruke standardverktøy og / dev / null. For eksempel, dd Kommandoen leser fra et sted og skriver til et annet sted. Følgende kommando vil lese nuller fra / dev / null og skrive dem direkte til den første harddiskpartisjonen på systemet, og helt slett innholdet.

(Advarsel: Denne kommandoen vil slette alle dataene på den første partisjonen din hvis du kjører den. Bare kjør denne kommandoen hvis du vil ødelegge data.)

dd if=/dev/zero of=/dev/sda1

Her bruker vi dd med spesielle filer (/ dev / null og / dev / sda1), men vi kan også bruke dd til å lese fra og skrive til faktiske filer. Samme kommando fungerer både for å manipulere enheter direkte og arbeider med filer.

avklaring

I praksis er det mer nøyaktig å si at "alt er en strøm av byte" enn "alt er en fil." / Dev / random er ikke en fil, men det er absolutt en bytebit.Og selv om disse tingene teknisk sett ikke er filer, er de tilgjengelige i filsystemet - filsystemet er et universelt navnrom hvor alt er tilgjengelig. Vil du få tilgang til en tilfeldig talegenerator eller lese direkte fra en enhet? Du finner både i filsystemet; ingen annen form for adressering nødvendig.

Selvfølgelig er enkelte ting egentlig ikke filer - prosesser som kjører på systemet, er ikke en del av filsystemet. "Alt er en fil" er unøyaktig, men mange ting oppfører seg som filer.

Link
Plus
Send
Send
Pin