29Jul
A Linux és más UNIX-szerű operációs rendszerek egyik meghatározó jellemzője, hogy "mindent egy fájl." Ez egy egyszerűsítés, de annak megértése, hogy mit jelent, segít megérteni a Linux működését.
Sok a Linuxon megjelenik a fájlrendszerben, de valójában nem fájlok. Ezek olyan speciális fájlok, amelyek hardvereszközöket, rendszerinformációkat és egyéb dolgokat jelentenek - beleértve a véletlenszám-generátort is.
Ezek a speciális fájlok pszeudo vagy virtuális fájlrendszerekben találhatók, mint a / dev, amely speciális fájlokat tartalmaz, amelyek az eszközöket ábrázolják, és / proc, amely speciális fájlokat tartalmaz, amelyek a rendszer és a folyamatinformációkat reprezentálják.
/ proc
Tegyük fel például, hogy információt szeretne kapni 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 megadja a CPU adatait - egyszerűen csak olvashatja le a fájl tartalmát a normál parancs segítségével, amely egyszerű szöveges fájlokkal működik. Például az
cat /proc/ cpuinfo parancs segítségével kinyomtathatja a fájl tartalmát a terminálra - a CPU adatait a terminálra nyomtathatja. A szöveg tartalmában megtekintheti az /proc/ cpuinfo szövegét.Ne feledje, az /proc/ cpuinfo valójában nem egy szöveges fájl, amely tartalmazza ezeket az információkat - a Linux kernel és a proc fájlrendszer ezt az információt ránk fájlként teszi közzé.Ez lehetővé teszi számunkra, hogy ismerős eszközöket használjunk az információk megtekintéséhez és feldolgozásához.
A / proc könyvtár egyéb hasonló fájlokat is tartalmaz, például:
- /proc/ uptime - Megmutatja a Linux kernel üzemidejét - más szóval, mennyi ideig tartott a rendszer a leállítás nélkül.
- /proc/ verzió - Megjeleníti a Linux kernel verzióját.
/ dev
A / dev könyvtárban megtalálhatók az eszközöket ábrázoló fájlok - valamint más speciális dolgokat ábrázoló fájlok. Például az /dev/ cdrom a CD-ROM meghajtó./dev/ Az sda az első merevlemezed, míg az /dev/ sda1 az első merevlemez első partíciója.
Szeretne a CD-ROM-ot felszerelni? Futtassa a mount parancsot, és adja meg az /dev/ cdrom eszközt a csatlakoztatni kívánt eszközként. Szeretné partícionálni az első merevlemezt? Futtasd a lemezmegosztó segédprogramot, és definiáld az /dev/ sda-t a szerkeszteni kívánt merevlemeznek. Szeretné formázni az első partíciót az első merevlemezén? Indítsa el a formázási parancsot, és mondja meg, hogy formázza az /dev/ sda1-et.
Amint látja, ezeknek az eszközöknek a fájlrendszer részeként történő kibocsátásának előnyei vannak. A fájlrendszer konzisztens "névtér" -et biztosít, amelyet minden alkalmazás képes kezelni és hozzáférni az eszközökhöz.
/dev/ null, /dev/ véletlenszerű és /dev/ nulla
Az / dev fájlrendszer nem csak fizikai eszközöket ábrázoló fájlokat tartalmaz. Itt három legfontosabb speciális eszköz található:
- /dev/ null - elvet minden hozzá írt adatot - úgy gondolja, hogy egy szemetes vagy fekete lyuk. Ha valaha lát egy megjegyzést, amely azt mondja, hogy panaszokat küldenek az /dev/ nullra - ez egy geekszerű módja annak, hogy azt mondja, hogy "dobja őket a szemétbe."
- /dev/ véletlenszerűen - véletlenszerűen hozza létre a környezeti zajokat. Ez egy véletlenszám-generátor, amelyet megérinthet.
- /dev/ nulla - Nullákat állít - folyamatos nulláram.
Ha ezeket a fájlokat háromnak tekinted, nem fogsz használni őket. Ehelyett gondoljon rájuk, mint eszköz.
Például, alapértelmezés szerint a Linux parancsok hibaüzeneteket és egyéb kimeneteket generálnak, amelyeket a szabványos kimenetre, általában a terminálra nyomtatnak. Ha parancsot szeretne futtatni, és nem érdekli a kimenetét, átirányíthatja azt a kimenetet az /dev/ nullra. A parancs kimenetének átirányítása az /dev/-re Az null azonnal lemondja. Ahelyett, hogy minden parancs végrehajtaná saját "csendes módját", bármelyik paranccsal ezt a módszert használhatja.
parancs & gt;/dev/ null
Ha véletlenszerű forrásra vágyott - mondjuk egy titkosítási kulcs létrehozásához nem kell írni a saját véletlenszám-generátort - /dev/ véletlenszerűen használható.
A merevlemez tartalmának törléséhez írja be a 0-t, de nincs szüksége egy speciális segédprogramra, amely a meghajtó nullázására szolgál - standard segédprogramokat és /dev/ nullát használhat. Például az dd parancs egy helyről olvas és más helyre ír. A következő parancs az /dev/ nullától nullát olvas, és közvetlenül a rendszer első merevlemez-partíciójára írja le, tartalmát teljesen törölve. ( Figyelmeztetés : Ez a parancs törli az összes adatot az első partíción, ha futtatja.) Csak
dd ha = /dev/ nulla = /dev/ sda1
Itt használjuk az ddspeciális fájlokkal( /dev/ zéró és /dev/ sda1), de használhatnánk dd-et is, hogy olvassuk és írjuk a tényleges fájlokat. Ugyanez a parancs működik mind az eszközök közvetlenül manipulálására, mind pedig a fájlok kezelésére. A gyakorlatban pontosabb azt mondani, hogy "minden egy byte patak", mint "minden fájl". /dev/ véletlenszerűen nem fájl, de minden bizonnyal egy bájt bájt.És bár ezek a dolgok technikailag nem fájlok, azok hozzáférhetők a fájlrendszerben - a fájlrendszer univerzális "névtér", ahol minden elérhető.Szeretne elérni egy véletlenszám-generátort, vagy közvetlenül olvasni egy eszközt? Mindkettő megtalálható a fájlrendszerben;a címzés más formája nem szükséges.
Természetesen bizonyos dolgok nem tulajdonképpen fájlok - a rendszeren futó folyamatok nem részei a fájlrendszernek."Minden fájl" pontatlan, de sok dolog viselkedik fájlként.