Homepage » hogyan kell » Mit jelent a Linux minden fájlja?

    Mit jelent a Linux minden fájlja?

    A Linux és más UNIX-szerű operációs rendszerek egyik meghatározó jellemzője, hogy „minden fájl.” Ez egy túlzott egyszerűsítés, de megértése, hogy mit jelent, segít megérteni, hogyan működik a Linux.

    A Linux rendszerben sok dolog jelenik meg a fájlrendszerben, de ezek valójában nem fájlok. Speciális fájlok, amelyek hardvereszközöket, rendszerinformációt és egyéb dolgokat képviselnek - beleértve a véletlenszám generátort is.

    Ezek a speciális fájlok pszeudo vagy virtuális fájlrendszerekben, például a / dev fájlban találhatók, amelyek speciális fájlokat tartalmaznak, és / proc, amely speciális fájlokat tartalmaz, amelyek a rendszer és a folyamatinformációkat képviselik.

    / proc

    Tegyük fel például, hogy információt szeretne találni a CPU-ról. A / proc könyvtár tartalmaz egy speciális fájlt - / proc / cpuinfo -, amely tartalmazza ezt az információt.

    Nincs szükség speciális parancsra, amely megmondja a CPU-adatait - csak olvassa el a fájl tartalmát bármely szabványos parancs segítségével, amely egyszerű szöveges fájlokkal működik. Például használhatja a parancsot macska / proc / cpuinfo a fájl tartalmának kinyomtatása a terminálra - a CPU-információk nyomtatása a terminálra. Még a szöveges szerkesztőben is megnyithatja a / proc / cpuinfo tartalmat.

    Ne feledje, hogy a / proc / cpuinfo valójában nem az ilyen információkat tartalmazó szövegfájl - a Linux rendszermag és a proc fájlrendszer ezt az információt fájlként teszi ki nekünk. Ez lehetővé teszi számunkra, hogy ismerős eszközöket használjunk az információk megtekintésére és kezelésére.

    A / proc könyvtár más hasonló fájlokat is tartalmaz, például:

    • / proc / uptime - Linux rendszermagjának üzemidejét - más szóval, mennyi ideig tartott a rendszer bezárása nélkül.
    • / proc / version - Megadja a Linux rendszermag verzióját.

    / dev

    A / dev könyvtárban olyan fájlokat talál, amelyek eszközöket képviselnek, valamint olyan fájlokat, amelyek más speciális dolgokat képviselnek. Például a / dev / cdrom a CD-ROM meghajtó. / dev / sda képviseli az első merevlemezt, míg az / dev / sda1 az első merevlemez első partícióját jelenti.

    Szeretné csatlakoztatni a CD-ROM-ot? Futtassa a mount parancsot, és adja meg a / dev / cdrom-ot a csatlakoztatni kívánt eszközként. Szeretné megosztani az első merevlemezt? Futtasson egy lemezpartíciós segédprogramot, és adja meg a szerkeszteni kívánt merevlemezt a / dev / sda-nak. Szeretné az első merevlemez első partícióját formázni? Futtassa a formázási parancsot, és mondja el, hogy formázza a / dev / sda1 formátumot.

    Mint látható, az ilyen eszközöknek a fájlrendszer részeként történő bemutatása előnyei vannak. A fájlrendszer következetes „névteret” biztosít, amelyet minden alkalmazás használhat az eszközök címzéséhez és eléréséhez.

    / dev / null, / dev / random és / dev / nulla

    A / dev fájlrendszer nem csak olyan fájlokat tartalmaz, amelyek fizikai eszközöket képviselnek. Íme a legjelentősebb speciális eszközök közül három:

    • / dev / null - Eldobja az összes rá írt adatot - gondoljon rá, mint egy szemetet vagy fekete lyukat. Ha valaha lát egy megjegyzést, amely arra kéri, hogy küldjön panaszokat a / dev / null-nak - ez egy geeky módja annak, hogy azt mondja: „dobja őket a szemetetbe.”
    • / dev / random - Véletlenszerűséget hoz létre a környezeti zaj felhasználásával. Ez egy véletlen számgenerátor, amellyel belehelyezhet.
    • / dev / zero - Nullákat állít elő - állandó nullák.

    Ha úgy gondolja, hogy ezek a három fájl fájlok, akkor nem fogja használni őket. Ehelyett gondolj rájuk eszközökként.

    Például alapértelmezés szerint a Linux parancsok hibaüzeneteket és más kimenetet termelnek, amelyeket a szabványos kimenetre, általában a terminálra nyomtatnak. Ha parancsot szeretne futtatni, és nem érdekli a kimenet, akkor a kimenetet átirányíthatja a / dev / null értékre. A parancs kimenetének átirányítása / dev / null-ra azonnal elveti azt. Ahelyett, hogy minden parancs végrehajtaná saját „csendes módját”, ezt a módszert bármilyen parancs segítségével használhatja.

    parancs> / dev / null

    Ha véletlenszerűséget akarsz - mondjuk egy titkosítási kulcs létrehozásához, nem kell saját véletlenszám generátort írni - használhatod / dev / random.

    A merevlemez tartalmának törléséhez 0-ra írva, nincs szükség speciális segédprogramra a meghajtó nullázására - használhatná a szokásos segédprogramokat és / dev / nullát. Például a dd parancs egy helyről olvas, és egy másik helyre ír. A következő parancs nullákat olvasna a / dev / nullából, és közvetlenül a rendszer első merevlemez-partíciójába írja, és teljesen törli a tartalmát.

    (Figyelem: Ez a parancs az első partíción lévő összes adatot törli, ha futtatja. Csak akkor futtassa ezt a parancsot, ha az adatokat meg akarja semmisíteni.)

    dd if = / dev / nulla = / dev / sda1

    Itt dd-t használunk speciális fájlokkal (/ dev / nulla és / dev / sda1), de a dd-t is használhatjuk az aktuális fájlok olvasására és írására. Ugyanez a parancs működik mind az eszközök közvetlen kezelésére, mind a fájlok kezelésére.

    derítés

    A gyakorlatban pontosabb azt mondani, hogy „minden bájtáram”, mint a „minden fájl.” / Dev / random nem egy fájl, de biztosan bájtáram. És bár ezek a dolgok technikailag nem fájlok, hozzáférhetők a fájlrendszerben - a fájlrendszer egy univerzális „névtér”, ahol minden elérhető. Szeretné elérni a véletlenszám generátort, vagy közvetlenül egy eszközről olvasni? Mindkettő megtalálható a fájlrendszerben; más címzésre nincs szükség.

    Természetesen egyes dolgok valójában nem fájlok - a rendszeren futó folyamatok nem képezik a fájlrendszer részét. „Minden egy fájl” pontatlan, de sok dolog fájlként viselkedik.