Nainstalovali jste si Linux a zdá se vám, že máte na disku nějak moc divných adresářů, ve kterých je spousta jiných divných adresářů? Nepropadejte panice! Systém adresářů na *NIXech1 je totiž postaven na trochu odlišné filozofii než v DOSu. Shrněme si největší rozdíly.
Toto řešení má své výhody i nevýhody. Namodelujme si následující situaci. Máte na svém počítači jeden pevný disk rozdělený na dva oddíly a používáte DOS. Vše je v pořádku dokud k vám nepříjde váš kolega (říkejme mu třeba Pepa) se svým diskem, že chce od vás nějaká data. Vy připojíte Pepův disk do svého počítače a po nabootování zjistíte, (Pro ostříleného DOSistu žádná novina) že tam kde jste měli disk D, si lebedí Pepův disk C, zatímco z vašeho bývalého D je nyní E. To je mrzuté pokud třeba na vašem disku D máte programy které spouštíte z autoexec.bat nebo programy které pro svou činnost chtějí vědět na kterém disku leží. Situace by byla daleko jednodužší, kdyby se Pepův disk neobjevil automaticky, ale až potom co si o něj řeknete - třeba: "připoj Pepův disk jako E:".
Tak takhle nějak to vypadá na *NIXech. Po nabootování je připojen jenom hlavní disk (ten který byl předán jádru jako parametr ze kterého má bootovat - viz 1.3 Start systému). a další disky se připojují až během startu systému, samozřejmě to lze automatizovat - viz 1.2 Důležité soubory soubor fstab.
Ruční připojování přináší trochu komplikace při práci s výměnnými médii. Po založení média do mechaniky (CD-disk, disketa) se musí disk připojit (příkaz mount) a před vyjmutím zase odpojit.
Rozptýlení programů po různých částech disku se může zdát nepřehledné a obtížné na správu, zvlášť když velikost programů a počet jejich souborů s novými verzemi narůstá. Moderní systémy disponují jakýmisi správci, například rpm nebo dpkg, kteří kromě přehledu co kam patří, obsahují i funkce na odinstalaci či kontrolu integrity programů (více informací zde).
Struktura adresářů je na všech *NIXech skoro stejná. Co mají všichni společné ukazuje následující tabulka:
/bin | Nejdůležitější programy nutné pro práci. (sh, bash, ls, cp, vi, ...) |
/boot | Jádro (kernel) systému a informace potřené k "nabootování2" |
/dev | Spousta zajímavých systémových souborů (podrobnosti se dočtete se později) |
/etc | Skoro všechny konfigurační soubory systému (Zpočátku sem budete chodit hodně často) |
/home | Adresáře jednotlivých uživatelů (Na domácím počítači jich moc nebývá) |
/lib | Sdílené knihovny a moduly jádra (I zde se podrobnosti dozvíte později) |
/lost+found3 | Sem se ukládají soubory obsahující ztracená data vlivem chyb v souborovém systému nalezené pomocí programu e2fsck. (obdobně jako soubory fileXXXX.chk a programu chkdsk či scandisk v DOSu). |
/mnt | Standartní umístění takzvaných mountpointů - adresářů do kterých se připojují jiné disky. |
/proc | Tento adresář vlastně doopravdy na disku vůbec neexistuje. Jeho obsah je pouze jakoby virtuálně generovaný jádrem a obsahuje informace o stavu systému. (Zpočátku vás jeho obsah nemusí moc zajímat.) |
/root | Privátní adresář správce systému. |
/sbin | Základní programy pro rozběhnutí a administraci systému (init, fdisk, lilo, ...) Jejich použití je určeno výhradně pro správce systému. |
/tmp | Prostor pro pracovní soubory. Programy, které si chtějí na chvíli odložit data je dávají sem. |
/usr | Obsahuje převážnou část programů a datových souborů z celého systému. Jeho struktura se z části podobá kořenovému adresáři. (Další podrobnosti viz následující tabulka) |
/var | Datové soubory, keré se často mění. (Například TeX sem generuje svoje fonty, nebo se sem ukládají data čekající ve frontě na tiskárnu, ukládá se sem doručená pošta, kde čeká na vyzvednutí adresátem, ...) |
Následující výčet není kompletní, protože se systém od systému poněkud liší, nicméně to nejdůležitější tady najdete. (To ovšem neznamená, že ten zbytek můžete smazat :-)
/usr/X11R6 | Programy a knihovny pro X Window System |
/usr/bin | Většina programů v systému. |
/usr/doc | Dokumentace k programům. (Jedno z prvních míst, kde je dobré hledat informace při nesnázích.) Zvlášť je třeba upozornit na podadresář HOWTO! |
/usr/games | Co dodat? |
/usr/include | Pokud jste něco programovali v jazyce C, asi tušíte. Jsou tady hlavičkové soubory knihoven jazyka C. |
/usr/info | Další z forem dokumentace k programům. (Například soubor bash.info.gz si zobrazíte příkazem info bash) Také se nazývá Texinfo dokumentace. |
/usr/lib | Ostatní sdílené knihovny |
/usr/local | Další možné umístění programů |
/usr/man | Další z forem dokumentace k programům - manuálové stránky. Dokumentace je rozdělena do několika skupin podle zaměření (uživatelské příkazy, administrátorské příkazy, příkazy knihoven jazyka C, popis formátu konfiguračních souborů, ... Například soubor echo zobrazíte příkazem man echo) |
/usr/sbin | Příkazy pro pokročilejší administraci. (Správa uživatelů, tiskových front, některých síťových služeb, ...) |
Vše o discích nalezneme v konfiguračním souboru /etc/fstab. Nejlepší asi bude příklad.
/dev/hda3 / ext2 defaults 1 1 /dev/hda2 swap swap defaults 0 0 /dev/fd0 /mnt/floppy vfat noauto,user 0 0 /dev/cdrom /mnt/cdrom iso9660 noauto,user,ro 0 0 /dev/hda1 /mnt/win vfat codepage=852,posix,iocharset=iso8859-2,quiet,umask=000,user 1 1 /dev/hdc1 /mnt/dos2 vfat codepage=852,posix,iocharset=iso8859-2,quiet,umask=000 1 1 none /proc proc defaults 0 0V prvním sloupci je "zařízení", tedy diskový oddíl (partition), disketové jednotky, CD-ROM apod. V druhém sloupci je cesta (adresář) kam se dané zařízení připojit. Třetí sloupec uvádí souborový systém daného disku (FAT, vFAT, ext2). Pak již pokračují různé přepínače, které říkají jak je dané zařízení připojit,
Na UNIXech jsou věškerá periferijní zařízení (disky, myši,..) reprezentovavá speciálním souborem v adresáři /dev. Např.
1.disk (primary master) = /dev/hdaA y číslo oddílu na tomto disku. CD-ROM je považovaná za další disk. V případě CD-ROM se však neuvádí číslo oddílu. Při instalaci Red Hatu vyrobí instalátor sym-link (viz 0.3.2 Uživatelé a soubory) /dev/cdrom ukazující právě na to zařízení v /dev které specifikuje vaši CD-ROM (např. /dev/hdb), pokud byste po instalaci přepojili CD-ROM do jiné pozice (tím myslím přímo kabel od IDE řadiče), musíte opravit také tento sym-link. Změnou pozice na IDE řadiči se změní označení v /dev
2.disk (primary slave) = /dev/hdb
3.disk (secondary master) = /dev/hdc
4.disk (secondary slave) = /dev/hdd
/dev/hda3 / ext2 defaults 1 1Tedy na prvním je hlavní oddíl (logický disk, partition) s nainstalovaným Linuxem, tento je na prvním fyzickém disku na třetím oddíle (/dev/hda3). Připojuje se přímo do kořenu adresářového stromu ( / ). A je na něm souboruvý systém ext2 (nativní Linuxový systém, second extended file system). Další přepínače mají default hodnoty.
/dev/hda2 swap swap defaults 0 0Druhý řádek popisuje odkladácí prostor (swap). Ta leží na prvním disku v druhém oddíle (/dev/hda2). "Nikam" se nepřipojuje, pouze se říká že se jedná o swap. Souborový systém se jmenuje překvapivě "swap". Další přepínače jsou opět ponechány na základních hodnotách.
/dev/fd0 /mnt/floppy vfat noauto,user 0 0Třetí řádek definuje disketu. První floppy jednotka (/dev/fd0). Připojuje se do adresáře /mnt/floppy a souborý systém je vfat (FAT s dlouhými názvy). Přepínač noauto způsobí že se nebude připojovat hned při startu. Přepínač user říká že tuto jednotku můžou připojovat také obyčejní uživatelé, tedy né pouze superuživatel (root).
/dev/cdrom /mnt/cdrom iso9660 noauto,user,ro 0 0Čtvrtý řádek definuje CD-ROM (/dev/cdrom), která se připojuje do adresáře /mnt/cdrom, má souborový systém iso9660 (standard pro CDROM). A přibyl přepínač ro diky kterému se CD-ROM připojuje jako read-only.
/dev/hda1 /mnt/win vfat codepage=852,posix,iocharset=iso8859-2,quiet,umask=000,user 1 1Velice zajímavý řádek. Připojuje oddíl M$ Windows. Tedy první oddíl na prvním disku (/dev/hda1), do adresáře /mnt/win jako vfat (použitelné i pro FAT32). Přepínač codepage říká v jakém kódování jsou názvy souborů, a iocharset říká do jakého kodóvání se má převádět (na UNIXech se zásadně používají mezinárodní ISO normy). Přepínač quiet způsobí že se systém nebude snažit nastavovat na tomto disku souborům unixové atributy (stejně by se mu to nepovedlo). umask nastavuje (maskuje) pro všechny soubory všechny unixové atributy souborů (viz 0.3.2 Uživatelé a soubory).
none /proc proc defaults 0 0Poslední řádek připojuje speciální adresář s indormace mi jádře systému.
A teď jak připojit např. disketu. Stačí příkaz
mount /mnt/floppypokud má disketa jiný souboruvý systém než jak je uvedeno v /etc/fstab pak ji můžeme připojit třeba takto
mount /mnt/floppy -t ext2Více se přikazu mount můžete dozvědět z manuálových stránek ($ man mount)
Vhodná konfigurace jistě dokáže zpříjemnit život. Mně se například kdysi zdálo, že je dobré mít na konzolích po nastartování zapnutý numlock. Zámky na klávesnici se dají ovládat programem setleds, a jeho parametry naleznete na jeho manuálové stránce (man setleds). Zbývá zajistit nastavení při spuštění systému, tedy někam na konec souboru /etc/rc.d/rc.sysinit přidat
nebo elegantněji/usr/bin/setleds -D +num < /dev/tty1 /usr/bin/setleds -D +num < /dev/tty2 /usr/bin/setleds -D +num < /dev/tty3 /usr/bin/setleds -D +num < /dev/tty4 /usr/bin/setleds -D +num < /dev/tty5 /usr/bin/setleds -D +num < /dev/tty6 /usr/bin/setleds -D +num < /dev/tty7 /usr/bin/setleds -D +num < /dev/tty8 /usr/bin/setleds -D +num < /dev/tty9 /usr/bin/setleds -D +num < /dev/tty10
for tty in /dev/tty[0-9]*; do /usr/bin/setleds -D +num < $tty done
O něco jednodužší je například nastavit monitor aby se po určité době, kdy se na počítači nepracuje sám vypínal. Opět jej můžete zapsat do /etc/rc.d/rc.sysinit.
Toto nastavení má vliv pouze na konzoli. Chcete-li totéž v X Window, koukněte na /etc/X11/XF86Config a hledejte v sekci Screen položky BlankTime, StandbyTime, SuspendTime a OffTime. Vyčerpávající informace naleznete v man setterm a man XF86Config./usr/bin/setterm -blank 5 -powersave on -powerdown 8
Původních 6 virtuálních konzolí můžete zvýšit tak, že v souboru /etc/inittab ke stávajícím
přidáte1:12345:respawn:/sbin/mingetty tty1 2:2345:respawn:/sbin/mingetty tty2 3:2345:respawn:/sbin/mingetty tty3 4:2345:respawn:/sbin/mingetty tty4 5:2345:respawn:/sbin/mingetty tty5 6:2345:respawn:/sbin/mingetty tty6
7:2345:respawn:/sbin/mingetty tty7 8:2345:respawn:/sbin/mingetty tty8 9:2345:respawn:/sbin/mingetty tty9 10:2345:respawn:/sbin/mingetty tty10
$ ls -l /dev/cdrom lrwxrwxrwx 1 root root 3 červen 5 13:21 /dev/cdrom -> hdb // CD ROM je připojena jako druhý disk (hdb) $ ls -l /dev/hdb brw-rw---- 1 root disk 3, 64 květen 5 1998 /dev/hdb $ chmod 666 /dev/hdb // nastavení práv $ ls -l /dev/hdb // kontrola brw-rw-rw- 1 root disk 3, 64 květen 5 1998 /dev/hdb
Také je dobré podobně upravit disketu, tedy /dev/fd0