Úvodná » ako » Čo znamená Všetko je súbor v systéme Linux?

    Čo znamená Všetko je súbor v systéme Linux?

    Jednou z definujúcich funkcií Linuxu a iných operačných systémov podobných operačným systémom UNIX je, že "všetko je súbor." Toto je zjednodušenie, ale pochopenie toho, čo to znamená, vám pomôže pochopiť, ako funguje Linux.

    Mnoho vecí na systéme Linux sa objavuje vo vašom systéme súborov, ale nie sú vlastne súbory. Sú to špeciálne súbory, ktoré predstavujú hardvérové ​​zariadenia, informácie o systéme a iné veci - vrátane generátora náhodných čísel.

    Tieto špeciálne súbory môžu byť umiestnené v pseudo alebo virtuálnych súborových systémoch, ako napríklad / dev, ktoré obsahujú špeciálne súbory, ktoré predstavujú zariadenia a / proc, ktoré obsahujú špeciálne súbory, ktoré reprezentujú informácie o systéme a procese.

    / proc

    Povedzme napríklad, že chcete nájsť informácie o procesore. Adresár / proc obsahuje špeciálny súbor - / proc / cpuinfo - ktorý obsahuje tieto informácie.

    Nepotrebujete špeciálny príkaz, ktorý vám povie informácie o CPU - stačí prečítať obsah tohto súboru pomocou ľubovoľného štandardného príkazu, ktorý funguje s textovými súbormi. Môžete napríklad použiť príkaz cat / proc / cpuinfo vytlačiť obsah tohto súboru do terminálu - tlačiť informácie o CPU do terminálu. Môžete dokonca otvoriť / proc / cpuinfo v textovom editore pre zobrazenie jeho obsahu.

    Pamätajte si, že / proc / cpuinfo nie je v skutočnosti textový súbor obsahujúci tieto informácie - Linuxové jadro a súborový systém proc odkryjú tieto informácie nám ako súbor. To nám umožňuje používať známe nástroje na prezeranie a prácu s informáciami.

    Adresár / proc obsahuje aj iné podobné súbory, napríklad:

    • / proc / uptime - vysvetľuje uptime Linuxového jadra - inými slovami, ako dlho bol váš systém zapnutý bez vypnutia.
    • / proc / version - zobrazí verziu vášho Linuxového jadra.

    / dev

    V adresári / dev nájdete súbory, ktoré predstavujú zariadenia - rovnako ako súbory, ktoré predstavujú iné špeciálne veci. Napríklad, / dev / cdrom je vaša jednotka CD-ROM. / dev / sda predstavuje váš prvý pevný disk, zatiaľ čo / dev / sda1 predstavuje prvý oddiel na vašom prvom pevnom disku.

    Chcete pripojiť disk CD-ROM? Spustite príkaz mount a zadajte / dev / cdrom ako zariadenie, ktoré chcete pripojiť. Chcete rozdeliť prvý pevný disk? Spustite nástroj na rozdeľovanie diskov a zadajte / dev / sda ako pevný disk, ktorý chcete upraviť. Chcete na prvom pevnom disku formátovať prvý oddiel? Spustite príkaz na formátovanie a informujte ho, aby formátoval / dev / sda1.

    Ako vidíte, vystavenie týchto zariadení ako súčasti súborového systému má svoje výhody. Systém súborov poskytuje konzistentný "menný priestor", ktorý môžu všetky aplikácie použiť na adresovanie a prístup k zariadeniam.

    / dev / null, / dev / náhodne a / dev / nula

    Súborový systém / dev neobsahuje iba súbory, ktoré predstavujú fyzické zariadenia. Tu sú tri najvýznamnejšie špeciálne zariadenia, ktoré obsahuje:

    • / dev / null - Odstráni všetky dáta napísané na to - premýšľajte o tom ako s odpadkovým plechom alebo čiernou dierou. Ak ste niekedy videli komentár s výzvou na odoslanie sťažností na / dev / null - to je podivný spôsob, ako hovoriť "hádzať ich do koša".
    • / dev / random - Produkuje náhodnosť pomocou environmentálneho šumu. Je to generátor náhodných čísel, do ktorého sa môžete zapojiť.
    • / dev / zero - vytvára nuly - konštantný tok núl.

    Ak si myslíte o týchto troch súboroch, neuvidíte pre nich použitie. Namiesto toho premýšľajte nad nimi ako s nástrojmi.

    Napríklad štandardne príkazy Linuxu vytvárajú chybové hlásenia a iné výstupy, ktoré tlačia na štandardný výstup, obyčajne terminál. Ak chcete spustiť príkaz a jeho výstup sa nestará, môžete tento výstup presmerovať na / dev / null. Presmerovanie výstupu príkazu na / dev / null okamžite ho odstráni. Namiesto toho, aby každý príkaz implementoval svoj vlastný "tichý režim", môžete túto metódu použiť akýmkoľvek príkazom.

    príkaz> / dev / null

    Ak ste chceli zdroj náhodnosti - povedzme, pri vytváraní šifrovacieho kľúča by ste nemuseli písať svoj vlastný generátor náhodných čísel - môžete použiť / dev / random.

    Ak chcete vymazať obsah pevného disku písaním 0, nepotrebujete špeciálny nástroj určený na nulovanie jednotky - môžete použiť štandardné nástroje a / dev / nulu. Napríklad dd príkaz číta z miesta a zapíše na iné miesto. Nasledujúci príkaz by mal čítať nuly z / dev / zero a zapísať ich priamo na prvý oddiel pevného disku na vašom systéme a úplne vymazať jeho obsah.

    (Výstraha: Tento príkaz vymaže všetky údaje na vašom prvom oddieli, ak ho spustíte. Tento príkaz spustite iba vtedy, ak chcete zničiť dáta.)

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

    Tu používame dd so špeciálnymi súbormi (/ dev / zero a / dev / sda1), ale mohli by sme tiež použiť dd na čítanie a zápis do skutočných súborov. Ten istý príkaz funguje ako pri manipulácii so zariadeniami priamo, tak pri práci so súbormi.

    objasnenie

    V praxi je presnejšie povedať, že "všetko je tok bajtov" ako "všetko je súbor". / Dev / random nie je súbor, ale určite je to prúd bajtov. A hoci tieto veci nie sú technicky súbory, sú dostupné v súborovom systéme - súborový systém je univerzálny "názov priestoru", kde je všetko prístupné. Chcete získať prístup k generátoru náhodných čísel alebo si ho prečítať priamo zo zariadenia? Obaja nájdete v súborovom systéme; žiadna iná forma adresovania nie je potrebná.

    Samozrejme, niektoré veci nie sú vlastne súbory - procesy bežiace vo vašom systéme nie sú súčasťou súborového systému. "Všetko je súbor" je nepresné, ale veľa vecí sa správa ako súbory.