Linux címtárszerkezet: mi ez és hogyan működik
Az egyik jelentős különbség a Linux és a Windows között az alapértelmezett könyvtárelrendezési rendszerben rejlik, amellyel az operációs rendszer tiszta telepítése után találkozhatunk.
Megjegyzés: itt nem arról beszélünk fájlrendszer, amely az adatok lemezen való tárolására használt technikai minta. Az általunk áttekintett könyvtárstruktúra a legtöbb Linux disztribúcióra vonatkozik, függetlenül attól, hogy milyen fájlrendszert használnak.

Különbségek a Windows és a Linux címtárstruktúrák között
Ahhoz, hogy magas szinten megértsük, miért épülnek fel ezek az operációs rendszerek úgy, ahogy vannak, hasznos megérteni a történetüket.
Amikor a Windows-alapú PC-k először elkezdték növekedési görbéjüket, az MS-DOS, a Microsoft korai napjaiban operációs rendszer, amely kifejezetten a mikroszámítógépekre összpontosít (amit ma gyakrabban asztali számítógépnek hívunk számítógépek). Azokban a korai években a fájlokat elsősorban hajlékonylemez-meghajtókon tárolták. Felcímkézték őket
Ezzel szemben a Linux az AT&T által az 1970-es években kifejlesztett Unix operációs rendszer leszármazottja. Ebben az időben az emberek által használt "számítógépek" elsősorban igazságosak voltak terminálok. Szövegalapú információkat jelenítettek meg a képernyőn, és billentyűzetet biztosítottak a bevitelhez. De a nehézemelést egy "rendszer" végezte, amely több fizikai gépből is állhatott volna: egy a feldolgozásra, egy a tárolásra, a másik pedig egy konkrét alkalmazásra. Ezek mind a hálózaton keresztül csatlakoztak, míg a felhasználók számára egyetlen egységként jelentek meg. Ez a kliens-szerver konfiguráció, amelyre a Unixot tervezték, pontosan az ellentétes technológia volt, mint az egyfelhasználós mikroszámítógép, amelyet az MS-DOS és később a Windows támogatott.
A Linux fájlrendszerek ökölszabálya az, hogy a gyökér, vagy a fájlrendszer legfelső szintje, nem tartalmaz kóbor fájlokat. A legtöbb rendszerben tartalmazhatja a kernel(vmlinuz az ábrákon), vagy az operációs rendszer szíve, és esetleg a ramdisk (initrd) tartalmazza azokat az adatokat, amelyekre a rendszernek szüksége van az induláshoz és működéshez. De ezeken kívül csak azokat a könyvtárakat kell tartalmaznia, amelyeket az alábbi szakaszokban tárgyalunk (többek között).
A /bin könyvtár
Az egyik első könyvtár, amellyel találkozni fog /bin. Ez azt jelenti binárisok, és "szabványos" operációs rendszer programokat tartalmaz. Itt a „standard” az operációs rendszer bármilyen értelmes használatához szükséges alapvető segédprogramokat jelenti. Példák az itt található programokra:
- CD, vagy módosítsa a működő könyvtárat hasonlóan Windows megfelelőjéhez
- Fájlkezelő parancsok, mint pl cp és mv (fájlok másolása és áthelyezése).
- Fájlengedélyező segédprogramok, mint pl chmod (ami megváltoztatja a fájljogosultságokat) és chown (ami megváltoztatja a fájlok tulajdonosait).
- A számítási környezetet biztosító programok, mint pl Belépés (ami lehetővé teszi, hogy bejelentkezzen a gépbe) és bash vagy más kagyló.
Amikor először telepít egy Linux disztribúciót, ezek a programok a legalapvetőbb telepítés részeként kerülnek telepítésre, és sok esetben nem távolíthatók el.
A /boot könyvtár

A következő betűrendben van /boot, amely a rendszer által az induláskor használt fájlokat tartalmazza. A Linux kernel másolatait tartalmazza (a fájlrendszer gyökerében látható, valószínűleg ezek valamelyikére mutató hivatkozás), a initrd, vagy a rendszer kezdeti ramdiskje és egyéb kapcsolódó adatok.
A legfontosabb dolog, amit erről a könyvtárról tudnia kell, hogy ne vacakoljon benne. Az itteni cuccokat akkor kezelik, amikor az Ön csomagkezelő kerneleket telepít és frissít. Ha törli valamelyik fájlt, amelyre a jelenlegi kernelnek szüksége van (vagy magának a kernelnek), akkor egy indíthatatlan rendszerhez vezethet.
A /cdrom könyvtár
Ez valami örökölt könyvtár. Úgy mutatták be, mint egy helyet, ahol a CD lehet felszerelt, vagy csatlakoztatva van, és a tartalma elérhető. Abban az időben általános volt az igény gyökérvagy rendszergazdai jogokkal a CD-ROM csatlakoztatásához. De manapság gyakrabban találunk olyan CD-ROM-okat, amelyek automatikusan be vannak szerelve a készülékbe /media könyvtárat, amelyről egy kicsit később lesz szó.
Ugyanígy régen volt a /floppy Könyvtár. Láthatja, hogy ezek hogyan tették egy kicsit kényelmesebbé a felhasználókat, akik valószínűleg hozzászoktak a Windowshoz. De mivel a hajlékonylemez-meghajtók nem szabványos összetevők a modern számítógépeken, előfordulhat, hogy ezt a könyvtárat már nem is látja. Az Ubuntuban például nincs. Ha a gépe rendelkezik hajlékonylemez-meghajtóval, valószínűleg automatikusan be van szerelve /media.
A /dev könyvtár

A Unix-alapú operációs rendszerek egyik egyedi jellemzője az minden egy fájl. Ami azt jelenti, hogy a fájlok mindent képviselnek a rendszerben: a futó folyamatokat, a RAM-ot és igen, a tárolóeszközöket. Amikor például adatokat másol a merevlemezre, a Linux valójában adatokat ír egy fájlba, mint pl /dev/nvme0n1p3, amely a harmadikat jelenti partíció az SSD-ről.
Az /dev könyvtárban tárolják ezeket a speciális fájlokat. Ha átböngészi, szinte minden elképzelhető eszközhöz tartozó fájlokat láthat, a fent említett NVMe-alapú szilárdtestalapú meghajtóktól a SATA merevlemezekig (pl. /dev/sd*) vagy régebbi IDE (/dev/hd*) kapcsolatok, valamint a régebbiek, például a PS/2 egérport (/dev/psaux). A csillagok helyettesítő karaktereket jelentenek; Például egy SATA-alapú beállításnál az első merevlemez a "/dev/sd" lesza”, és a lemez első partíciója a „/dev/sda” lesz1." Második partíciója a "/dev/sda2”, míg a második lemez első partíciója a „/dev/sdb1."
Bár nem fontos, hogy bármilyen sorrendben legyenek, fontos tudni, hogy melyik melyik. Ez a tudás megakadályozza, hogy felülírja a Windows-partíciót, amikor például a Linuxot egy új, üres meghajtóra akarta telepíteni.
Az /etc könyvtár
Az /etc a könyvtár neve, ahol bármilyen extra elhelyezhető, vagy stb fájlokat, cáfolja annak fontosságát. A gyakorlatban ez a könyvtár sok konfigurációs fájlt tartalmaz, amelyek a teljes rendszert vezérlik. Két fő fájltípus található itt:
- Globális konfigurációs fájlok, pl. az /dev/fstab fájl, amelyet az összes olyan izmos meghajtó csatlakoztatására használnak, amelyeket leírt /dev fenti könyvtárban.
- Az úgynevezett „csontváz” fájlok, amelyek alapértelmezésként használatosak a felhasználói szintű beállításokhoz. Példa erre a /etc/profile fájl, amely a Bash shell beállításait tartalmazza. Új fiók létrehozásakor ez a fájl a következő néven másolódik az új fiókba .profil és kiindulópontként szolgál mindaddig, amíg a felhasználó testre nem szabja.
Számos alkönyvtár /etc Az általuk vezérelt alkalmazásokról nevezték el, így könnyen böngészhet itt, és megpróbálhatja megtalálni azt a fájlt, amelyre szüksége van egy alkalmazás javításához, amikor az működik.
A /home és /root könyvtárak
A Windows rajongók megértik a C:\Felhasználók könyvtárat, amelyben a rendszer minden felhasználójának dokumentumai és beállításai találhatók. Mivel a Unix kezdettől fogva többfelhasználós rendszer volt, ez a koncepció már évek óta létezik a Linuxban, mint a /home Könyvtár. Minden fiókhoz tartozik egy alkönyvtár, amely a fiók összes adatát tartalmazza. Valójában egy normál, nem rendszergazdai felhasználó még engedélye sincs fájlokat máshol tárolni.
Az /root könyvtár a rendszergazda megfelelő felhasználói mappája, vagy root felhasználó. Csak abban különbözik /home a helyén (hogy a potenciálisan érzékeny fájlokat távol tartsa a normál felhasználóktól) és a tulajdonjogát.
A /lib könyvtárak
Ahogy valószínűleg te is használod 64 bites operációs rendszer, valószínűleg van itt néhány könyvtár: /lib, /lib32, és /lib64. Ezek olyan szoftverkönyvtárakat tartalmaznak, amelyeket a kernel a legalapvetőbb műveleteihez használ. Azok, amelyek nem tartalmazzák a processzor verziójára jellemző kódot, a /lib mappát. A verzióspecifikusak a /lib32 (32 bites) vagy /lib64 (64 bites) könyvtárak, ha szükséges.
A /media és /mnt könyvtárak

Néhány évvel ezelőtt, ha rendelkezett cserélhető adathordozóval, például USB-meghajtóval, mielőtt használni tudta volna, hozzá kellett rendelnie egy /dev bejegyzést, és hozzon létre egy helyet a /mnt (mount) könyvtár. A modernebb verziókban a Linux disztribúciók automatikusan konfigurálják a cserélhető adathordozókat. Valójában az eszköz csatlakoztatásakor bejelentkezett felhasználótól függően a rendszer létrehoz egy felhasználó-specifikus könyvtárba, csatlakoztassa az eszközt, és győződjön meg arról, hogy a felhasználó rendelkezik a megfelelő engedélyekkel hozzáférni. A különbség manapság az, hogy a /media könyvtárat általában erre a célra használják.
Az /opt könyvtár
Nem is olyan régen volt idő, amikor nem lehetett egyszerűen átugrani egy webhelyre, és letölteni egy Ubuntu-csomagot kedvenc alkalmazásához. E programok közül sokat telepíthet egy egyéni telepítő futtatásával, egyszerűen kicsomagolja őket az archívumból, vagy akár a forráskódjukból építi fel őket. Ezek a telepítési módszerek nem voltak egységesek, és néha nehéz volt nyomon követni, hová tűntek a fájlok, és hogyan lehet őket eltávolítani. Az /opt könyvtárat vezették be ehhez az opcionális szoftverhez, hogy megbizonyosodjon arról, hogy a rendszer többi részét nem érinti, ha a telepítés vagy a eltávolítás félresikerül.
Míg manapság egyre több fejlesztő teszi elérhetővé alkalmazásait szabványos csomagformátumokban (.RPM és .DEB), e programok egy része még mindig települ /opt. Az, hogy ennek a könyvtárnak van-e még értelme, vita tárgya a Linux közösségben, de egyelőre ez marad. És néhány szoftver továbbra is ott települ, még a szabványos .DEB csomagokból is. Nevezetesen, a Google Chrome telepíti az Ubuntu-alapú rendszerekre.
A /sbin könyvtár
Az /sbin könyvtárat, mint a fent említett /bin, bináris segédprogramokat tartalmaz. Ez a könyvtár azonban erre korlátozódik rendszer binárisok, és mint ilyen, csak a root felhasználó futtathatja a tartalmát. Olyan eszközöket tartalmaz, mint pl felhasználó hozzáadása (új felhasználói fiókok létrehozására szolgál), insmod (hardveres illesztőprogramok kernelbe való betöltésére szolgál), és kikapcsolni (leállítja a számítógépet).
Ha ez utóbbira kíváncsi, akkor éles a szeme. Nem, nem kell „szuper-felhasználónak” lenned csak ahhoz, hogy kikapcsold a Linux rendszeredet. Szerver rendszereken ez a helyzet. De az asztalon az előnyben részesített környezet (például KDE, GNOME vagy XFCE) be van állítva, hogy az adott parancsot root felhasználóként tudja végrehajtani.
A /usr könyvtár

Míg felhasználói adat tárolja a /home mappák, /usr és annak alkönyvtáraiban található a rendszerhez telepített szoftverek többsége. Itt telepítve azt jelenti, ami az alapvető segédprogramokon kívül elérhető /bin. Például a következőket fogja tartalmazni:
- Olyan alkalmazások, mint az asztali környezetek, a LibreOffice irodai programcsomag, a GIMP képszerkesztő és a Firefox webböngésző.
- Forráskód olyan dolgokhoz, mint a Linux kernel és a hardver-illesztőprogramok.
- Kiegészítő fájlok, például grafikák vagy dokumentációk a fentiekhez.
Az /usr könyvtár ezeket a saját hierarchiájában tárolja. Tartalmaz kuka, lib, és sbin alkönyvtárak, amelyek ugyanúgy működnek, mint magasabban lévő testvéreik, de csak az Ön által telepített szoftverekkel kapcsolatos dolgokat tartalmazzák. Az /usr/share könyvtár olyan eszközöket tartalmaz, mint az ikonkészletek, valamint a dokumentációs fájlok.

Végül az eredeti szándék a /usr/local ága hasonló volt /opt — felhasználó által telepített, „opcionális” szoftver. A vita része az is, hogy a kettő közül melyik maradjon meg. Egy pont a javára /usr/local az, hogy a legtöbb forráskódból telepített szoftver úgy van beállítva, hogy itt helyezze el magát.
A /var könyvtár

A "fő" Linux könyvtárak közül az utolsó, a /var könyvtár rendszeradatokat tartalmaz. Ez a rendszer műveletei által generált adatokat jelent, például naplófájlokat (/var/log), gyorsítótárak (/var/cache), és a biztonsági másolatok (/var/backup). És mivel a Unix (és így a Linux is) eredetileg többfelhasználós rendszer volt, a szerveralkalmazások, például az e-mail (/var/mail postafiókokhoz és /var/spool/postfix kimenő levelekhez) és hálózati nyomtatáshoz (/var/spool/cups) itt is példányosítson.
Egyéb könyvtárak
A különböző disztribúciók a szabványos könyvtárak különböző kombinációit használják a gyökérszinten. Az alábbiakban megosztjuk az MX Linux 18.3 Continuum és az Ubuntu 19.10 Eoan Ermine gyökérmappájának könyvtárlistáját.


A disztribúciótól függően más könyvtárakkal is találkozhat:
- /lost+found: Vannak esetek, amikor kis adatrészletek rossz helyre kerülnek a rendszerben. Ha tudja, hogy valamit elvesztett, itt ellenőrizheti, bár a tartalma nem lesz könnyen azonosítható. Manuálisan meg kell vizsgálnia a tartalmukat, hogy megtudja, mik azok.
- /proc: Linuxban minden leképezhető fájllal. Az /proc könyvtár a következőhöz társított fájlokat tartalmazza folyamatokat, és megtekintheti őket, hogy megvizsgálja, mit csinálnak (de ezeket ne szerkessze).
- /run: Ez egy futásidejű könyvtár ahol a folyamatok tárolnak néhány ideiglenes adatot, amire szükségük van, leggyakrabban a rendszer indulásakor. A többi rendszerszintű könyvtárhoz hasonlóan itt se vacakoljon.
- /snap: Ubuntu Snap egy csomag formátumban amely egy alkalmazást és mindent, amire az alkalmazásnak szüksége van, a tartály amely el van szigetelve a rendszer többi részétől. Az /snap könyvtár az a hely, ahol ezek a tárolók a tárolóeszközökhöz hasonlóan a rendszerhez vannak csatlakoztatva.
- /srv: Ebben a könyvtárban találhatók a fájlok szolgált démon által programokat tárolnak. Például az Apache webszerver által kiszolgált statikus weboldalak tárolhatók a /srv/www alkönyvtárat.
- /sys: A "minden egy fájl" mantrával összhangban, /sys tartalma pedig ugyanúgy a Linux kernel beállításait és információit képviseli /proc folyamatok futtatására szolgál.
- /tmp: Ha kitalálta a könyvtár nevét ideiglenes adatok, igazad van. A rendszerszintű programok ideiglenesen itt tárolják az információkat.
Windows alapú számítógépeken semmi sem akadályozza meg, hogy bárhová elhelyezze a könyvtárakat, beleértve a gyökérszintet (C:\). Linux alapú rendszereken azonban az adatokat ott kell tartani, ahol a helyük van. A Linuxhoz készült, részletes engedélyeken alapuló rendszer szándékos súrlódást generál, amikor alternatív könyvtárelrendezéseket kényszerít ki abból, amit a rendszer úgy terveztek, hogy elfogadja.