Adresářová struktura na GNU/Linuxu a podobných systémech



Tento článek si klade za úkol co nejstručněji rozebrat systém uspořádání (rozmístění) souborů a adresářů v souborovém systému u většiny Linuxových distribucí.


Na Linuxu se setkáme s UNIXovým uspořádáním adresářů. Například na rozdíl od M$ Window$ je zde mnohem chytřejší práce s disky a dalšími úložišti. Nesetkáme se zde s žádnou složkou “Tento počítač”, ve které by se napevno objevovaly všechny disky pojmenované pomocí písmenek. Na UNIX-like systémech (jako je i GNU/Linux) místo toho máme jeden kořenový adresář, neboli také root (anglicky kořen – pozor. tímto pojmem se označuje více věcí. root je například také uživatelské jméno nejvyššího administrátora v systému, který může udělat absolutně cokoli). Na tento kořenový adresář je mapována jedna disková jednotka, tudíž vše co je na disku uloženo se zobrazí v kořenovém adresáři. Na tomto disku potom můžeme vytvářet další adresáře. Samozřejmě potřebujeme pracovat s více než jedním diskem, proto můžeme do prázdných adresářů připojit další jednotky.

Nyní se podíváme na to, jaké adresáře obsahuje většina Linuxových systémů.

== Základní adresáře ==

/ – root (kořenový adresář), obsahuje úplně vše ;o)
/boot – obsahuje jádro systému, konfiguraci zavaděče a většinou je umístěn na zvláštním diskovém oddílu z důvodu rychlejšího startu systému
/sbin – obsahuje základní systémové programy (příkazy), které může spustit jenom root (administrátor)
/bin – obsahuje základní systémové programy
/lib – obsahuje základní systémové knihovny a podpůrné programy
/usr – obsahuje další programy (které nejsou nezbytné pro chod systému) a knihovny v dalších podadresářích /usr/bin, /usr/sbin a /usr/lib, které odpovídají adresářům /bin, /sbin a /lib.
/etc – obsahuje nastavení systému a jednotlivých programů (které platí pro celý systém)
/home – obsahuje domácí adresáře všech uživatelů kromě roota. V domácím adresáři je uloženo vše co uživatel na systému vytvoří, upraví nebo nastaví (kromě jeho hesla, které je v souborech /etc/passwd a /etc/shadow).
/root – domácí adresář uživatele root. root jako jediný nemá domácí adresář v /home
/tmp – adresář, kam může zapisovat každý uživatel svoje dočasné soubory (například nedokončené soubory při stahování z internetu,…). Tento adresář bývá často umístěn v paměti místo na disku. Tudíž do něj můžeme zapisovat (i ho číst) mnohem vyšší rychlostí, než kdyby byl na disku, ale při vypnutí počítače se jeho obsah smaže. Pokud bychom do něj uložili více souborů, než se vejde do paměti, bude jeho část nahrána do tzv. swapu na disk, ten bude při restartu opět přepsán jinými daty.
/var – obsahuje různá data, u kterých se počítá, že se budou často měnit jako například tzv. “logy” (soubory, kam se zapisuje vše co se na systému děje – když se někdo přihlásí, změní heslo nebo jiné nastavení, atd…). Také zde nalezneme webové stránky (v případě, že počítač je webový server), databáze a podobně.
/opt – obsahuje většinou velmi velké aplikace, které se instalují mimo správce softwarovýh balíků. Například komerční hry jako (Unreal Tournament 2007,…). Jinak je dobré snažit se instalovat software tam kam patří do adresářů uvedených výše. U her a podobného softwaru je tento adresář používán kvůli zjednodušení instalace.

== Adresáře VFS (virtuálního souborového systému) ==

Adresáře, kam je připojený nějaký VFS neobsahují soubory, které by byly skutečně uloženy někde na disku, ale soubory, pomocí kterých můžeme přistupovat k jiným věcem (hardware, běžící jádro a jeho moduly,…)

/dev – obsahuje zařízení. na Linuxu se většinou uplatňuje pravidlo, že pokud možno vše je soubor. v tomto adresáři se tedy zobrazí nový soubor vždy, když připojíme k počítači nové zařízení. (např. /dev/input/mice je myš a pokud tento soubor přečteme, uvidíme spoustu nesrozumitelných binárních dat pokaždé, když pohneme myší…)
/sys – obsahuje soubory pomocí kterých můžeme nastavovat různé systémové věci, je nutné si uvědomit, že tato nastavení se nikam neuloží a po restartu zmizí. Pro příklad můžeme nastavit sílu podsvícení displaye notebooku pomocí zápisu čísla od 0 do 9 na příslušného souboru, nebo v jiném souboru si zase přečteme teplotu procesoru, rychlost větráčku a podobně.
/proc – zhruba podobný jako sys, obsahuje některá nastavení podobná /sys, hlavně ale také informace o běžících procesech (spuštěných programech), dá se z něj tedy zjistit, jaké programy běží, kolik zabírají paměti a podobně. Z procu se také dá zjistit, jak je na tom počítač s pamětí, jaký je v něm procesor, jak rychle procesor běží, ACPI rozhraní (opět teploty disků, procesoru…) atd…

== Domovské adresáře ==

Už jsem se zmínil, že v adresáři /home najdeme domovské adresáře všech uživatelů. Uživatel “harvie” má tedy domácí adresář “/home/harvie“, pokud je tento uživatel přihlášený, existuje pro něj zkratka “~/“, která ho do tohoto adresáře vždy zavede. Tudíž pro uživatele harvie je adresa ~/ stejná jako /home/harvie, ale pro uživatele root, který jako jediný standartně nemá domov v /home odpovídá ~/ adresáři /root. Domovské adresáře všech uživatelů jsou (vedle přihlašovacího shellu) nastaveny v souboru /etc/passwd.

Systém domovských adresářů je velmi praktický, protože obsahuje jen data vytvořená uživatelem a pokud ho tedy zazálohujeme, zazálohujeme jen důležité věci, o které uživatel stojí. Také je to výhodné např. při instalaci nového systému, protože je možné přejít na úplně jinou distribuci Linuxu, nebo celý systém reinstalovat a ihned po spuštění budou mít všichni uživatelé nastavený vzhled i všechny aplikace stejně jako před reinstalací, takže většinou ze začátku ani nepoznají rozdíl.

V domovském adresáři se nachází několik dalších významných složek:

~/Desktop (např. /home/UZIVATEL/Desktop) – Položky plochy pro Gnome/KDE/Xfce a podobná prostředí
~/.config – uživatelské nastavení programů – už jsem psal, že nastavení se ukládá do adresáře /etc , jenomže to platí pro celý systém, ale pokud uživatel chce mít jako jednotlivec nějaký program nastavený jinak, potom si jo může změnit zde. Starší programy byly (a jsou) zvyklé ukládat si svoje nastavení do složky pojmenované podle jména tohoto programu (např. ~/.mozilla/firefox), dnes ale stále přibývá programů, které využívají možnost uložení ~/.config.

Ostatní soubory, které si uživatel ve složce vytvoří jsou jeho vlastními a jejich uložení záleží na jeho vkusu…

== Předpony souborů ==

Všichni asi znají přípony ve jménech souborů jako .html nebo .mp3, na Linuxu se ale často používají také předpony (a to jak pro soubory, tak pro adresáře), existují asi 2:

nejakynazev – obyčejný soubor nebo adresář
~nejakynazev – záloha souboru nejakynazev (vznikne například předtím, než uložíme textový dokument nejakynazev v našem oblíbeném editoru)
.nejakynazev – Skrytý/neviditelný soubor, uživatel je může vidět, ale pokud nechce, tak nemusí. většinou jsou tak skryté soubory a adresáře s nastavením, aby běžného uživatele nemátly a nerušily od práce (když si každý spuštěný program uloží svoje nastavení, tak většinou vznikne v domácím adresáři nepořádek, který je třeba oddělit od souborů, které uživatel vytvořil záměrně).




Líbí se vám článek? Chcete se o něj podělit? Přidejte ho! (volba topclanky.cz nevyžaduje registraci)

6 Responses to “Adresářová struktura na GNU/Linuxu a podobných systémech”

  1. AI Says:

    presne taketo clanky su podla mna velmi hodnotne. ja som poznal viacero systemov. v podstate MS-DOS bol uplne jednoduchy. a s pociatku ponukal rychlost. bolo to par suborov v roote systemoveho disku a adresar DOS, v ktorom bolo vsetko. poznal som kazdy subor v dose, lebo som ho prelozil a s kamosmi sme si priamo v binarkach mnohokrat menili nazvy vyrobcu, ci menili nazvy v menu. a podobne. bola doba suborovych manazerov, ala “mc”. len to vsetko bolo lokalne. na siet sa moc nepripajalo (aj ked boli aj take moznosti, ktore som zazil pri NovellDOS`e s podporou multitaskingu). najcastejsie som pouzival Norton Commander a Volkov Commander. neskor som si oblubil dost aj DOS Navigator. ked prisiel Windows95, tak to bolo este celkom dobra era pre tych, co radi poznali svoj operacny system. v tej dobe bol vzacny kazdy kilobajt pamate, a kazdy megabajt na disku. ludia sa hrali a zmykali zo svojeho kompu co mohli (z hardveru). cez to vsetko win95 nebol az taky komplikovany prekopat a boli aj moznosti, ze priamo z DOSu sa dali pustat win32 graficke aplikacie. win98 napodobne.
    nastastie som narazil na iny operacny system ako je windows98, tak som pri nom aj skoncil. nikdy som neprestal pouzivat windows, lebo chcem ho poznat. uz len koli ludom, ktorich stretavam. avsak co ma AmigaOS naucil je poznanie systemu, ktory nema v mojom zivote obdoby.

    tak ako aj tento clanok objasnuje zakladnu adresarovu strukturu, tak presne tak sa pisali aj kedysi clanky o systemoch. clovek sa ich ucil od zakladu a potom sa v nom nestratil. nevravim, ze by mal dnes kazdy uzivatel poznat tieto veci, ale pokial by mala informatizacia spolocnosti prebehnut kvalitne, tak by prave taketo clanky mali byt jej zakladom. aspon podla mojeho nazoru.

    presne takymto stylom by som rad prispel aj ja ohladne informacii, ktore sa snazia opisat styl chovania AmigaOS. tento clanok ma inspiroval prave v tom, ze ide veci napisat aj jednoducho, bez nejakeho poucneho balastu (ktory sa tak niekde ceni). rad by som to spravil aj koli tomu, lebo prave vznikajuci projekt Anubis OS chce priniest operacny system, ktory vyuziva jadro systemu Linuxu a ovladace pre ovladnutie celeho hardveru pocitaca, na ktorom bude prave vybudovana softverova vrstva v style systemu AmigaOS.

    v tomto smere ma napadlo, ze ak by som mohol nejak pomoct v rozvoji toho projektu, tak by bolo dobre s nejakym linuxakom hladat spolocne atributy tychto dvoch systemov. ak mam byt uprimny, tak lepsiu (krajsiu) adresarovu strukturu ma NetBSD (ale to nie je podstatne). ale pozeral som ci tu neni nejaka registracka na blog a ze by som rad prispieval na tomto webe. a zaroven by sme tu mohli aj o tom diskutovat. ale registracne miesto som nenasiel. asi som moc vyhyleny, ak tu je.

    pekny clanok. dik zan. s pozdravom AI.

  2. Harvie Says:

    AI:
    - Psal jsem to pro byvale spoluzaky jako help k maturite…
    - Norton, Volkov, M602… pamatuju. vlastne mi to prislo pohodlnejsi, nez Windows 3.1
    - Pokud tady chces reklamu pro svuj projekt, da se to udelat treba i nejakym bannerem postrane, nejen pomoci komentare ;) staci napsat.
    - je to vicemene soukromy blog, pomoci ktereho se snazim nejakym zpusobem prezentovat sam sebe a este bych si asi rozmyslel, jestli bych dovolil nekomu jinemu sem prispivat. Tento blog vzniknul primarne za ucelem tridit si vlastni myslenky, nebo si psat poznamky o vecech, ktere mi prijdou uzitecne a nechci je zapomenout.

  3. faha Says:

    Pekný článek.

    Jen bych ještě do něj udělal poznámku, že hierarchie souborů není jen tak vycucaná z prstu, ale popisuje ji Filesystem Hierarchy Standard – FHS.

    http://www.pathname.com/fhs/
    http://cs.wikipedia.org/wiki/Filesystem_Hierarchy_Standard

  4. Harvie Says:

    faha: dik za info… clanek byl zamereny spis na prakticke pouziti a nejake standarty jsem moc nezkoumal, ale je dobry to vedet… nejvic mi vrta hlavou, proc je nastaveni v adresari /etc (podle en.wikipediie od “Et cetera” = “a podobně”)… moc to nechapu ;)

    imho by si taky meli vyvojari hlavne zvykat davat vsechny data a nastaveni programu souvisejici s uzivatelem do ~/.config/* misto rovnou do ~/.* je hrozne otravny mit v home tolik dotfilu bez vyhlidky, ze se jich nekdy zbavim…

  5. faha Says:

    Rekl bych, ze drive byl unix koncipovany a hlavne vyuzivany jako viceuzivatelsky system, root byl pak nekdo a nakonfiguroval chovani vetsiny software v /etc/ a zrejme to udelal dobre, potreba “pretezovat” konfigurace v ~ adresarich nebyla tak intenzivni, dnes s rozmachem
    vyp. techniky kdyz je mapovani pc:user v podstate 1:1 se globalni /etc presouva do ~ coz je vlastne spatne, taky me balast v home stve.

  6. Harvie Says:

    faha: no ona vetsina puvodnich unixovych programku skoro nic neuklada. mame .bashrc, .vimrc, atd… mit tam 10 dotfilu se da este zvladat… ale dost casto je to nejaky program, ktery vytvari konfiguraky automaticky, nebo si tam rovnou neco loguje/cashuje a to je pak zlo. minimalne 70% tech dotfilu sou od programu, kde sem si zadny nastaveni nemenil, nebo ktery dokonce (skoro) vubec nepouzivam, ale dyz to promazu, tak je to zachvili zpatky…

Leave a Reply