LenkaKT L.M.A.T.

Linux: Začínáme!

Seriál o Linuxu, druhý díl, Softwarové noviny 7/2000

V minulém díle seriálu jste se seznámili se základními vlastnostmi operačního systému Linux. V přehledu distribucí jste si mohli vybrat tu pravou. Než si začneme povídat o tom, jak z Linuxu vytvořit intranetový či internetový server, musíme ještě trochu sjednotit vědomosti. V tomto díle se proto začátečníci seznámí se základy práce v Linuxu.

Od přihlášení k prvnímu příkazu

Linux je multiuživatelský systém, proto práce v systému začíná vždy přihlášením k systému, tedy zadáním uživatelského jména a hesla. Teprve potom smíte vůbec něco dělat. S operačním systémem komunikujete pomocí příkazů, které můžete zadávat buď vědomě přímo z příkazové řádky nebo nevědomky nepřímo kliknutím na nějakou ikonu nebo menu.

Pracujete-li v textovém režimu, spustí se po vašem přihlášení ihned program, který čte vámi zadávané příkazy a tlumočí je dále systému. Proto se tomuto programu říká příkazový interpret, zkráceně a zkušeně shell. Příkazový interpret je možné spustit i v grafickém režimu: stačí spustit nějakou emulaci terminálu, jako je xterm nebo kvt. Jak je v Linuxu zvykem, existuje příkazových interpretů hned několik. Jako uživatel začátečník možná žádný výrazný rozdíl nezpozorujete: vzhledově se od sebe interprety neliší. Příkazy můžete interpretu sdělovat rovnou vstupem z klávesnice, nebo si nachystáte v nějakém souboru několik souvisejících příkazů a interpretu jen řeknete, kde je najde. Pomocí takových souborů - skriptů - můžete poměrně snadno zjednodušit určité složité nebo často prováděné aplikace: zálohování, kontrola disků, rozesílání hromadné pošty...

Rozdíly mezi jednotlivými interprety objevíte právě v okamžiku, až začnete psát dávky a skripty. Pravidla zápisu skriptů pro jednotlivé interprety se trochu liší a liší se i jejich schopnosti. Nebudu vám radit, který interpret si vybrat: každý interpret má své stoupence, každý má své výhody a nevýhody. Až se v Linuxu otrkáte, vyberete si sami. Rozhodně to není první věc, kterou si v začátcích práce s Linuxem lámat hlavu.

Rozhraní každého interpretu je ale skoro stejné: na začátku posledního řádku je nějak naznačeno, jak se jmenujete, u kterého počítače sedíte a ve kterém adresáři právě pracujete. Za touto informací je nastaven (nebo bliká) kurzor a vy sem můžete psát příkazy. Úvodnímu hlášení na začátku řádku se říká výzva (zkušeně prompt) a bývá odlišné v různých verzích Linuxu. Jiný prompt mívá uživatel root a jiný prostý uživatel. Například v mé distribuci Linuxu vypadá prompt pro uživatele lenka takto:

[lenka@duck lenka]$

a prompt pro uživatele root takto:

[root@duck lenka]#

Syntaxe příkazů, které zadáváte operačnímu systému, je stejná bez ohledu na to, jaký interpret používáte. Základních příkazů systému je docela hodně a navíc je většina z nich vybavena četným zástupem dalších parametrů. Nebudu je proto všechny popisovat. Příkaz spustíte tak, že v příkazovém řádku napíšete jeho jméno. Chci-li spustit příkaz ls pro výpis obsahu adresáře, prostě napíšu do příkazového řádku ls. Parametry příkazů jsou většinou písmena, která jsou uvozena pomlčkou. Rozšiřují nějak dále možnosti příkazu. Například uvedený ls bez parametrů vypíše velmi nepřehledně jen seznam všeho, co v adresáři našel:

[lenka@duck lenka]$ ls Desktop dead.letter jetzt lenkaemacs mail swn-linux dbxml emerge kvt.kdelnk lenkaemacs~ nsmail

Existují proto parametry, které chování příkazu upraví. Parametrem a určíme, že chceme vidět i skryté soubory, parametrem l si požádáme o formátovaný výstup a parametrem h příkazu doporučíme, aby velikosti souborů vypisoval v normálních jednotkách. Je-li parametrů více, jako v tomto případě, nemusíme před každý psát pomlčku. Stačí napsat pomlčku jednou a seskupit za ní ostatní parametry:

[root@duck lmat]# ls -lah celkem 208k drwxr-xr-x 19 lmat lmat 4.0k čen 16 12:48 . drwxr-xr-x 6 root root 4.0k čen 15 11:57 .. -rw-rw-r-- 1 lmat lmat 5.9k bře 20 12:20 .emacs drwx------ 3 lmat lmat 4.0k čen 15 12:13 .enlightenment drwxr-x--- 4 lmat lmat 4.0k kvě 8 10:31 .gftp drwxrwxr-x 11 lmat lmat 4.0k kvě 7 18:58 .gimp -rw-rw-r-- 1 lmat lmat 13 kvě 8 11:44 .ispell_czech -rw-rw-r-- 1 lmat lmat 2 čen 16 10:51 .kaudioserver drwxr-xr-x 3 lmat lmat 4.0k kvě 7 08:52 .kde -rw-r--r-- 1 lmat lmat 757 čen 16 10:51 .kderc drwxr-xr-x 3 lmat lmat 4.0k kvě 7 16:53 .xmms drwxr-xr-x 5 lmat lmat 4.0k kvě 17 22:50 Desktop drwxrwxr-x 3 lmat lmat 4.0k kvě 7 15:50 dbxml -rw------- 1 lmat lmat 293 čen 6 00:33 dead.letter drwxrwxr-x 8 lmat lmat 4.0k čen 15 09:51 emerge drwxrwxr-x 5 lmat lmat 4.0k kvě 18 10:29 jetzt -rw-r--r-- 1 lmat lmat 625 kvě 7 15:20 kvt.kdelnk -rwxrwxr-- 1 lmat lmat 36 čen 5 16:08 lmatemacs -rwxrwxr-- 1 lmat lmat 34 čen 5 10:59 lmatemacs~ drwx------ 2 lmat lmat 4.0k čen 16 10:49 mail drwx------ 3 lmat lmat 4.0k kvě 17 20:49 nsmail drwxrwxr-x 2 lmat lmat 4.0k čen 16 12:53 swn-linux

Většina příkazů umožňuje parametry předávat i v dlouhé podobě. Potom se uvozují dvěma pomlčkami za sebou. Místo parametru -a jsme tak mohli psát --all, místo -h zase --human-readable.

Nejrovnější mezi rovnými

Linux je takzvaný multiuživatelský systém. Znamená to, že v systému může současně pracovat prakticky neomezené množství různých uživatelů. Jednotliví uživatelé o sobě mohou, ale také nemusí vědět. V zásadě jsou si všichni uživatelé rovni. V systému mají tzv. účet, chráněný heslem proti zneužití. Mají přidělen určitý prostor na disku, kde si mohou dělat, co je napadne. Systémové soubory stejně jako soubory ostatních uživatelů jsou jim většinou nedostupné. Chtějí-li instalovat nějaké programy, mohou tak učinit pouze ve svém vyhrazeném prostoru. Nemají většinou právo měnit nastavení systému nebo instalovat cokoliv do ostatních adresářů. Systém je tak docela dobře chráněn proti neoprávněnému zásahu a porušení.

Jednotliví uživatelé mohou být slučováni do skupin. Tyto skupiny mají potom speciální práva. Je-li systém v nějaké firmě, mohou jednu skupinu uživatelů tvořit účetní mající přístup k fakturám, účtenkám a účetnímu programu, jinou skupinu potom tvoří prodejci, kteří naopak účetní program spustit nesmí..

Mezi všemi uživateli se tyčí ten, kdo všemu vládne: uživatel, který se jmenuje root (česky kořen :-). Někdy se mu říká také správce systému nebo superuživatel. root má svou vlastní skupinu root. Jestliže do ní zařadíme nějakého uživatele, získává stejná práva, jako root. Jedině root smí vytvářet, upravovat a mazat účty ostatních uživatelů. Jedině on vidí všechny adresáře a soubory, které jsou na disku přístupné a jedině on smí ve všech případech převzat jejich vlastnictví. Smí instalovat programy, spouštět všechny příkazy, měnit nastavení systému. Vzhledem ke svému božskému postavení je root zároveň také nejnebezpečnějším uživatelem systému. Na rozdíl od ostatních uživatelů může drobnou chybou celý systém nenahraditelně poškodit. Proto se nedoporučuje pracovat v systému příliš často jako root. Platí to i v případě, kdy jste uživatelem systému jen vy sami.

Zná-li nějaký z uživatelů heslo k účtu root, může občas pracovat jako root. Stačí, když v příkazovém řádku zadá příkaz su. Potom stačí zadat heslo, vykonat to, co potřebujete a příkazem exit se stát zase prostým uživatelem. Znovu opakuji, že i v případě, kdy jste uživatelem systému jen vy sami, je mnohem bezpečnější vytvořit účet pro obyčejného uživatele a k normální práci používat tento účet. Až se rozhodnete něco instalovat, použijte su.

Kromě uživatele root a ostatních fyzických uživatelů existují v systému ještě další virtuální účty, například bin, daemon nebo nobody. Tyto účty slouží systému ke spouštění různých procesů nebo pro práci jiných programů. Například uživatele nobody používá webový server.

Seznam všech uživatelů je uložen v souboru passwd uloženém v adresáři etc. Na každém řádku souboru je vždy uvedeno jméno uživatele, za dvojtečkou může, ale nemusí být uvedeno kodované heslo, následují dvě čísla, podrobnější informace o uživateli, cesta k jeho domovskému adresáři a cesta k programu, který se spustí po přihlášení do systému. Čísla jsou identifikační čísla uživatele a skupiny do které patří. Řádek pro uživatele lenka v mém Linuxu proto vypadá takto:

lenka:x:500:500:Lenka M.A. Triskova:/home/lenka:/bin/bash

Ve stejném adresáři jako soubor passwd je uložen i soubor group obsahující informace o skupinách uživatelů.

Nového uživatele můžete vytvořit dvěma způsoby: buď přímo přidáte řádek do souboru passwd, nebo použijete příkaz useradd (nebo adduser, záleží na distribuci). Heslo potom uživateli nastavíte příkazem passwd. Hesla uživatelů smí měnit jen oni sami (potom spouštějí příkaz bez parametrů) nebo root (spustí příkaz se jménem uživatele, např. passwd lenka).

Nepropadejte panice!

Zvládnout práci s novým neznámým systémem bývá nesnadné. Nemusíte se ale obávat, že to půjde ztuha. Linux je vybaven spoustou možností, jak rychle získat nápovědu a pomoc v nouzi.

Za prvé: většina příkazů má parametr --help (nebo některé starší verze jen h). Zadáte-li příkaz s tímto parametrem, vypíše se vám nápověda. Například v posledních distribucích RedHat je navíc nápověda v češtině: zde je ukázka začátku nápovědy k příkazu ls:

[lenka@duck lenka]# ls --help Použití: ls [PŘEPÍNAČ]... [SOUBOR]... Vypisuje informace o SOUBORech (implicitně z aktuálního adresáře). Jestliže není zadán žádný z přepínačů -cftuSUX nebo --sort, výstup bude seřazen abecedně. -a, --all vypíše všechny soubory i ty začínající tečkou -A, --almost-all vypíše všechny soubory, kromě souborů '.' a '..' -b, --escape vypíše negrafické znaky osmičkově --block-size=VELIKOST použije tuto velikost bloku -B, --ignore-backups nevypisuje soubory končící na ~ -c s -lt: řadí podle ctime a vypisuje ctime (čas poslední změny i-uzlových informací); s -l: vypisuje ctime, řadí podle názvu souboru; jinak: řadí podle ctime

Za druhé: jestliže nerozumíte nápovědě k příkazu, nebo je nápověda na váš vkus příliš stručná, zkuste manuálové stránky. Spouští se příkazem man téma, kam za téma dosadíte co vás zajímá. Nápovědu k příkazu ls tak získáte pomocí man ls. Manuálové stránky jsou již trochu sdílnější, mají však jednu podstatnou nevýhodu: musíte vědět, co hledat. Nemůžete proto zadat příkaz man jak-mám-kopírovat-soubory?. Proto existuje třetí typ nápovědy, soubory HOW-TO, neboli rady, jak řešit konkrétní problémy. Ve většině distribucí je máte tyto soubory k dispozici formátované jako obyčejné textové soubory, jako HTML a jako postscript. Jestli žádné HOW-TO nenajdete, dají se stáhnout z Internetu.

Další možností, jak čerpat informace, jsou soubory FAQ. Je to zkratka z anglického Frequently Asked Questions, což česky znamená často kladené otázky. FAQ bývají součástí distribuce, ale rozhodně je také seženete na Internetu. No a konečně existuje celá řada knih a textů. Mnohé vyšly i u nás v českém překladu.

Od povrchu až k jádru

Každému programu, který v Linuxu spustíte, se říká proces. Je to nezávisle běžící program s vlastním vstupem a výstupem a vlastními systémovými zdroji. Aby v Linuxu nezavládla naprostá anarchie, existuje jeden program nadřazený všem ostatním: jádro Linuxu (někdy se používá poloanglický název kernel). Jádro jednotlivé procesy řídí a hlídá, aby si vzájemně neubíraly paměť, nepřepisovaly si soubory na disku a podobně. Jádro je tedy velmi důležitou částí operačního systému. Proto je také taková pozornost ve světě Linuxu věnována právě vývoji jádra a proto se s každou novou verzí vedou diskuse o tom, co do jádra zařadit a co ne.

Prakticky vše, co Linux umí, musí být nějakým způsobem obsaženo v jádře nebo o tom jádro musí vědět. V jádře musí být zastoupeny ovladače pro všechna zařízení, která používáte, musí zde být také nějak zabudována podpora pro souborové systémy na vašich discích, podpora sítě, síťových protokolů atd. Existují dva způsoby, jak jádro naučit určitou činnost: buď jádro přímo obsahuje příslušný kód, nebo obsahuje odkaz na externí soubor, ve kterém potřebný kód najde. Externím souborům pro jádro se říká moduly. O tom, jak bude jádro vypadat a co všechno bude vlastně umět, rozhoduje správce systému při instalaci. Kromě toho má kdykoliv v budoucnosti možnost jádro nově upravit a nově přeložit.

Možnost připojit různé ovladače k jádru jako zaveditelný vnější modul představuje nesmírnou výhodu. Kdyby muselo být vše obsaženo přímo v jádře, časem by vám skromné jádro slušně nabobtnalo. Navíc byste vždy museli se změnou nějakého ovladače nově sestavovat a překládat jádro, což může být na pomalejším stroji časově náročné. Proto se do jádra zahrnují jen ovladače životně důležité pro systém a většina ovladačů se připojuje až v okamžiku, kdy je uživatel potřebuje.

Sestavení nového jádra a jeho překlad je vcelku normální součástí života správce Linuxového systému. Neznamená to, že je nutné jádro překládat každý týden, dochází k tomu spíše v případech, kdy nějak měníte HW konfiguraci počítače, způsob připojení k síti a podobně. Rozhodně se nemusíte bát, že to bude těžké. Pro sestavení nového jádra existují nástroje pro grafickou i textovou konzoli a sestavení nového jádra tak zvládne průměrně cvičená opice (například já...).

Procesy, které jádro hlídá, spouštějí jednotliví uživatelé nebo jiné procesy. Každý běžící proces má své identifikační číslo (PID), pracovní adresář a svého majitele. Majitelem procesu je uživatel, který proces spustil. Majitel smí spuštěný proces kdykoliv ukončit a to i hrubým a násilným způsobem pomocí příkazu kill v případě, že se proces zasekne a přestane komunikovat. Seznam všech běžících procesů zjistíte příkazem ps, úplný seznam včetně jmen majitelů, pracovních adresářů a informací využití systémových zdrojů potom příkazem ps -aux.

Jak Linux vypadá

Zkuste zavřít oči a vybavit si, jak vypadají Windows. Představovali jste si monitor s pracovní plochou, ikonami, nabídkou Start a možná nějakým otevřeným oknem? Výborně. Nyní zavřete oči a představte si Linux. Pravděpodobně to bude mnohem těžší, Linux je totiž mnohem proměnlivější. Jak jste se možná dočetli v prvním díle seriálu, možných rozhraní, která svým uživatelům nabízí ke komunikaci, existuje poměrně dost.

Základním rozhraním je textový režim s příkazovým řádkem. V takovém případě toho z Linuxu mnoho neuvidíte. Systém s vámi komunikuje pomocí hlášení vypisovaných na obrazovku a vy mu odpovídáte vstupy z klávesnice. Celé je to nápadně podobné MS DOSu. Podstatný rozdíl ale existuje v možnostech, které vám oba systémy nabízí. Zatímco v DOSu máte k dispozici jen jednu černou obrazovku, v Linuxu můžete i v textovém režimu pracovat dohromady na šesti věcech najednou. K dispozici máte totiž šest tzv. virtuálních konzolí, mezi kterými se můžete přepínat pomocí kláves AltF1 až AltF6. Na jednotlivých konzolách můžete pracovat jako různí uživatelé a dělat naprosto odlišné věci, jsou vzájemně nezávislé.

Kromě toho vám Linux nabízí mnoho různých grafických rozhraní. Na rozdíl od Windows však grafické rozhraní není nedílnou součástí systému a je také mnohem variabilnější. Pracujete-li v grafickém rozhraní, je v systému spuštěn program X-server, který vydává pokyny jednotlivým oknům, čte vstupy z klávesnice a rozhoduje, kterému procesu je pošle. S X-serverem komunikuje správce oken, který okna vykresluje. Správců oken existuje mnoho a díky tomu také existuje mnoho různých vizuálních podob Linuxu. Dnes nejpoužívanější správci oken jsou KDE a GNOME (oboje je trochu více než jen správce oken, jsou to skutečně ucelená grafická rozhraní nabízející navíc nejrůznější grafické nástroje pro správu systému, programy apod.). Klasikou je například fvwm nebo Window Maker.

Každé grafické rozhraní se ovládá trochu odlišně. Na druhou stranu ani v jednom případě neklade ovládání příliš vysoké nároky na inteligenci uživatele. Většina se dá zvládnout intuitivně. Jen si musíte zvyknout na to, že někteří správci oken používají i prostřední tlačítko myši (u dvoutlačítkových myší se nahrazuje současným stiskem obou tlačítek) a že pravé tlačítko myši může mít úplně jinou funkci než ve Windows. I v grafice máte většinou k dispozici více než jednu pracovní plochu. Kromě toho je možné se stiskem kláves CtrlAltF1 až CtrlAltF6 přepnout na textovou konzoli. Zpět do grafického rozhraní se vrátíte stiskem AltF7.

Většina uživatelů, kteří s Linuxem pracují déle, nakonec dospěje do stavu, kdy si v grafickém rozhraní spustí emulátor terminálu (textové konzole) a pracují v něm. Proč? Práce v grafickém rozhraní je většinou velmi pohodlná, ale také zdlouhavá. Jakmile znáte většinu příkazů operačního systému zpaměti, je mnohem rychlejší pracovat v terminálu pomocí klávesnice než bloudit myší mezi okny.

Soubory a adresáře

Podobně jako je tělo živých organismů složeno z různých typů buněk tvořících dohromady tkáně a orgány, je tělo operačního systému poskládáno z různých souborů. Vše, co se v operačním systému děje, se nějak točí kolem souborů: všechny programy a příkazy jsou uloženy někde v souborech stejně jako data a konfigurace.

Podle obsahu můžeme soubory rozdělit v zásadě do dvou velkých skupin: na soubory textové a binární. Textový soubor obsahuje znaky zapsané pomocí tzv. ASCII kódu. Obsah souboru snadno prohlédnete pomocí libovolného textového editoru nebo pomocí příkazů sloužících k práci s textovými soubory. Binární soubor obsahuje data uložená jiným způsobem. Příkladem binárního souboru může být obrázek uložený v libovolném formátu nebo spustitelný program přeložený do strojového kódu. Když si binární soubor otevřete v textovém editoru, uvidíte něco, čemu se často říká rozsypaný čaj: textový editor se pokusí na obsah souboru nahlédnout ASCII brýlemi. Jsou-li data uložena v binárním souboru, potřebujete nějaký speciální program, který ví, jak jsou uložena a dokáže tak obsah souboru nějak zpracovat.

Ve Windows se setkáte spíše se soubory binárními. Především vlastní nastavení Windows - registr - je uloženo v binárním souboru. Rovněž mnoho programů používá binární konfigurační soubory a své výstupy ukládá v nejrůznějších binárních formátech. V Linuxu se s textovými soubory potkáte na každém kroku: všechna nastavení systému i jednotlivých programů jsou totiž uložena právě v textových souborech. Proto také ve většině knih o Linuxu najdete mezi prvními kapitolami popisy textových editorů: bez nich se totiž správce neobejde. Binární soubory jsou většinou spustitelné programy, obrázky nebo nějaká speciální data.

Každý soubor se nějak jmenuje. V Linuxu nejsou jména souborů nijak drasticky omezována. Platí následující zásady (stejné zásady platí i pro pojmenovávání adresářů):

  1. Jméno souboru smí být dlouhé maximálně 255 znaků.

  2. Jméno smí obsahovat libovolné znaky, tedy i mezery nebo znaky s diakritikou. Nepoužívejte znak /, tímto znakem se totiž oddělují adresáře v cestě. Zbytečně byste svého tučňáka pletli.

  3. Rozlišují se velká a malá písmena. Soubor, soubor a SOUBOR jsou tři různá jména pro tři různé soubory.

Jméno souboru nebo adresáře může být skutečně libovolné. Například lstivý hacker může svůj domovský adresář pojmenovat pouze znakem mezera a skrýt se třeba do adresáře /dev - je v něm prakticky neobjevitelný, protože jej ve výpisu snadno přehlédnete.

Na rozdíl od Windows nemusí mít soubory v Linuxu žádné přípony oddělené tečkou od vlastního jména souboru. Tečky se v názvech souborů mohou vyskytovat na libovolném místě v libovolném počtu. Přípony se často používají pro určení typu souboru: u obrázků, komprimovaných souborů a podobně. Komprimované archivy jsou typickým příkladem souboru se dvěma příponami: poznáte je podle názvu jmeno.tar.gz. Začíná-li název souboru tečkou, potom se velmi pravděpodobně jedná o konfigurační a podobné systémové soubory. Někdy se těmto souborům říká skryté. Základní příkaz pro výpis obsahu adresáře je totiž nezobrazuje. Stejně tak ve většině grafických nástrojů pro zobrazování obsahu adresářů musíte samostatně nastavit, zda chcete zobrazovat i tyto soubory. Podobné zásady platí i pro adresáře. Jejich jména se tvoří stejně jako jména souborů. Tečka na začátku jména má i u adresáře podobný význam jako u souboru. Používáte-li například grafické rozhraní KDE, najdete ve svém domovském adresáři jistě i adresář .kde. Obsahuje základní nastavení pro správce oken a aplikace určené pro KDE.

V příkazovém řádku si obsah adresáře zobrazíte pomocí příkazu ls. Chcete-li vidět i skryté soubory, musíte jej spustit s parametrem ls -a. Následující výpis ukazuje rozdíl. Nejprve vidíte zdánlivě prázdný domovský adresář pokusného uživatele test, potom vidíte obsah téhož adresáře i se skrytými soubory.

[test@duck test]$ ls Desktop[test@duck test]$ ls -a . .bash_logout .bashrc .kde .xauth .. .bash_profile .emacs .kderc Desktop

Popisu, který určuje, kde přesně se soubor na disku nachází, se říká cesta k souboru. Cesta může být absolutní, potom popis začíná přímo v nejvyšším adresáři. Na rozdíl od Windows, kde je diskový prostor rozdělen podle jednotlivých disků a značen písmeny, existuje v Linuxu jen jeden nejvyšší adresář. Říká se mu kořenový a označuje se lomítkem /. Absolutní cesta proto vždy začíná lomítkem, odkazem na kořenový adresář. Následují jednotlivé adresáře, oddělené zase lomítky. (Varování pro uživatele Windows: lomítka jsou obrácená!). Na konci výpisu je jméno souboru nebo adresáře, ke kterému cesta vede.

Je-li nutné přesně určit, o jakém adresáři či souboru mluvíme, používá se místo pouhého jména adresáře celá absolutní cesta k adresáři. Je totiž mnohem jednodušší říci, že mám články uloženy v adresáři /home/lenka/clanky, než složitě popisovat: Moje články jsou v adresáři clanky, který mám ve svém domovském adresáři lenka. Ten je v adresáři home, jenž je přímo v kořenovém adresáři...

Při pohybu mezi adresáři v příkazovém řádku nepotřebujete vždy přesně vypisovat celou absolutní cestu. Zbytečně to zdržuje. Existuje proto ještě tzv. relativní cesta. Popisuje cestu, která k cíli vede z právě otevřeného adresáře. Aktuální adresář se označuje jednou tečkou, ., nadřazenému adresáři přísluší dvě tečky ... Jsme-li vnořeni v adresáři home, vede k mým článkům cesta lenka/clanky.

Každý proces spuštěný v Linuxu má svůj pracovní adresář. Odkládá si do něj různé dočasné soubory a podobně. I příkazový řádek má svůj pracovní adresář. Ke zjištění absolutní cesty k pracovnímu adresáři v příkazovém řádku slouží příkaz pwd:

[lenka@duck clanky]$ pwd /home/lenka/clanky

K přechodu mezi jednotlivými adresáři slouží příkaz cd. Parametrem příkazu může být absolutní i relativní cesta. Chceme-li se pouze vynořit z adresáře clanky, postačí nám příkaz cd ... K přechodu do adresáře /home/lenka/dopisy z adresáře /home/lenka/clanky použijeme příkaz cd ../dopisy.

Při popisu cesty nebo jména souboru se mohou používat zástupné znaky. Nejčastěji používaným znakem je hvězdička *. Nahrazuje libovolnou skupinu znaků. Cesta ke všem souborům v adresáři /home/lenka, jejichž jména začínají písmenem k, se proto zapíše /home/lenka/k*.

Se svými soubory můžete manipulovat buď pomocí příkazů (cp pro kopírování, mv pro přesun, mkdir pro vytvoření nového adresáře...) přímo v příkazovém řádku, nebo nějakým nástrojem. Nejpoužívanější nadstavbou pro práci se soubory v textovém režimu je asi Midnight commander. Spustíte jej příkazem mc. Kdo je z DOSu nebo Windows zvyklý na Norton (Volkov) Commander nebo jiný podobný program, jistě zajásá. Já osobně i v grafickém prostředí spouštím pro práci se soubory v Midnight Commander v emulátoru terminálu. Grafická rozhraní nabízí pro práci se soubory nástroje podobné nástrojům Windows. V GNOME je připraven grafický Midnight Commander. V KDE najdete program kfm. Podobné programy najdete ve většině grafických rozhraní. Některé distribuce mají vlastní správce souborů (například Corel Linux). Většina grafických nástrojů pro práci se soubory se dá použít i jako webový prohlížeč či FTP klient.

V Linuxu pracuje několik uživatelů současně, proto je u každého souboru přesně určeno, komu soubor patří a jak s ním smí zacházet ostatní uživatelé. Obecně se v Linuxu rozlišují tři úrovně přístupových práv: přístupová práva vlastníka, přístupová práva skupiny uživatelů, do které vlastník patří a přístupová práva ostatních uživatelů. V každé úrovni můžeme povolit právo čtení, právo zápisu a právo spuštění. Jestliže na nějaké úrovni nejsou nastavena žádná práva, uživatelé z této úrovně soubor vůbec neuvidí a nebudou mít ani tušení, že se na disku vyskytuje. Příkladem mohou být domovské adresáře uživatelů, které si často vzájemně uživatelé vůbec nevidí. Právem čtení adresář či soubor zviditelníme, povolíme prohlížení a kopírování souboru. Právem zápisu dále povolíme soubor přesouvat, upravovat nebo smazat. Spustitelné soubory (programy) navíc mívají nastaveno právo soubor spouštět. I toto právo se dělí do tří úrovní: například některé důležité příkazy smí spouštět jen uživatel root. O tom, zda bude možné soubor spustit, nerozhoduje přípona souboru, jak jste možná zvyklí z Windows, ale právě právo (atribut) spustitelnosti.

Pro změnu příkazových práv slouží příkaz chmod, vlastníka souboru je možné měnit příkazem chown a skupinu uživatelů příkazem chgrp. V grafických nástrojích se práva většinou mění na kartě vlastností souboru či adresáře.

Zapomeňte na písmena!

Jestliže jste až do dnes pracovali výhradně v MS DOSu nebo Widnows, čeká vás po spuštění Linuxu první velké překvapení: V Linuxu totiž nenajdete starý dobrý disk C:, D: nebo X:. Linux pracuje s pevnými disky úplně jinak. V Linuxu existuje vždy právě jeden adresářový strom, který začíná v kořenovém adresáři. Vy jako uživatel vůbec nemusíte poznat, že uvnitř v počítači není jen jeden pevný disk, ale třeba celé diskové pole. Jednotlivé disky je totiž možné připojit kamkoliv do adresářového stromu.

Podobné zásady neplatí jen pro pevné disky, ale také pro CD mechaniky, ZIP mechaniky nebo diskety. Tato zařízení se většinou standardně připojují do adresáře /mnt. CD mechaniku najdete na 95% v adresáři /mnt/cdrom, disketovou mechaniku v adresáři /mnt/floppy. Máte-li v počítači navíc třeba šuplík s dalším pevným diskem, je možné, že pro něj máte v adresáři /mnt další samostatný adresář.

Ve velkých Unixových systémech často bývají domovské adresáře uživatelů umístěny na samostatném disku. Na dalších discích potom najdete vlastní systém nebo třeba webový server. Má to své důvody: jestliže je z libovolného důvodu nutné zasáhnout do systému a případně i formátovat systémový disk, uživatelské adresáře zůstanou nedotčené. V takovém případě se potom další disky nepřipojují do /mnt, ale do adresáře /home.

Základním kamenem pro práci s disky je v Linuxu soubor /etc/fstab a příkaz mount. Příkaz slouží k připojování a odpojování disků, soubor popisuje, jak a kam se mohou nejrůznější disky připojovat. Je v něm například určeno, že některé disky smí připojit pouze uživatel root, nebo naopak to, že se disk připojí automaticky ihned po startu systému.

Proč se nepřipojí vše automaticky po startu systému? Je to proto, že obsah média se načítá v okamžiku, kdy je připojováno. Chcete-li v Linuxu prohodit disketu v mechanice, musíte původní disketu nejprve odpojit, vyndat, vložit novou a znovu si disketu připojit. Jen tak uvidíte skutečně obsah nové diskety. V grafických nástrojích pro správu disků je tento problém často odstíněn, takže stačí vyměnit diskety a klepnout myší na nějakou ikonu odpovídající disketové mechanice.

I když Linux nepoužívá pro názvy disků písmena, nějak si je pojmenovávat musí. Musí přece rozlišit, který disk je pro domovské adresáře a který pro systém. Pevné IDE disky se pojmenovávají hda, hdb, hdc atd, podle pořadí, v jakém jsou fyzicky zapojeny v počítači. (Např. máte-li jeden master a jeden slave disk, bude master hda a slave hdb). Jsou-li disky rozděleny do dalších oddílů - a to jsou vždy - rozlišují se jednotlivé oddíly čísly. První oddíl na prvním pevném disku je hda1, druhý hda2 atd. SCSI disky se označují buď sda, sdb... nebo někdy také písmeny mda, mdb.

Balíčky

Jen málokdy se zajímavý soubor vejde na jednu disketu. I proto vznikly nejrůznější metody, jak soubory komprimovat. V Linuxu se ke komprimaci souborů používá program gzip. Na rozdíl od Windows, do kterých si podobný program musíte dokoupit, je gzip pochopitelně nedílnou součástí systému. Balíčky zabalené tímto programem mají příponu .gz a rozbalíte je ve všech distribucích Linuxu bez vyjímky.

Často je v zazipovaném balíčku schovaný rovnou další balíček - archiv vytvořený programem tar. Tento program původně vznikl pro archivaci souborů na magnetické pásky. Na magnetické pásky se zapisuje mnohem hůře než na disky: nemůžete na nich přeskakovat z místa na místo jako na disku. Proto program tar dokáže zabalit do jednoho souboru libovolný kousek adresářového stromu. Proto se velmi často před vlastní komprimací soubory zabalí pomocí programu tar. Díky tomu si komprimované a zabalené soubory kdykoliv rozbalíte přesně ve stejné podobě, v jaké vám je někdo zabalil. Proto se v archivech s programy tak často setkáte se soubory s příponou .tar.gz nebo .tar.zip

V Linuxu se dále setkáte s určitými speciálními balíčky, které používají některé distribuce. Příkladem mohou být rpm balíčky, které používá distribuce RedHat a všechny distribuce, které z ní vycházejí. Umožňují velmi jednoduše přidávat a zase ubírat programy. Uživatelé, kteří používají grafické rozhraní GNOME, mohou s těmito balíčky dokonce pracovat v pěkném programu GnoRPM.

Autorkou tohoto webu je LenkaKT, alias Lenka Kosková-Třísková. Bádám a vyučuji na TU Liberec.

Poslední změna: 3. 3. 2011