29Jul
En af de grundlæggende funktioner i Linux og andre UNIX-lignende operativsystemer er, at "alt er en fil." Dette er en oversimplifikation, men forståelse hvad det betyder hjælper dig med at forstå, hvordan Linux fungerer.
Mange ting på Linux vises i dit filsystem, men de er faktisk ikke filer. De er specielle filer, der repræsenterer hardwareenheder, systemoplysninger og andre ting - herunder en tilfældig talegenerator.
Disse særlige filer kan være placeret i pseudo- eller virtuelle filsystemer som / dev, som indeholder specielle filer, der repræsenterer enheder og / proc, som indeholder særlige filer, der repræsenterer system- og procesoplysninger.
/ proc
Lad os for eksempel sige, at du vil finde oplysninger om din CPU.Kataloget / proc indeholder en speciel fil - /proc/ cpuinfo - der indeholder disse oplysninger.
Du behøver ikke en speciel kommando, der fortæller dig din CPU info - du kan bare læse indholdet af denne fil ved hjælp af en standardkommando, der fungerer med plain-text filer. For eksempel kan du bruge kommandoen
cat /proc/ cpuinfo til at udskrive denne fils indhold til terminalen - udskrivning af CPU-informationen til terminalen. Du kan endda åbne /proc/ cpuinfo i en tekst editor for at se indholdet.Husk, /proc/ cpuinfo er ikke en tekstfil, der indeholder disse oplysninger - Linux-kernen og proc-filsystemet udsætter disse oplysninger for os som en fil. Dette giver os mulighed for at bruge velkendte værktøjer til at se og arbejde med oplysningerne.
/ proc-mappen indeholder også andre lignende filer, for eksempel:
- /proc/ oppetid - Viser opetiden for din Linux-kerne - med andre ord, hvor længe dit system har været tændt uden at lukke ned.
- /proc/ version - Viser versionen af din Linux-kerne.
/ dev
I / dev-biblioteket finder du filer, der repræsenterer enheder - samt filer, der repræsenterer andre specielle ting. For eksempel er /dev/ cdrom dit cd-rom-drev. /dev/ sda repræsenterer din første harddisk, mens /dev/ sda1 repræsenterer den første partition på din første harddisk.
Vil du montere din cd-rom? Kør mount-kommandoen og specificer /dev/ cdrom som den enhed, du vil montere. Vil du opdele din første harddisk? Kør et diskpartitioneringsværktøj og specificer /dev/ sda som den harddisk, du vil redigere. Vil du formatere den første partition på din første harddisk? Kør en formateringskommando og fortæl det om at formatere /dev/ sda1.
Som du kan se, har eksponering af disse enheder som en del af filsystemet sine fordele. Filsystemet giver en ensartet "navneplads", som alle applikationer kan bruge til at adressere og få adgang til enhederne.
/dev/ null, /dev/ tilfældig og /dev/ nul
/ dev-filsystemet indeholder ikke kun filer, der repræsenterer fysiske enheder. Her er tre af de mest bemærkelsesværdige specielle enheder, den indeholder:
- /dev/ null - Kasserer alle data, der er skrevet til det - tænk på det som en papirkurv eller et sort hul. Hvis du nogensinde ser en kommentar, der fortæller dig at sende klager til /dev/ null - det er en geeky måde at sige "smid dem i skraldespanden."
- /dev/ tilfældig - Producerer tilfældighed ved hjælp af miljøstøj. Det er en tilfældig talegenerator, du kan trykke på.
- /dev/ nul - Producerer nuller - en konstant strøm af nuller.
Hvis du tænker på disse tre som filer, vil du ikke se en brug for dem. I stedet tænk på dem som værktøjer.
Som standard producerer Linux-kommandoer som standard fejlmeddelelser og andre output, som de udskriver til standardudgangen, normalt terminalen. Hvis du vil køre en kommando og ikke er ligeglad med dens output, kan du omdirigere den output til /dev/ null. Omdirigere en kommandos output til /dev/ null kasserer det straks. I stedet for at have hver kommando implementere sin egen "stille tilstand", kan du bruge denne metode med en kommando.
kommando & gt;/dev/ null
Hvis du ønskede en tilfældighedskilde - sig for at generere en krypteringsnøgle, behøver du ikke at skrive din egen tilfældige talgenerator - du kunne bruge /dev/ tilfældigt.
Hvis du vil slette indholdet af harddisken ved at skrive 0'er til det, behøver du ikke et særligt værktøj dedikeret til nul et drev - du kan bruge standardværktøjer og /dev/ nul. For eksempel læser dd kommandoen fra et sted og skriver til et andet sted. Følgende kommando ville læse nuller fra /dev/ nul og skrive dem direkte til den første harddiskpartition på dit system, fuldstændigt slette indholdet.
( Advarsel : Denne kommando sletter alle data på din første partition, hvis du kører den. Kør kun denne kommando, hvis du vil ødelægge data.)
dd hvis = /dev/ nul af = /dev/ sda1
Her bruger vi ddmed specielle filer( /dev/ nul og /dev/ sda1), men vi kunne også bruge dd til at læse fra og skrive til faktiske filer. Den samme kommando fungerer både til at manipulere enheder direkte og arbejder med filer.
Præcisering
I praksis er det mere præcist at sige at "alt er en strøm af bytes" end "alt er en fil." /dev/ tilfældig er ikke en fil, men det er bestemt en strøm af bytes. Og selv om disse ting teknisk set ikke er filer, er de tilgængelige i filsystemet - filsystemet er et universelt "navneområde", hvor alt er tilgængeligt. Vil du få adgang til en tilfældig talegenerator eller læse direkte fra en enhed? Du finder både i filsystemet;ingen anden form for adressering nødvendig.
Selvfølgelig er nogle ting faktisk ikke filer - processer, der kører på dit system, er ikke en del af filsystemet."Alt er en fil" er unøjagtigt, men mange ting virker som filer.