Kniha byla zakoupena na serveru alza.cz. Jméno: Objednávka: Následující text vznikl za přispění editora, grafika,

Rozměr: px
Začít zobrazení ze stránky:

Download "Kniha byla zakoupena na serveru alza.cz. Jméno: Objednávka: Následující text vznikl za přispění editora, grafika,"

Transkript

1

2 Kniha byla zakoupena na serveru alza.cz. Jméno: Objednávka: Následující text vznikl za přispění editora, grafika, sazeče, korektora a mnoha dalších. Všichni vám společně s autorem děkujeme za zakoupení této knihy.

3 Pavel Kameník Příkazový řádek v Linuxu Praktická řešení Computer Press Brno 2012

4 Příkazový řádek v Linuxu Praktická řešení Pavel Kameník Obálka: Martin Sodomka Odpovědný redaktor: Martin Herodek Technický redaktor: Jiří Matoušek Objednávky knih: eshop@albatrosmedia.cz bezplatná linka ISBN Vydalo nakladatelství Computer Press v Brně roku 2012 ve společnosti Albatros Media a. s. se sídlem Na Pankráci 30, Praha 4. Číslo publikace Albatros Media a. s. Všechna práva vyhrazena. Žádná část této publikace nesmí být kopírována a rozmnožována za účelem rozšiřování v jakékoli formě či jakýmkoli způsobem bez písemného souhlasu vydavatele. Dotisk 1. vydání

5 Obsah Úvod Co je obsahem knihy...17 Komu je kniha určena...18 Jak tuto knihu číst...18 Co budete dále potřebovat...18 Na jakých systémech jsou jednotlivé ukázky otestovány...18 Zpětná vazba od čtenářů...19 Errata...19 Kapitola 1 Začínáme Něco lehkého na úvod...21 První ukázka...22 Výpis běžících procesů podruhé...24 Chci si prohlédnout běžící procesy příkaz ps...24 Musím vědět o procesech více...25 Které procesy má spuštěny konkrétní uživatel...26 Proces najdu, ale potřebuji jej zrušit nebo zastavit...26 Příkaz kill...26 Jak mám spustit program...27 Potřebuji spustit program a dále pracovat na terminálu...27 Jak mám najít, odkud se příkaz spouští...29 Zadal jsem špatný příkaz jak smažu slovo...29 Potřebuji smazat celý řádek...29 Hledání informací o příkazu...30 Jak zobrazit všechny stránky manuálu pro daný příkaz...30 Chci informace o příkazu příkaz info...30 Potřebuji rychle možné parametry příkazu...31 Kde můžu najít manuálové stránky v mé distribuci...31 Jaké jsou základní klávesové zkratky...31 Chci vyčistit (vymazat) okno terminálu...31

6 4 Obsah Kapitola 2 Práce se soubory a adresáři Čtení souboru...33 Co je v souboru...33 Jednoduché použití příkazu more...33 Chci soubor prohlížet jen po několika řádcích...34 Lze prohlížet i více souborů po sobě...34 Použití příkazu less...34 Potřebuji se v souboru pohybovat vpřed i vzad...34 Potřebuji u výpisu vidět i čísla řádků...35 Nechci číst soubor od začátku...35 Jak se pohybovat po souboru...35 Napsání jednoduchého textu...35 Využití příkazu echo a přesměrování výstupu...35 Elegantnější psaní textu pomocí cat...36 Jak vytvořit prázdný soubor, změnit čas přístupu k souboru...36 Údaje v souboru bych chtěl setřídit...37 Jak vyhledávat řetězec v textovém souboru...39 Chci se jen podívat na začátek souboru...39 Zajímá mne konec souboru...39 Jak na konec souboru u stále rostoucích záznamů...40 Chci porovnat dva soubory...40 Můžu se přesvědčit, o jaký typ souboru se jedná...41 Můžu zjistit typ souboru u více souborů naráz...41 Jak zabránit přepsání souboru...42 Jak připojit k jednomu souboru další výstup...42 A ještě něco na odlehčení...43 Textový editor Vi...43 Stručně o editoru Vi...43 Základní práce s editorem...44 Chci napsat text do souboru...44 Pohyb v delším souboru...45 Vkládání a změny v souboru přepnutí do vkládacího módu...45 Vyhledávání v textu...45 Nastavení prostředí...45 Ukončení editoru...46 Soubor potřebuji pouze vytvořit:...46 Textový editor Vim Vi Improved...46 Jak se pohybovat v textu...47 Textový editor EMACS...48 Stručně o editoru EMACS...48

7 Obsah 5 Chci napsat text v editoru EMACS...48 Nápověda...49 Některé další důležité příkazy...49 Pohyby v textu...49 Editor Nano...49 Práce s adresáři základní operace...50 Ve kterém jsem adresáři...50 Jak mám procházet adresáři...50 Chci vypsat obsah adresáře...51 Potřebuji vypsat jen některé soubory...52 Přesouvání souborů a adresářů...53 Adresářová struktura...53 Potřebuji přesunout, přejmenovat soubor, příkaz mv...54 Jak mám vytvořit adresář...55 Potřebuji přesunout adresář anebo adresáře...55 Třídění adresáře...56 Potřebuji nejprve zobrazit setříděné adresáře a následně setříděné soubory...56 Kopírování souboru, souborů...57 Chci zkopírovat jeden soubor...57 Chci kopírovat více souborů...57 Jak zkopírovat obsah adresáře včetně podadresářů...57 Vyhledávání souboru, souborů...57 Jak vyhledávat příkaz find...57 Odstranění souboru, souborů...59 Potřebuji odstranit soubor, soubory...59 Potřebuji smazat soubor i s adresářem, ve kterém je umístěný...59 Odkazy na soubor - linky...60 Jak je to s odkazy na soubory pevný odkaz...60 Jak je to s odkazy na soubory symbolický odkaz...61 Práce s archivy...61 Jak pomocí tar provedu komprimaci...61 Potřebuji vědět, co je obsaženo v archívu tar...62 Potřebuji archiv tar rozbalit...62 Chci z archivu jen jeden soubor...62 Jak provedu komprimaci pomocí zip archivu...63 Chci si prohlédnout obsah archivu zip...63 Rozbaluji zip archiv...64 Práce s archivem rar...64 Můžu přidat do archivu další soubory?...64 Co obsahuje můj archiv?...64 Chci vidět, co je v zabalených souborech...65

8 6 Obsah Chci archiv rar zaheslovat...65 A co rozbalení archivu rar?...65 Chci rozbalit soubory do aktuálního adresáře...66 Další typ archivu gzip...66 Můžu si zabalený soubor prohlížet?...66 Dalším typem archivu je bzip Kapitola 3 Práva a co s nimi Práva přístupu k souborům, adresářům...69 Jak můžu změnit vlastníka?...70 Můžu měnit oprávnění přístupu k souboru...70 Příkaz chmod poprvé...70 Příkaz chmod podruhé...71 Jak se dají nastavit práva...71 Můžu změnit skupinu?...71 K čemu je dobrý alias...72 Jak vytvořit alias pro všechny nové uživatele...73 Jak se můžu přihlásit jako jiný uživatel...73 Jak se přihlásím jako superuživatel root...73 Chci zadat jen příkaz s oprávněním uživatele...74 Spouštění příkazu jako superuživatel příkaz sudo...74 Kapitola 4 Základní konfigurace systému Uživatelské účty...77 Vytvoření uživatele, příkaz useradd...77 Potřebujete vytvořit uživatele a nastavit mu jiný domovský adresář, než je jeho jméno...78 Potřebujete přiřadit novému uživateli členství ve skupinách...78 Nastavení příkazového interpretu shellu...78 Znáte jiný příkaz a sice adduser...78 Přiřazení hesla k účtu...79 Jak vytvořím novou skupinu...79 Které skupiny jsou v systému...79 Jak najdu určitou skupinu...79 Potřebujete přidat uživatele do další skupiny...80 Potřebuji uživatele smazat ze skupiny...80 Odstranění skupiny, smazání uživatele...81 Začínáte s odebíráním...81 Výpis všech uživatelů...81

9 Obsah 7 Výpis všech skupin a uživatelů...81 Je nutné odstranit některou ze skupin...81 Odstranění uživatele...82 Modifikace uživatele a skupiny podruhé usermod...82 Potřebujete se přesvědčit, ve kterých skupinách je uživatel...83 I skupiny lze modifikovat...83 Údaje o uživatelích a systému...83 Jak zjistím, kdo je aktuálně přihlášený...83 Jak zjistit údaje o uživateli...83 Jak dlouho je systém spuštěný...84 Jak zjistit architekturu systému...84 Jakou mám verzi jádra...84 Pošta mezi uživateli a systémem...84 Chcete-li napsat někomu poštu...84 Jak si zprávu přečtu...85 Kam se pošta doručí...85 Kam se pošta ukládá...85 Jak často se pošta kontroluje...86 Pošta podruhé program mutt...86 Pošta potřetí fetchmail...86 Práce s hardwarem...87 Jak se můžu podívat na hardware nalezený systémem...87 Informace o hardwaru podruhé hwinfo...88 Dozvím se i něco o BIOSu...89 Existují i další možnosti...89 Jak zjistím, jaké moduly jsou v paměti, v jádře...89 Kde hledat dále...90 Stav virtuální paměti...91 Jak tedy přidávat komponenty...92 Kapitola 5 Práce s diskem Jak na disk...93 Jak si můžu prohlédnout rozdělení disku, práce s fdiskem...93 Jak vytvořím nový oddíl...95 Jak smažu oddíl...96 Zkuste si i program cfdisk...97 Jak zjistím, jaké disky mám na počítači...97 Formátování oddílu...98 Jak naformátovat nový oddíl...98 Jak si můžu připojit diskový oddíl...99

10 8 Obsah Můžu připojený souborový systém i odpojit? Lze nastavit, aby směl připojovat souborový systém i běžný uživatel? Jak můžu připojit disk formátovaný NTFS Jak zjistím volné místo na oddílech disku Jak můžu zjistit velikost jednotlivých adresářů Jak připojím síťový disk Připojení sdíleného adresáře Windows Jak připojit Windows adresář Připojení pomocí NFS Jak na kontrolu disku Další informace o disku Záloha dat Nejjednodušší zálohování Další způsob zálohování příkaz tar Zálohováni programem cpio Spouštění plánovaných operací Jak mám tedy vytvořit úlohu? Jak mám úlohu odstranit? Jak se dostane root k mému crontab? Spuštění úloh v čase příkaz at Jak můžu najít otevřené soubory? Kapitola 6 Práce se sítí Zjištění konfigurace Mám nebo nemám IP adresu, jaká je MAC adresa Zjištění a nastavení jména počítače Nastavení sítě příkaz ifconfig Jak si nastavím IP adresu ručně? Jak si zažádám u DHCP serveru o IP adresu? Příkaz ifconfig je zastaralý Zapnuti a vypnutí síťového rozhraní Vaše síťové rozhraní Nastavení IP adresy pro rozhraní Přidání brány (gateway) Reset výmaz adresy síťového rozhraní Nastavení MAC adresy Počítání přenesených dat Routování směrování poprvé, příkaz route Jak probíhá výběr v routovací tabulce Jak přidám záznam pro část sítě subnet?

11 Obsah 9 Záznam o síti chci odstranit Potřebuji záznam pro jedno zařízení Jak tento záznam odstraním? Zůstanou záznamy v tabulce i po restartu? Varianta novější pomocí iproute Přidání sítě Můžu změnit jméno síťového rozhraní? Jak nastavím směrování na gateway Správce připojení cnetworkmanager Jaká mám síťová rozhraní? Jaké mám bezdrátové síťové okolí? Jak můžu vypnout a zapnout síťové rozhraní pomocí cnetworkmanageru? Když nemám NetworkManager Příkazy ifstatus Příkaz ifdown zastavení rozhraní Příkaz ifup spuštění rozhraní Jak je to s rozhraním WiFi? Jak zjistím body připojení kolem své WiFi Nastavení připojení WiFi Základní operace na síti Jak ověřit, že mé síťové rozhraní je zapnuto Používat tedy ifconfig, anebo ip addr? Příkaz arp a co s ním Sousedy lze nalézt i pomocí příkazu ip Můžu do arp tabulky dopsat další zařízení? Lze dopsat záznam i pomocí příkazu ip Jak záznam z tabulky odstraním? Lze načíst více záznamů do arp tabulky? Existuje něco jako ping, ale pomocí MAC adres? Použití příkazu ping Odezvy od počítače nejsou jak můžu zjistit trasu? Jak si můžu nastavit vlastní překlad adres? Monitorování sítě Nástroj netstat Potřebuji lepší nástroje než netstat Nmap práce na vyšší úrovni Další možné druhy skenování Jak můžu zjistit, která zařízení kolem jsou živá? Jaké další možnosti má nmap? Jak můžu sledovat pohyb paketů na síti?

12 10 Obsah Bezpečnost a firewall Firewall poprvé iptables Jakým způsobem mohu nastavovat pravidla? Některé z dalším možností použití Kde je standartně uložená konfigurace iptables Firewall podruhé Ipkungfu Přenos souborů a komunikace s jiným zařízením po síti Jak na FTP pomocí příkazového řádku K čemu tedy můžu FTP přenos použít Jaký je rozdíl mezi aktivním a pasivním režimem Několik ukázek práce s FTP Jak se tedy mám připojit Připojení pomocí wget Připojení pomocí SSH Lze se přihlásit bez zadání jména a hesla Jak si můžu klíče vygenerovat Jak můžu nastavit zabezpečenou komunikaci bez žádosti o heslo K čemu je dobrá passphrase Připojení pomocí telnet Kapitola 7 Práce se skripty Úvod do skriptování Potřebuji vůbec něco takového? Co to vlastně ten skript je Jaký shell mám spuštěný Můžu změnit svůj shell? Kde jsou konfigurační soubory k shellům Kde mám uloženou konfiguraci svého shellu? Jak si můžu nastavit svůj shell Shrnutí souborů a jejich určení Jak je to s historii příkazů Lze v historii příkazů i vyhledávat? Lze vyhledané příkazy i rychle spouštět? Můžu historii příkazů vymazat? Co to jsou zvláštní znaky Co to jsou bílé, prázdné znaky Využití symbolů *,?, [] Jak zjistit nastavené cesty Jak vytvořit vlastní dočasnou proměnnou První jednoduchý skript

13 Obsah 11 Definujeme shell Jak označit komentář Oddělení příkazů Větvení skritpů Větvení skriptu pomocí if.. then Řídicí struktura for Cyklus prováděný pomocí while Řídicí struktura until Přerušení vykonávání příkazu pomocí Break a Continue Větvení skriptu pomocí Case Vytvoření jednoduchého menu Řídicí struktura Select Ukázka další jednoduchý telefonní seznam Funkce Jak se funkce zadávají přímo z klávesnice Kapitola 8 Když systém zlobí Startovací prostředí, zavaděč Grub Jak změnit pořadí bootování Jak můžu obnovit grub po instalaci Windows? Jak můžu ovlivnit prodlevu před startem? Nechci startovat do grafického prostředí Startovací prostředí, zavaděč Lilo Průběh zavádění Jak editovat nabídku v Lilo Výpis aktuálních procesů Výpis běžících procesů opět a jinak Proč se někde uvádí parametr a, někde parametr e Můžu si vypsat jen určité procesy? Vyhledávání procesů grep Lze vyhledávat i podle skupiny Vyhledávání i podle uživatele Funguje i vyhledávání všech procesů, kromě jména Strom procesů Který proces se kterým souvisí Co nejvíce zatěžuje procesor Jak ukončit proces Varianta za použití příkazu killall Jak je to s úrovněmi běhu Jak se můžu přepnout

14 12 Kdo byl naposled přihlášený Systémové logy Která zařízení používá syslogd? Služby běží, nebo ne Které služby se spouští a kdy Službu jsem nastavil, ale běží nyní? Čtení informací o startu systému dmesg Kapitola 9 Něco o oknech Jak na grafické prostředí Jak spustit grafické prostředí Jak mám grafické prostředí ukončit Můžu ukončit jen jedno mrtvé okno? Jak lze identifikovat displej? Jak můžu spustit aplikaci na lokálním počítači s displejem systému X Window na vzdáleném počítači Objeví se mi chyba autorizace Jak je to s konfigurací prostředí Jakou mám verzi Xorg Jak se toto prostředí nastavuje Můžu klávesnici přepínat i ručně? Jak je to s chybami Xorg Co to je grafická nadstavba Kapitola 10 Další užitečné příkazy Internet z příkazové řádky Jak pomocí příkazového řádku na Internet Jinou variantou může být prohlížeč links Hledání příkazu Hledáte příkaz Video a mplayer Jak spustím videosoubor Jak přehrát film s titulky Umí mplayer přehrávat i písničky? Kde jsou uloženy konfigurační soubory Jaké mohou být funkční klávesy? Jak nastavit přehrávání v mplayeru Instalace softwaru Instalace pomocí yum

15 Obsah 13 Nejprve je třeba mít nastavené repozitáře Jak se přidá repozitář Jak zkontroluji aktualizace Jak nainstaluji aplikaci pomocí yum Jak najdu aplikaci? Jak zjistím další informace o balíčku? Hledání balíčků podruhé Lze pracovat i se skupinami programů Jak nainstaluji balíček z lokálního zdroje? Můžu zjistit nainstalované balíčky? Jak aplikaci odinstaluji Instalace pomocí apt Kde jsou uloženy repozitáře Jak přidám repozitáře Jak aktualizovat pomocí apt Jak provedete aktualizaci nainstalovaných balíčků Aktualizace celé distribuce Instalace nového balíčku Odinstalování balíčku Jak odstranit balíček včetně konfiguračních souborů Jak odstranit automaticky nainstalované balíčky, které už nejsou potřeba Jak mám balíček vyhledat Co je to za balíček? Instalace pomocí Aptitude Jak obnovit intalační zdroje Jak provést upgrade nainstalovaných balíčků Instalace nového balíčku Odinstalace baličku Odstranění balíčku včetně konfiguračních souborů Spuštění rozhraní: Balíčkovací program YAST Jak nainstaluji balíček Jak balíček odinstaluji Jak instalovat z lokálního adresáře Ruční instalace balíčků rpm a deb Jak nainstalovat rpm balíček bez správce balíčků Jak lze provést upgrade určitého balíku Jak vyhledat konkrétní balíček a jeho verzi Potřebuji více informací o balíčku Balíčky.deb

16 14 Obsah Balíčkovací systém u distribucí založených na Slackware Instalace jednotlivých balíčků Odstranění jednotlivých balíčků Jak zjistím seznam balíčků obsažených v systémů Jak na upgrade balíčků Jak ve Slackware na balíčky RPM Explodepkg ještě jednou Jak vytvořím balíček Balíčkovací systém Pacman ArchLinux Jak tedy instalovat balíček Jak můžu balíček odinstalovat Jak je to s aktualizací Potřebuji také vyhledávat Balíčkovací systém Portage systémy založené na Gentoo Jak aktualizovat Portage Jak můžu vyhledat balíček Jak balíček nainstaluji Balíčky chci jen stáhnout a zatím neinstalovat Aplikaci chci odinstalovat Jak provést aktualizaci systému Vlastní kompilace Silná trojka příkazů configure make make install Kapitola 11 Zkuste Emulaci Emulace Emulace pomocí qemu Jak si vytvořím virtuální disk Závěr Čemu se nevyhnete Kde hledat další informace Rejstřík

17 Chtěl bych poděkovat manželce Radce a dcerám Elišce a Vendulce za podporu při psaní této knihy. Počítač slouží k tomu, aby nám pomáhal a práci ulehčoval. V žádném případě nesmíme my sloužit počítači.

18

19 Úvod Co je obsahem knihy Co mne vedlo k napsání této knihy? Především fakt, že podobná kniha chybí v nabídce odborných publikací. Problematikou příkazového řádku se zabývá každá z knih věnujících se Linuxu, ale některá jen okrajově, některá téměř vůbec ne. Chtěl bych tuto knihu zaměřit jen a jen na příkazový řádek a teorii kolem funkčnosti, běhu operačního systému bych vypustil. V některé z kapitol se sice setkáte se stručnou teorií, ale to spíše proto, abyste si uvědomili princip toho, co děláte. Nezávisle na verzi a stáří Linuxu bych chtěl probrat praktiky hodící se ke každodenní práci. Nejsem profesionál, neustále se pohybuji ve Windows i v Linuxu; Windows, jelikož je to můj hlavní pracovní nástroj, používám častěji. Pokud používám systémy Linux a Unix, stává se mi stále častěji, že nemůžu najít ten správný příkaz a parametry, které potřebuji (samozřejmě příkazy, které používám neustále, si pamatuji, ale ). Chtěl jsem si vytvořit tahák, ale zjistil jsem, že by to byl tahák značně obsáhlý. Psaní poznámek na různá bezpečná místa, to se mi také neosvědčilo. Proto jsem přistoupil na variantu začít psát knihu a vše, co potřebuji, schovat do ní. Pokud chcete srovnání s příkazovým řádkem ve Windows, dopředu musím prohlásit, že takové srovnání ani není možné, ve Windows se jedná o zcela jiný nástroj s omezenými možnostmi. V Linuxu lze pomocí příkazového řádku provádět i složitější úkoly, které by těžko někdo zkoušel ve Windows. V Linuxu jste schopni spustit několik konzol a na každé provádět jinou operaci na základě psaní příkazů, ve Windows asi těžko někdo spustí několik příkazových řádků, aby v nich sledoval běžící procesy, řadil soubory v adresáři, nastavoval práva souborů a adresářů; některé z těchto příkladů ani nelze rozumně provádět. Prostě příkazový řádek v Linuxu je něco úchvatného, a kdo se neumí v tomto prostředí pohybovat, přichází o hodně. Je dobré si také uvědomit, že vykonání příkazů zadávaných přes příkazový řádek je rychlejší a úplnější. Poznámka Chtěl bych se omluvit za některé nepřesné nebo příliš stručné vysvětlení problematiky. Vedlo mne k tomu to, že jsem chtěl vytvořit co nejvíce praktický materiál k použití pro laiky i začínající uživatele stejně jako pro zkušené uživatele. Pro upřesnění musím ještě dodat, že v celé knize hovořím o programech, skriptech a příkazech. Z větší části budu brát programy, příkazy a skripty jako něco, co se spouští a něco vykonává. Proto mi prosím odpusťte nepřesnosti v definování toho nebo onoho balíku, do kterého program nebo skript patří. Spíše jsem se zaměřil na to, co se vykonává nejčastěji. Pokud bude někdo chtít zjistit, kam který příkaz nebo program patří, najde tyto informace v publikacích podrobně rozebírající jednotlivé distribuce.

20 18Úvod Komu je kniha určena Kniha je určena všem, kdo mají zájem proniknout do tajů tohoto mocného nástroje. Neklade žádné speciální požadavky na čtenáře, pouze bych upozornil, že pokud nemáte možnost si vyzkoušet probírané ukázky, nebude vám kniha asi velkým přínosem. Doufám, že pro každého se zde něco najde, ať se jedná o laika, nebo profesionála. Věřím, že pokud si knihu koupíte, nebudou to zbytečně vyhozené peníze a najdete zde spoustu užitečných návodů a ukázek, které se vám budou hodit dnes a denně. Jak tuto knihu číst Rozhodně není nutné číst tuto knihu od začátku do konce. Kniha je dělena do kapitol; každá kapitola je věnována něčemu jinému, nezávisle na předchozí kapitole. Záleží jen na vás, jak vám bude čtení vyhovovat. Budu ale samozřejmě postupovat od jednoduchých věcí ke složitějším. Omlouvám se, pokud některá část textu na vás bude působit dojmem, že něco tak jednoduchého není nutno rozebírat. Je to proto, že kniha je určena i laikům, kteří tyto základy nemusí znát. Není nic jednoduššího než část textu přeskočit a pokračovat na další stránce. Kniha patří do kategorie hotových řešení, to znamená, že nejprve nastíním problém a následně popíšu některé z variant. Rozhodně se nejedná o strohý překlad manuálových stránek. Proto zde nehledejte popis všech možných příkazů a jejich parametrů. Co budete dále potřebovat Potřebovat budete pouze tuto knihu, trochu času a hlavně jakýkoliv počítač s jakoukoliv verzí Linuxu. Verze operačního systému nemusí být nutně nejnovější, protože pro naše účely, které se zde chystám ukázat, není nutné mít žádné špičkové vybavení. Kouzlo práce s příkazovým řádkem spočívá i v tom, že nepotřebujete žádnou grafickou nadstavbu a výsledky budou stejné. Je jedno, jakou máte distribuci, všude si můžete zkoušet zde uvedené příklady. Na jakých systémech jsou jednotlivé ukázky otestovány Veškeré ukázky a příkazy jsem odzkoušel a testoval. K tomu mi posloužily tyto Linuxové distribuce: Fedora 12 a 13, OpenSuse 11.2 a 11.3, Debian 5, Slackware 13.1, okrajově Xubuntu a také Cygwin. Využíval jsem také virtuální počítače spouštěné na Sun VirtualBox. Záleží na vás, jestli máte svoji oblíbenou distribuci anebo použijete některou ze jmenovaných distribucí. V drtivé většině budou všechny příkazy fungovat. V těch zbývajících případech se musíte obrátit na manuálové stránky, stránky poskytovatele a na Internet.

21 Zpětná vazba od čtenářů 19 Zpětná vazba od čtenářů Nakladatelství a vydavatelství Computer Press, které pro vás tuto knihu připravilo, stojí o zpětnou vazbu a bude na vaše podněty a dotazy reagovat. Můžete se obrátit na následující adresy: redakce PC literatury Computer Press Spielberk Office Centre Holandská Brno nebo sefredaktor.pc@cpress.cz Errata Přestože jsme udělali maximum pro to, abychom zajistili přesnost a správnost obsahu, chybám se úplně vyhnout nedá. Pokud v některé z našich knih najdete chybu, ať už chybu v textu nebo v kódu, budeme rádi, pokud nám ji nahlásíte. Ostatní uživatele tak můžete ušetřit frustrace a pomoci nám zlepšit následující vydání této knihy. Veškerá existující errata zobrazíte na adrese po klepnutí na odkaz Soubory ke stažení.

22

23 KAPITOLA 1 Začínáme Něco lehkého na úvod Předpokládám, že máte spuštěný Linux a umíte spustit příkazový řádek, nazývaný terminál v grafickém prostředí anebo konzola v prostředí bez oken. Můžete se přepínat mezi mnoha spuštěnými terminály každý si žije vlastním životem a na každém můžete spouštět samostatné příkazy či skripty. (Jen na okraj: Příkaz je vlastně jeden úkol, který můžeme pomocí tzv. přepínačů rozvětvit, potom máme jeden příkaz i třeba na celý řádek. Skript je souhrn příkazů uložených někde na disku ve spustitelném souboru a příkazy se postupně vykonávají řádek po řádku.) Příkazem zde pro jednoduchost budeme rozumět spuštění programu nebo některé z utilit nainstalované v různých víceméně standartních balících, případně spuštění skriptu. Příkaz nebo skript se bude postupně vykonávat nezávisle na ostatních terminálech. Určitý problém ale může vzniknout, pokud systém bude přistupovat ke stejným souborům z více terminálových oken; v tom případě může vykonávání příkazu či skriptu skončit chybou. Mezi konzolami se můžete přepínat pomocí kláves Alt+F1 až F7 (pozor; zde už se počet konzol může lišit podle typu distribuce). Můžete se i přepnout z grafického prostředí do konzolového pomocí kláves Ctrl+Alt+F1 až F7, zase záleží na distribuci; někde třeba tohle přepínání mezi konzolami a grafickým prostředím nebude fungovat anebo se bude muset nastavit, ale to zatím nebudeme potřebovat (jedna z kombinací, např. Alt+F7, vám opět poslouží k přepnutí do grafického prostředí; pokud běží, opět se může u různých distribucí lišit). Pro naše účely plně postačí terminál.

24 22 Kapitola 1: Začínáme Nebudu zde rozebírat, co je součástí kterého programového balíku. Pokud by se jednalo o něco, co je nutné doinstalovat, co není součástí běžného Linuxového systému, tak to v úvodu konkrétní sekce knihy uvedu. Poznámka Ještě bych doplnil pro úplnost další užitečné funkce pro práci v příkazovém řádku nepostradatelné. Listování v naposled zadaných příkazech provádíte šipkami nahoru a dolů. Pokud napíšete začátek příkazu a systém jej zná, po stisknutí tabulátoru se příkaz dopíše; lze použít i na doplnění adresáře při procházení adresářovou strukturou. První ukázka Nejdříve zkuste napsat do příkazového řádku za blikající či jinak zvýrazněný kurzor ps a objeví se vám několikařádkový výpis. Tento příkaz zobrazuje běžící úlohy systému. A teď zkuste napsat příkaz ps a k němu další parametry ef (celý příkaz bude vypadat ps ef more) a podívejte se na obrázek 1.1. Výpis je na několik stránek. Obrázek 1.1:. Výpis pomocí dalších parametrů

25 První ukázka 23 Tip Všechny příkazy a jejich parametry jsou tvořeny jako zkratka anglického slova a nebo skupiny slov - například ps -ef - process status -ef e - every f - full. (Někomu může pomoci anglický výraz k zapamatování). Každý příkaz může, ale nemusí mít další přídavné parametry, které píšeme za příkaz za pomlčku (to je to ef more). Tyto nepovinné doplňující informace jakýmsi způsobem daný příkaz rozvíjí a slouží k tomu, abychom měli možnost vykonat nebo zobrazit co nejpřesněji to, co právě potřebujeme. Další příklad bude s adresářem. Použijte příkaz ls pro výpis obsahu adresáře a teď za něj doplňte další parametr a. Výpis je o něco složitější; přidejte další parametr al a zase výpis vypadá jinak. Obrázek 1.2: Podrobný výpis adresáře Ještě vám dlužím vysvětlení, co znamená ono more je to jednoduše zadání příkazu systému, aby výpis přizpůsobil obrazovce nebo oknu terminálu. Objeví se vám text výpisu a na konci stránky, pokud není výpis úplný, se zobrazí pokračování. Systém čeká na klávesu mezerník, aby zobrazil další stránku tímto způsobem se stránkuje celý výpis. Pokud je výpis kompletní, příkaz je ukončen a systém čeká na zadání dalšího příkazu. Jestliže stisknete klávesu Q, vykonávání příkazu se ukončí okamžitě.

26 24 Kapitola 1: Začínáme Výpis běžících procesů podruhé Chci si prohlédnout běžící procesy příkaz ps Jak jste viděli v předchozí kapitole, tento příkaz je velice užitečný. Použijete jej, pokud potřebujete zjistit, jaké procesy vám běží na pozadí, případně pod jakým uživatelem tyto procesy byly spuštěny. Dále jste potom schopni tyto úlohy i ukončit. Pokud spustíte příkaz bez dalších parametrů, vypíší se vám pouze procesy, které byly spuštěny aktuálním uživatelem na aktuálním terminálu. Opět si můžete vyzkoušet příklad. Máte otevřeno okno terminálu a do něj napište například xterm & (Musíte mít na vaší distribuci nainstalován program xterm jednu z možných variant terminálů.) Nyní opět použijte příkaz ps bez parametrů a uvidíte, že vám přibyla další úloha ve výpisu. Pokud se vám spustí terminál xterm, zadejte v něm opět příkaz xterm &. Přepněte se do původního okna terminálu, kde jste ověřovali běžící procesy, a zde opět spusťte výpis procesů příkazem ps bez parametrů. Ve výpisu se objeví xterm pouze jednou, protože druhý xterm jste spouštěli z jiného terminálu. Tento fakt si můžete přečíst ve sloupci označeném TTY to je číslo terminálu. Číslovat začíná systém od nuly a každý další spuštěný terminál čísluje vyšším číslem. Pokud tedy zkusíte vypsat procesy na posledním spuštěném terminálu, měli byste ve výpisu vidět například něco podobného jako na obrázku 1.3. Obrázek 1.3: Číslo terminálu

27 Výpis běžících procesů podruhé 25 Tímto jednoduchým příkladem jste se mohli přesvědčit o mém tvrzení uvedeném výše, že příkaz bez parametrů vám vypíše všechny procesy spouštěné přes aktuální terminál aktuálním uživatelem. Ke zjištění, která úloha na kterém terminálu právě běží, dospějete také, pokud použijete příkaz s parametry ef. Pouze budete muset složitě hledat ten řádek, který vás zajímá. Poznámka Tímto pokusem jsem vás chtěl upozornit na to, že pomocí parametrů se dostáváte k tomu, co opravdu chcete zjistit. Není důležité použít všechny možné parametry a následně složitě vyhledávat potřebné údaje. Pokud potřebujete, použijte jednoduchý výpis, a pokud potřebujete složitější výpis nebo další informace, použijte příkaz s parametry. Musím vědět o procesech více Nejprve se podívejte na výpis ps ef, které informace jsou vám k dispozici. Výpis máte na obrázku 1.2. Poznámka Dlužím vám vysvětlení oněch dvou parametrů e a f. Parametr e je stejný jako parametr a značí: vypiš údaje o všech procesech. Parametr f určuje, že ve výpisu bude více údajů, více sloupců f jako full. V prvním sloupečku je UID to značí, kdo proces spouštěl, komu patří. Většina systémových procesů bude patřit superuživateli rootovi a další část přihlášenému uživateli. Tato informace se vám bude hodit, pokud budete chtít vyselektovat úlohy spouštěné konkrétním uživatelem. Poznámka Označení sloupců se může v různých distribucích lišit, ale význam je stejný. Sloupec označený C vám ukazuje, kolik času procesoru úloha využívá, ale pozor, tato hodnota je opravdu pouze orientační. Dále vás bude zajímat sloupec PID ID číslo procesu. Pomocí tohoto čísla budete schopni například proces násilím ukončit. Každý proces je spouštěn pod svým číslem. Číslo PPID je číslo procesu rodiče, nadřízeného procesu; ve sloupci TTY můžete najít, z kterého terminálu proces běží. STIME zobrazí, kdy byl proces spuštěn. TTY jak už víme, je to číslo terminálu, odkud byl proces spuštěn (můžeme tedy při použití parametru t a čísla terminálu vyselektovat, co na kterém terminálu běží za proces). A poslední sloupec CMD zase ukazuje, odkud se úloha spouští. Výpis sloupce CMD je upraven tak, aby se vešel na řádek, proto někdy nemusí být celý. Celou cestu získáte použitím parametru w.

28 26 Kapitola 1: Začínáme Které procesy má spuštěny konkrétní uživatel Zde použijete zcela jistě příkaz ps u pavel. Opět můžete použít more, protože výpis bude delší. alespoň u mne, jelikož jsem pod tímto účtem spouštěl grafické prostředí a další úlohy spouštěné po startu tohoto prostředí. Poznámka Příkaz ps umí opravdu hodně. Pokud bychom měli probírat všechny možnosti, zabralo by to hodně času a kniha by se stala nezajímavou. Spíše by se jednalo o opis manuálových stránek. Zkuste se podívat na manuálové stránky tohoto příkazu a zjistíte, kolik parametrů můžete použít. Záleží jen na vás a na praxi, se kterými parametry se naučíte pracovat a které budou pro vás ty důležité. Proces najdu, ale potřebuji jej zrušit nebo zastavit V další části se dostaneme k tomu, že hledáte určitý proces, který brzdí systém a nejde nijak vypnout. Musíte ho zrušit násilím, prostě ho zabít odtud je i příkaz kill. Příkaz kill Tento příkaz vám poslouží v okamžiku, kdy určitý proces nereaguje, případně se nechová podle vašich představ. Opět má více možností použití. Zkuste si zadat příklad kill l 3 (jedná se o písmeno malé L). Systém vám odpoví: QUIT Při dalším pokusu kill l 9 systém odpoví KILL To značí, že každé číslo, které za příkazem kill použijete, má svůj význam. Pošlete úloze například příkaz QUIT nebo některý jiný a úloha bude pokračovat, doběhne do konce a pak se korektně ukončí. Můžete se podívat, které signály můžete vyslat. kill l Kill vám je všechny vypíše do tabulky, podobně jako na obrázku 1.4.

29 Výpis běžících procesů podruhé 27 Obrázek 1.4: Tabulka signálů Druhou možností je násilné ukončení. V tomto případě použijte hned možnost kill -9 a číslo procesu, který potřebujete ukončit. Tip Číslo procesu už najít umíte z předchozích řádků, je to PID při použití příkazu ps. Jak mám spustit program Při spouštění jakéhokoliv nainstalovaného programu, textového nebo grafického, stačí začít psát název programu a následně pomocí tabulátoru se buď konec příkazu doplní, anebo po dalším stisknutí tabulátoru vám nabídne možnosti, jak by měl příkaz pokračovat. Pokud systém příkaz nezná, po druhém stisknutí tabulátoru se nic nestane a vy víte, že je něco špatně. Buď píšete příkaz chybně, anebo není program nainstalován. Dále máte na výběr: Zadáte parametry, se kterými se příkaz vykoná, zadáte výstup, pokud není na monitor. Výstup můžete směrovat na vstup dalšího příkazu. K tomu slouží takzvaná roura (pipe) je to ono svislítko, které se často v příkazech objevuje. Podívejte se na jednoduchou ukázku: ls -al more Zde předáváte výstup jednoho příkazu (ls -al) ne na monitor, ale na vstup druhého příkazu more. Tento příkaz provede zobrazení na monitor, a pokud je výpis na více stránek, čeká na příkaz, aby provedl zobrazení další stránky výpisu. To je nejjednodušší ukázka tohoto skvělého nástroje. Potřebuji spustit program a dále pracovat na terminálu Máte jednoduchý případ: Spustíte vícestránkový výpis obsahu adresáře ls -al more a zároveň chcete spustit ještě jinou úlohu nebo více úloh a potřebujete, aby všechny úlohy běžely současně. Pro tento případ máte několik zkratek a příkazů. Jako první je spuštění příkazu na pozadí. Neuvažujte nyní o smysluplnosti tohoto příkladu, chci pouze demonstrovat na jednoduchém příkladu, jak to vlastně funguje.

30 28 Kapitola 1: Začínáme Zadáte příkaz ve formátu: ls -al more & Znak & na konci příkazu má za úkol spustit příkaz na pozadí. Vyzkoušejte si sami, že pokud zadáte tento příkaz, neuvidíte výpis adresáře, ale pouze něco takového: $ ls -al more & [1] 2935 $ Číslo 1 je identifikátor procesu v rámci aktuálního shellu. Druhé číslo (2935) je číslo procesu, tzv PID. Zkuste druhý příkaz, například cat /etc/x11/xmodmap more. Objeví se vám něco podobného tomuto: $ ls -al more & [1] 2956 $ cat /etc/x11/xmodmap more [2] 2958 [1]+ Pozastaven ls --color=auto -al more $ Opět zde máte identifikátor procesu v rámci aktuálního shellu, první je jedna a druhý dva. Vidíte zde i čísla procesů. Obě tato čísla musí být jedinečná, nesmí se opakovat. K manipulaci s těmito úlohami slouží několik příkazů. Nejprve příkaz jobs objeví se vám na obrazovce výpis procesů spuštěných v aktuálním shellu. V našem případě: $ jobs -l [1] Dokonán ls --color=auto -al /etc 3005 Pozastaven (výstup TTY) (SIGTTOU) more [2] Dokonán cat /etc/x11/xmodmap 3007 Pozastaven (výstup TTY) (SIGTTOU) more $ Zde vidíte, že úlohy jste spustili dvě, ale procesy jsou čtyři. Proč? To je právě to přesměrování výstupu jednoho příkazu na vstup druhého. V první ukázce se provede příkaz ls -al a výsledek se přesune na vstup druhého příkazu more. Příkaz ls se ukončí, ale jelikož je součástí druhého příkazu, je stále ve výpisu vidět. Obdobně je tomu i u druhé ukázky. Tomu odpovídá i číslo úlohy v aktuálním shellu ty jsou pouze dvě. Tohle by vám nebylo nic platné a pranic užitečné, pokud by se nedalo mezi takovými úlohami přepínat. K tomuto účelu máte dva příkazy: bg background na pozadí fg foreground na popředí Užití je jednoduché: zadáte bg nebo fg a číslo úlohy (ono číslo v hranaté závorce) a tím se přepínáte mezi úlohami. Úlohu, kterou momentálně nepotřebujete, přesunete na pozadí pomocí bg a naopak úlohu, kterou potřebujete, přesunete na popředí pomocí fg. Abyste měli výčet úplný, ještě je potřeba si zapamatovat jednu klávesovou zkratku, a sice Ctrl+C. Pomocí této klávesové zkratky úlohu ukončíte (nemusí doběhnout a ani nedoběhne do konce).

31 Výpis běžících procesů podruhé 29 Jak mám najít, odkud se příkaz spouští Znáte příkaz a nevíte, odkud se spouští. Máte několik možností, jak zjistit, odkud se příkaz spouští. Nejdříve se podívejte na příkaz: whereis ping Zadáním tohoto příkazu zjišťujete, z kterého adresáře se příkaz ping spouští. Třeba hledáte problematický program a potřebujete najít, kde všude je nakopírovaný. Nebo vám program nejde spustit. Pokud program najdete, můžete jej zkusit spustit zadáním celé cesty. Druhou možností je přepnutí do nalezeného adresáře a následně spustit. Budete ale nejspíš nuceni, pokud se přepnete do adresáře s programem, použít ke spuštění ještě./prikaz. $ whereis java java: /usr/bin/java /etc/java /usr/lib/java /usr/share/java /usr/share/man/man1/ java.1.gz Na ukázce vidíte, jak asi bude vypadat váš výpis, pokud bude příkaz nalezen. Problémem s tímto příkazem může být to, že vyhledávání probíhá jen v některých adresářích. Pokud víte, že spouštěcí soubor máte určitě někde v adresářové struktuře a příkaz whereis jej nenašel, budete muset použít jinou variantu. Kde se tedy bude hledat při použití whereis: v adresářích určených systémem pro spouštění ( /bin, /sbin, /usr/bin a /usr/sbin) v adresářích s manuálovými stránkami v adresářích uvedených v proměnné PATH ve zdrojových kódech (/usr/src) Jaké další parametry může tento příkaz mít? Parametrem -m můžete hledat pouze manuálové stránky. Pokud zadáte parametr -s, budete hledat jen zdrojové soubory. $ whereis -m umount umount: /usr/share/man/man2/umount.2.gz /usr/share/man/man8/umount.8.gz Zadal jsem špatný příkaz jak smažu slovo Pokud zadáte na konzole špatné slovo (tím se myslí směs znaků bez mezery), můžete postupně mazat jeden znak za druhým od konce. Máte i druhou možnost, a sice klávesové zkratky, konkrétně: Ctrl+W Postupně budete mazat celá slova, tedy od mezery k mezeře. Mazání probíhá od konce. Potřebuji smazat celý řádek Případ podobný tomu předchozímu, opět použijete klávesovou zkratku, tentokrát: Ctrl+U Tím smažete celý řádek a kurzor čeká na další příkaz.

32 30 Kapitola 1: Začínáme Hledání informací o příkazu Pokud budete potřebovat najít všechny možné parametry k příkazu, musíte hledat v manuálových stránkách. man ls Procházíte po stránkách. Další stránku zobrazíte pomocí mezerníku. Ukončení prohlížení provedete stisknutím klávesy Q. Pohyb po stránkách funguje použitím kláves PageUp a PageDown. Jak zobrazit všechny stránky manuálu pro daný příkaz Někdy je k jednomu příkazu více manuálových stránek. Potřebujete-li hledat ve všech manuálových stránkách, použijete přepínač -a: man -a ls Ukončení jedné manuálové stránky a přechod na jinou provádíte opět pomocí klávesy Q. Více o dalších parametrech se můžete dočíst pomocí man --help Chci informace o příkazu příkaz info Některé příkazy nemají manuálové stránky ve formátu man, ale v novějším formátu info: info prikaz tedy například info man Podívejte se na příklad: $ man job Žádný záznam pro job $ info job Ve výpisu dostanete informace o příkazu job. Opět se po stránkách pohybujete za použití kláves PageUp a PageDown. Příkaz info má více možností, můžete například vyhledávat řetězce. Stisknete klávesu S, zadáte text pro vyhledávání a najdete první výskyt slova. Pokud chcete další výskyt slova, stisknete opět S a následně Enter. O dalších možnostech se můžete přesvědčit pomocí info --help Při použití příkazu info můžete také využívat křížové odkazy. Zkuste si následující: Nejprve zadejte například: info info

33 Výpis běžících procesů podruhé 31 Prolistujte až na konec souboru; bude vypadat asi jako na následujícím výpisu * tags tables in Info files: Tags. (line 6) * u (Info mode): Help-FOO. (line 13) * unstructured documents: Add. (line 45) * update Info tags table: Tags. (line 16) * visible-mode: Help-Inv. (line 17) --zz-info: (info.info.gz)index, řádků: Bot Nyní si najeďte na některý řádek a stiskněte Enter. Dostanete se zpět do sekce uvedené klíčovými slovy na řádcích. Potřebuji rychle možné parametry příkazu Ve většině případů vám zcela jistě poslouží prikaz --help tedy ku příkladu ps --help Ve výpisu se vám objeví ve zkrácené verzi možnosti a přepínače, které můžete použít. Někdy postačí zadat pouze příkaz; pokud tento očekává další parametry, tak vám je nabídne. Kde můžu najít manuálové stránky v mé distribuci Manuálové stránky jsou obvykle uloženy v adresáři /usr/share/doc/jmeno_baliku V jiných distribucích mohou být i jinde. Jaké jsou základní klávesové zkratky Ctrl + C (někdy pomocí Delete) zrušení provádění příkazu Ctrl + W smaže slovo Ctrl + U smaže celý řádek Ctrl + Q (někdy jenom q) ukončení programu, výpisu apod. Ctrl + Z pozastvení vykonávání příkazu Ctrl + D ukončení zadávání (například pokud tvoříte soubor pomocí cat) Ctrl + Alt + číslo1 7 přepínání mezi konzolami, pokud používáte grafické prostředí Alt + číslo1 7 přepínání mezi konzolami, bez grafického prostředí šipka nahoru pohyb v historii příkazů směrem vzad (od posledního k prvnímu) šipka dolů pohyb v historii příkazů směr vpřed (od prvního k poslednímu) Chci vyčistit (vymazat) okno terminálu Na vyčištění (vymazání) okna terminálu použijte příkaz clear.

34

35 KAPITOLA 2 Práce se soubory a adresáři Čtení souboru Co je v souboru Každodenní úkol: potřebuji si přečíst obsah souboru. Opět máte na výběr z několika možností. Jednoduché použití příkazu more V základní tvaru stačí pouze napsat příkaz ve tvaru more /etc/fstab A můžete si přečíst obsah souboru. Cestu k souboru opět zadáváte úplnou. Pokud jste v aktuálním adresáři, odkud chcete soubor číst, stačí napsat jen jméno souboru. Pokud je soubor delší, vypíše se pouze první obrazovka a dále se čeká na mezerník na zobrazení další stránky. Tento příkaz má i některé volby navíc.

36 34 Kapitola 2: Práce se soubory a adresáři Chci soubor prohlížet jen po několika řádcích V tomto případě se vám bude hodit zadání příkazu v tomto tvaru: more -d5 /etc/x11/xmodmap!! ~/.Xmodmap!!!! Use this as a template for $HOME/.Xmodmap!!!! The leading `!' is the comment sign. --Pokračování--(7%)[Stiskněte mezerník pro pokračování, 'q' pro ukončení.] Za parmetr d udáváte počet řádků, které se mají zobrazit. Následně po stisknutí mezerníku se opět zobrazí navolený počet řádků. To se vám může někdy hodit, pokud něco hledáte a víte, v které části souboru jsou údaje uloženy. Lze prohlížet i více souborů po sobě I tato volba je zde obsažena. Chcete-li prohlížet více souborů za sebou, napíšete je za sebe a oddělíte mezerou stejně jako v ukázce: more /etc/x11/xmodmap /etc/fstab /etc/mtab Nejprve se zobrazí obsah prvního souboru. Konec tohoto souboru bude označen a následně uvidíte jméno druhého souboru a jeho obsah.!!!! End of ~/.Xmodmap :::::::::::::: /etc/fstab :::::::::::::: /dev/disk/by-id/ata-vbox_harddisk_vb1b cba55693-part1 swap Mezi prohlíženými soubory lze i přeskakovat. Použitím :n po skončení výpisu stránky skočíte na začátek dalšího souboru. Použití příkazu less Stačí, když se podíváte do manuálových stránek a porovnáte oba příkazy. Zjistíte, že příkaz less toho umí podstatně více. Potřebuji se v souboru pohybovat vpřed i vzad Pokud potřebujete tuto variantu, musíte použít příkaz less. Pomocí tohoto příkazu můžete opět stránkovat výpis, ale můžete se po souboru pohybovat vpřed i vzad. Základní použití příkazu je opět jednoduché: less /etc/x11/xmodmap.. /etc/x11/xmodmap lines 1-23/40 62% Na konci první stránky vidíte první změnu. Zobrazí se vám, kolik řádků bylo zobrazeno a kolik ještě chybí do konce.

37 Napsání jednoduchého textu 35 Další užitečnou věcí je přesun na začátek anebo na konec souboru. Na konec se dostanete použitím velkého písmena G. Na začátek se dostanete použitím malého písmena g. Potřebuji u výpisu vidět i čísla řádků V tomto případě použijte příkaz: less N /etc/x11/xmodmap Nechci číst soubor od začátku Pokud znáte číslo řádku, odkud chcete začít se čtením, bude se vám hodit příkaz s tímto parametrem: less +2 /etc/x11/xmodmap Číslo za znaménkem plus udává, na kterém řádku se začne s výpisem. Tentokrát je to řádek druhý a pokračuje se dál. Jak se pohybovat po souboru Je to velice jednoduché: po souboru se můžete pohybovat pomocí šipek nahoru a dolů. Ve většině novějších distribucí tahle funkce funguje. Napsání jednoduchého textu Využití příkazu echo a přesměrování výstupu Snad nejjednodušší variantou, jak můžete napsat krátký text do souboru, je tato: echo jak to jde > pokus.txt Nejedná se o žádný zázrak, pouze přesměrujeme výstup místo na obrazovku do souboru. Příkaz echo má za úkol všechno, co se objeví za tímto příkazem, opět ukázat na obrazovce, případně na jiném výstupním zařízení. Můžete tedy psát na několik řádků, ale bez klávesy Enter. Klávesou Enter zadávání textu ukončíte a objeví se vám to stejné na obrazovce ještě jednou, ale bez zmiňovaného echo. Zbytek už tak těžký není, pokud víte, že ostrá závorka > slouží k přesměrování výstupu. V tomto případě přesměrujeme výpis textu místo na obrazovku do souboru text1.txt. Přesvědčit se můžete například takto: more pokus.txt Zadávaný text se vám objeví na obrazovce. Nemůžete samozřejmě očekávat formátovaný text jako při použití některého z textových editorů. Tento způsob se může někdy hodit, pokud si chcete rychle poznamenat něco krátkého do souboru. Nemůžete soubor tímto způsobem editovat. Můžete pouze přidávat na konec souboru další text použitím dvou ostrých závorek >>. Text se dopíše na konec souboru přesně jako na obrázku 2.1. K lepší práci se soubory a textem použijte některý z mnoha textových editorů, na který si zvyknete.

38 36 Kapitola 2: Práce se soubory a adresáři Obrázek 2.1: Jednoduché psaní Tip Tohoto lze využít i opačně pokud chcete zadat vstup pro příkaz z nějakého souboru, použijete závorku opačnou, tedy: prikaz < soubor. Elegantnější psaní textu pomocí cat Jestliže chcete psát text rychle, zkuste tohle: cat << 'EOF' >> soubor.txt Použitím tohoto příkazu si velice jednoduše vytvoříte svůj editor. Do ostrých závorek mezi apostrofy napíšete, čím se má editor ukončit. Zvolte si kombinaci znaků, kterou ve svém textu nepoužijete. Teprve po napsání těchto znaků se vám vkládání znaků ukončí. Za závorkami už pouze napíšete jméno nového souboru. cat << 'KIKLOP' >> soubor.txt adassr EOF KIKLOP Zde se můžete podívat na další příklad. Jako ukončení jsem použil znaky KIKLOP. Teprve po napsání těchto znaků se vkládání ukončí. Do souboru můžu psát písmena, čísla, používat Enter pro odřádkování. Pokud tento příkaz použijete na existující soubor, text se dopíše na konec souboru. Jak vytvořit prázdný soubor, změnit čas přístupu k souboru Prázdný soubor vytvoříte jednoduše použitím příkazu touch soubor

39 Napsání jednoduchého textu 37 Když spustíte příkaz znovu, nic se nestane, pokud už soubor existuje. $ ls -al dopis2 -rw-r--r-- 1 pavel users dub dopis2 $ touch dopis2 $ ls -al dopis2 -rw-r--r-- 1 pavel users dub dopis2 $ touch dopis2 $ ls -al dopis2 -rw-r--r-- 1 pavel users dub dopis2 Opravdu se nic nestane? Ale stane změní se datum a čas přístupu k souboru. Pokud zadáte příkaz bez parametrů, nastaví se aktuální systémové datum a čas. $ touch -d 02:00 dopis2 $ ls -al dopis2 -rw-r--r-- 1 pavel users dub dopis2 Přidáním parametru -d a času ve tvaru 00:00 jste schopni nastavit čas přístupu k souboru. Máte také možnost nastavit datum i čas přístupu k souboru: touch -t dopis2 Zadáváte ve formátu MMDDHHMM. Údaje v souboru bych chtěl setřídit Stačí, když zkombinujete dva příkazy, A sice cat na vytvoření a čtení souboru a příkaz sort, ten vám data setřídí. Vytvoření souboru: cat <<'EOF'>> soubor.txt > kilo 22 > autobus 77 > vlak 4 > wesl 89 > EOF Následné setřídění souboru: cat soubor.txt sort > autobus 77 > kilo 22 > vlak 4 > wesl 89 Setřídění ale je pouze dočasné pro aktuální výpis. Jakmile použijete opět pouze příkaz cat bez sort, bude dokument opět podle původního zadání. Ale můžete z původního souboru vytvořit nový setříděný, vyzkoušejte si.

40 38 Kapitola 2: Práce se soubory a adresáři V souboru jsou duplicitní záznamy, chci výpis bez duplicit. $ cat > jmena jana petra petr petra jirka jindra jirka libor $ sort jmena jana jindra jirka jirka libor petr petr petra petra $ sort -u jmena jana jindra jirka libor petr petra Na další ukázce se opět můžete přesvědčit, že výpis je pouze dočasný, neprovádí se změny v originálním souboru. $ cat jmena jana petra petr petra jirka jindra jirka libor Pokud potřebujete tříděný seznam, lze to provézt třeba takto: $ sort -u jmena > jmena2 $ cat jmena2 jana jindra jirka libor petr petra

41 Napsání jednoduchého textu 39 Jak vyhledávat řetězec v textovém souboru $ cat > pouzivam_grep Tady odzkousite pouziti prikazu grep Tento chytry prikaz vam umoznuje vyhledavat jakykoliv retezec v textovem souboru. Pouziti prikazu je velice jednoduche. Vyzkousejte si sami. $ grep 'prikazu' pouzivam_grep Tady odzkousite pouziti prikazu grep Pouziti prikazu je velice jednoduche. Podívejte se na ukázku práce s příkazem grep. Napíšete nebo máte někde uložený nějaký jednoduchý textový soubor. Chcete vyhledat jen určitou část textu, v tomto případě 'prikazu'. Pomocí příkazu grep najdete výskyt řetězce v textu a vypíše se celý řádek, kde je řetězec obsažen. Pokud je obsažen vícekrát, vypíše se více řádků. Chci se jen podívat na začátek souboru V některých případech se vám může hodit příkaz head. Chcete se přesvědčit, co je v souboru, a postačí vám prohlédnou první dva řádky. Příkaz head s parametrem čísla značí počet řádků, které se mají zobrazit. Vytvořte si nějaký soubor: $ cat > dny pondělí úterý středa čtvrtek pátek sobota neděle Chcete vypsat jen první čtyři řádky. $ head -4 dny pondělí úterý středa čtvrtek Zajímá mne konec souboru Pro tento případ můžete použít příkaz tail. $ tail -4 dny čtvrtek pátek sobota neděle

42 40 Kapitola 2: Práce se soubory a adresáři Jak na konec souboru u stále rostoucích záznamů Některé soubory, např. protokoly, logy a další, se neustále doplňují na konec řádků. I tyto konce souborů můžete číst použitím příkazu tail a přidáním parametru -f. Tedy: tail -f protokol Chci porovnat dva soubory Další z běžných operací potřebujete porovnat dva soubory. Opět můžete použít nově vytvořené soubory, třeba s ovocem (ovoce a ovoce2). Do souboru ovoce napište naše ovoce a třeba ananas, do souboru ovoce2 napište exotické ovoce. Po porovnání souborů dostanete výsledek: $ cat > ovoce jahody brusinky meruňky třešně ananas $ cat > ovoce2 ananas kiwi papaja mango $ diff ovoce ovoce2 1,4d0 < jahody < brusinky < meruňky < třešně 5a2,4 > kiwi > papaja > mango Jak vidíte, zobrazují se pouze rozdíly, stejné položky z obou souborů neuvidíte (v tomto případě ananas). $ diff -u ovoce ovoce2 --- ovoce :57: ovoce :58: ,5 -jahody -brusinky -meruňky -třešně ananas +kiwi +papaja +mango Jestliže přidáte k příkazu diff parametr -u, dostanete přehlednější výpis. Nejprve uvidíte, které soubory se porovnávají. Dále vidíte se znaménkem - záznamy prvního souboru neobsažené v druhém souboru. Bez znaménka jsou záznamy obsažené v obou souborech. Se znaménkem plus to jsou záznamy druhého souboru, které nejsou obsaženy v prvním souboru.

43 Napsání jednoduchého textu 41 Můžu se přesvědčit, o jaký typ souboru se jedná Pokud potřebujete zjistit, o jaký typ souboru se jedná, stačí, když použijete příkaz file soubor, například: $ file ovoce ovoce: UTF-8 Unicode text $ file /mnt/win_c/pagefile.sys /mnt/win_c/pagefile.sys: data nebo třeba u souboru $ file FootballArena.xls FootballArena.xls: CDF V2 Document, Little Endian, Os: Windows, Version 5.1, Code page: 1250, Author: Kl, Last Saved By: Kl, Name of Creating Application: Microsoft Excel, Create Time/Date: Thu Mar 25 19:12: , Last Saved Time/Date: Tue Mar 30 20:18: , Security: 0 Můžu zjistit typ souboru u více souborů naráz Jedním z možných řešení je vypsat všechny soubory za sebe. Druhým řešením je vytvořit soubor, ve kterém jsou jména souborů včetně úplné cesty, a následně použít příkaz file s parametrem -f a jménem souboru. Příkaz očekává soubor, který obsahuje jména dalších souborů, a u těchto určí jejich typ. $ cat > soubory ovoce ovoce2 jmena jmena2 /etc/fstab /etc/mtab /etc/hosts a následně použijte příkaz $ file -f soubory ovoce: UTF-8 Unicode text ovoce2: ASCII text jmena: ASCII text jmena2: ASCII text /etc/fstab: ASCII text /etc/mtab: ASCII text /etc/hosts: ASCII text Další možností je vypsáním typu u všech souborů v adresáři: $ ls File_001.JPG File_002.JPG File_003.jpg File_004.JPG File_005.jpg $ file * File_001.JPG: JPEG image data, EXIF standard File_002.JPG: JPEG image data, EXIF standard File_003.jpg: JPEG image data, JFIF standard 1.01 File_004.jpg: JPEG image data, JFIF standard 1.01 File_005.JPG: JPEG image data, EXIF standard

44 42 Kapitola 2: Práce se soubory a adresáři Jak zabránit přepsání souboru Je to vlastně jednoduchá vlastnost shellu, ve výchozím nastavení je vypnutá. Zapnutí i vypnutí provádíte nastavením proměnné noclobber. $ date > a $ date > a Do souboru a jste zapsali aktuální čas, při opětovném použití stejného příkazu se soubor a přepíše. $ set -o noclobber Provedete nastavení proměnné noclobber. $ date > a bash: a: existující soubor nelze přepsat Soubor nelze přepsat. $ set +o noclobber Zrušení ochrany: $ date > a Soubor je možné opět přepisovat. Jak připojit k jednomu souboru další výstup Přesměrování výstupu do souboru už umíte, nyní ještě potřebujete, aby se například text dopisoval na konec souboru. I to už jste viděli (u psaní jednoduchého textu pomocí příkazu echo); pouze pro zopakování: k tomuto účelu vám poslouží dvě ostré závorky vedle sebe >>. Opět ukázka s datem: $ date a $ less a Út dub 27 14:32:01 CEST 2010 a lines 1-1/1 (END) $ date > a $ less a Út dub 27 14:32:32 CEST 2010 a lines 1-1/1 (END) Po opětovném zadání příkazu se text v souboru přepíše. $ date >> a $ date >> a $ date >> a $ less a Út dub 27 14:32:32 CEST 2010 Út dub 27 14:33:07 CEST 2010 Út dub 27 14:33:11 CEST 2010 Út dub 27 14:33:15 CEST 2010 a lines 1-4/4 (END)

45 Textový editor Vi 43 A ještě něco na odlehčení Existuje i možnost vypsat slova v souboru pozpátku. rev soubor.txt Následuje výpis opačný: 22 olik > 77 subotua > 4 kalv > 98 lsew > Třeba najdete praktické využití Textový editor Vi Stručně o editoru Vi Nečekejte zde podrobné informace o tomto editoru. Pouze probereme základní, nejvíce používané operace při práci s textem. Podívejte se na nástin důvodů, proč si tento editor alespoň zkusit a seznámit se s ním: Tento editor existuje snad na všech typech Unix Linux počítačů. Ke spuštění tohoto editoru není třeba mít grafické prostředí. Na drobné editace například konfiguračních souborů plně postačuje. Kdo si na něj zvykne, tomu dobře poslouží; umí i složitější operace. Existuje v několika variantách, ale princip a základní funkce zůstávají stejné. Jeho následníkem je editor Vim. Editor se spouští velice jednoduše, stačí napsat: vi jmeno_souboru Pokud soubor existuje, otevře se a můžete dopisovat, přepisovat, mazat. Pokud soubor neexistuje, vytvoří se nový. Jméno souboru zadáváte buď jenom jako jméno, anebo je zadáte včetně cesty k souboru: vi /home/pavel/text1.txt Tip Při zadávání cesty využívejte tabulátor, který umí doplňovat nejen zbytek příkazu. Napíšete jen první dvě písmena a zbytek se doplní po stisknutí této klávesy. Pokud je příkazů více, vypíšou se další možnosti po dalším stisknutí této klávesy k nezaplacení. Stejným způsobem můžete procházet adresáři zadáte první písmena, např. /ho, a stiskem tabulátoru se doplní zbytek, /home. Pokud nevíte, jaký podadresář následuje, stisknete dvakrát tabulátor a uvidíte, jaké podadresáře jsou ve složce /home.

46 44 Kapitola 2: Práce se soubory a adresáři Základní práce s editorem Po otevření editoru si musíte uvědomit, že tento editor pracuje ve třech základních režimech: Příkazový znaky, které píšete, jsou brány jako příkazy Vkládací znaky jsou brány jako normální text Rozšířený, příkazový (ex mod) zde doplňujete za znak : další znaky, které mají speciální funkce Přepínání mezi režimy se provádí pomocí klávesy Esc. Vkládání znaků provedete stisknutím klávesy Insert, dále vkládáte normální text. Po druhém stisknutí klávesy Insert se mód změní na přepisovací a text za kurzorem přepisujete. Tento režim opustíte stisknutím klávesy Esc. Pokud do souboru hodláte dopisovat, můžete použít i klávesu I a následně za kurzor dopisujete. Zrušíte opět pomocí klávesy Esc. Po napsání dvojtečky (pozor, ne ve vkládacím režimu!) editor očekává pouze některé znaky, např. pro vykonání příkazů jako ulož, neukládej a ukonči apod Velice stručné seznámení máme za sebou a nyní začneme prakticky. Chci napsat text do souboru Napíšete do okna terminálu či na konzolu vi text2 Poznámka Jméno souboru si zvolte, jaké budete chtít. Pozor na malá a velká písmena Linux dělá rozdíl mezi Text1 a text1, pokaždé to bude jiný soubor. Pokud soubor nebude existovat, vytvoří vám nový, jinak otevře existující. Přípony používat také nemusíte, Linux si poradí i bez přípon. Obrázek 2.2: Vytvoření dokumentu

47 Textový editor Vi 45 Otevře se vám něco podobného jako na obrázku 2.2: text nahoře, a jinak vlnovky pod sebou a úplně vlevo dole INSERT (režim vkládání). Vpravo dole ještě vidíte číslice 4,1 to jsou čísla řádků a sloupců. Po stisknutí klávesy Insert se vlevo dole objeví INSERT a můžete začít psát svůj text. Po opětovném stisknutí klávesy Insert se objeví dole REPLACE a znaky od kurzoru dále přepisujete. Po napsaném textu se pohybujete pomocí šipek nahoru, dolů, doprava, doleva. V dřívějších dobách tomu tak nebylo. Pokud vám šipky nebudou fungovat, musíte použít klávesu Esc a jeden ze znaků napsaných dále (zkratek je více a ne všechny musí všude správně fungovat, podívejte se a vyzkoušejte ty nejznámější): w (word) skok na začátek dalšího slova (dále můžete skákat po slovech už bez použití klávesy Esc) b (back) skok na začátek předchozího slova klávesa Home, nebo 0 skok na začátek řádky End nebo $ skok na konec řádky Pohyb v delším souboru Ctrl+F (forward) o obrazovku dolů jako Page Down Ctrl+B (backward) o obrazovku nahoru jako Page Up Vkládání a změny v souboru přepnutí do vkládacího módu i (insert) následný text se vkládá před kurzor a (append) následný text se vkládá za kurzor r (replace) přepíše jeden znak s (substitute) přepíše jeden znak a přepne se do vkládacího módu u (undo) zruší poslední změnu Enter ve vkládacím módu přejde na novou řádku Esc ukončí vkládání textu a přejde do příkazového módu x maže znak pod kurzorem X maže znak před kurzorem dd maže aktuální řádek D maže vše od kurzoru do konce řádky p (paste) vloží naposled smazaný text Vyhledávání v textu /jana hledá následující výskyt řetězce jana?josef hledá předcházející výskyt řetězce josef n (next) opakuje poslední hledání N (Next) opakuje poslední hledání v opačném směru Nastavení prostředí :set all vypíše nastavení všech voleb :set number před řádky jsou jejich čísla příklad nastavení

48 46 Kapitola 2: Práce se soubory a adresáři Ukončení editoru ZZ konec s uložením opravovaného souboru :q! konec bez uložení změněného souboru :w pokus2 uložení souboru pod jiným jménem Soubor potřebuji pouze vytvořit: Jak už jsem naznačil, vi editor nerozeznává, jestli soubor existuje, nebo ne. Pokud napíšete vi text1 editor se nejdříve pokusí nalézt uvedený soubor. Jestliže zadáte soubor bez cesty, bude hledat v aktuálním adresáři. Pokud soubor nalezne, otevře jej. V případě neúspěchu vytvoří soubor nový, prázdný. Při editaci pracujete pomocí zkratek stejně, zejména se podívejte na poslední oddíl, který se týká ukončení práce s uložením a bez uložení. Tip Pokud vás tento editor zaujal anebo je pro vás nutností, seznamte se i s jeho novější verzí, editorem Vim. Textový editor Vim Vi Improved Zkuste si vylepšený vi editor nazvaný Vim. Jelikož je následníkem Vi editoru, spousta věcí je podobných. Opět se jedná o pravý textový editor, není tedy primárně určen k tomu, abyste pomocí něj psali knihu nebo delší články pro časopisy, ale na druhou stranu to není nemožné. Tento vylepšený Vi editor má i své grafické nadstavby, podívejte se třeba na Gvim. Program Yzis se inspiroval tímto editorem a vznikl další jednoduchý textový editor pro grafické prostředí. Opět musím připomenout, že kdo se jednou naučí základní ovládání Vi editoru, tyto ostatní editory mu nebudou činit potíže a velice rychle bude objevovat další a další funkce. Jen pro zopakování se podívejte opět na základní operace: Editor spustíte jednoduše: > vim pokus/muj_text.txt A dále základní funkce: :q ukončení editoru pouze v případě, že zde nejsou změny :w uložení souboru :wq uložení souboru a ukončení editoru :q! ukončení editoru bez uložení

49 Textový editor Vim Vi Improved 47 Jak se pohybovat v textu h pohyb o znak doleva j dolů k nahoru l doprava; lze použít i šipek na klávesnici 0 na začátek řádku nebo klávesa Home $ na konec řádku nebo klávesa End Page Up pohyb o obrazovku vpřed Page Down pohyb o obrazovku vzad Dalším užitečným vylepšením by pro vás mohlo být: :Ex seznam všech souborů v daném adresáři; můžete i vyhledávat a po stisknutí klávesy Enter daný soubor vyberete :Sex stejně jako u příkazu :Ex, ale okno se vám rozdělí a soubor se otevře v další části okna :ls seznam bufferů :cd funkce stejná jako u klasického příkazu cd :args vypíše seznam otevřených souborů Opět zůstává zachovaný režim vkládání a režim pro zadávání jiných příkazů. Přepínáte se pomocí klávesy Esc a vkládání začínáte po stisknutí klávesy I. V tomto editoru jste schopni si nastavit syntaxi pro některý z programovacích jazyků. Jestli editor podporuje zrovna vámi upřednostňovaný jazyk, zjistíte, pokud se například podíváte do adresáře /usr/share/vim/vim72/syntax. Poznámka V některých distribucích jsou soubory v adresáři /usr/share/vim/syntax, případně v jiném. V tomto adresáři uvidíte soubory s nastavením syntaxe. Zkuste si jeden z nich otevřít a podívejte se, jakým způsobem se syntaxe nastavuje. Můžeteže také si samozřejmě vytvořit další soubory. Přepnutí syntaxe provedete ve spuštěném editoru v příkazovém režimu. Nejprve zapnete podporu :syntax on a klávesou Enter ji potvrdíte. Následně zvolíte :set syntax=lisp a pomocí klávesy Enter volbu potvrdíte. Jestliže chcete syntax vypnout, použijte :set syntax off Pro hlubší seznámení bych doporučil manuálové stránky anebo Internet. Informací naleznete opravdu dost.

50 48 Kapitola 2: Práce se soubory a adresáři Textový editor EMACS Stručně o editoru EMACS Další z nejznámějších linuxových editorů, který se hodně používá v textovém režimu. Proto se běžně používá k editaci např. konfiguračních souborů. Snad malou nevýhodou je, že není tak jako Vi editor téměř na všech strojích Unix-Linux. Dá se však vždy doinstalovat, a kdo je na něj zvyklý, nedá na něj dopustit. K tomuto editoru se dá doinstalovat spousta rozšíření a v případě potřeby jej můžete použít i jako např. FTP klienta nebo webový prohlížeč. V žádném případě nechci tvrdit, že ten nebo ten je lepší. Existuje také řada dalších editorů, z kterých můžete vybírat. Záleží na vás, který si oblíbíte. Tento editor je velice mocný nástroj obsahující spoustu funkcí. Nesnaží se uchvátit uživatele svou grafickou podobou ani jinými ulehčeními nebo vymoženostmi. Je založený na jednoduchosti, používá velké množství zkratek a dá se s ním dokázat opravdu mnoho. Chci napsat text v editoru EMACS Spuštění editoru není opět žádná věda. emacs text2 Obrázek 2.3: Vytvoření dokumentu pomocí editoru Emacs Základní zkratky, které je dobré znát: CTRL+X, CTRL+F otevření nového souboru CTRL+X, CTRL+C konec práce s editorem CTRL+X, CTRL+S uložení souboru CTRL+X, CTRL+W uložení souboru pod jiným jménem

51 Editor Nano 49 Nápověda CTRL+H nápověda CTRL+H T výukový program pro používání (už je i v češtině!) CTRL+H? zobrazí další možnosti nápovědy F10 spustí se menu v textovém režimu Některé další důležité příkazy CTRL+G ukončí provádění příkazu CTRL+X U zruší naposledy provedenou změnu CTRL+S vyhledávání řetězce v textu směrem vpřed CTRL+R vyhledávání řetězce v textu směrem vzad Pohyby v textu CTRL+F o znak vpřed CTRL+B o znak vzad CTRL+P nahoru CTRL+N dolů CTRL+V posun na následující obrazovku Meta+V posun na předchozí obrazovku CTRL+A skok na začátek řádku CTRL+E skok na konec řádku Tolik k opravdu stručnému výčtu některých zkratek. Zkuste si tento editor osahat, a pokud se vám zalíbí, určitě si najdete další možnosti jeho využití. Případně si zkuste jiný z editorů, které váš systém obsahuje. Poznámka Stejně jako u editoru Vi, editor nedělá rozdíl mezi novým a existujícím souborem. Pokud soubor nenajde, vytvoří nový. Editor Nano Editor Nano je další z řady jednoduchých, ale spolehlivých a rychlých editorů. Není tak propracovaný jako editory Emacs nebo Vi, případně Vim, ale úplně postačí k jednoduchým každodenním operacím a editacím, třeba i konfiguračních souborů. $ nano soubor Vytvořit soubor opět není nic složitého, opět stačí zadat jen jméno editoru a název souboru. Pokud soubor existuje, otevře se existující, a pokud neexistuje, vytvoří se nový. Tento editor nemá žádné jiné režimy, proto hned po otevření můžete začít psát. V dolní části se vám zobrazuje jednoduché menu, které vám ukazuje možnosti a operace, které lze provádět.

52 50 Kapitola 2: Práce se soubory a adresáři K funkcím z menu využíváte klávesy Ctrl + Písmeno v menu. Pokud chcete editovat některý ze systémových souborů, použijte při spouštění parametr -w. Tímto parametrem se nebudou v souboru zalamovat řádky. Další funkční parametry a možnosti opět získáte zadáním $ nano h Práce s adresáři základní operace Ve kterém jsem adresáři Velice častá otázka: Kde to vlastně jsem, ve kterém adresáři? Použijte příkaz pwd Odpovědí vám bude výpis s úplnou aktuální cestou, kde se právě nacházíte. Například /home/pavel značí: jsem v domovském adresáři uživatele pavel. Pomocí tohoto jednoduchého příkazu zjistíte, kde se zrovna nacházíte. Než začnete něco přesouvat, mazat nebo kopírovat, je lepší přesvědčit se raději dvakrát o tom, kde vlastně jste a co děláte. Vzhledem k užitečnosti tohoto příkazu žádné další parametry nepotřebujete. Stačí si tedy jen zapamatovat pwd (zkratka z angličtiny Print Working Directory - vypiš pracovní adresář). Určitě si na něj zvyknete, běžně jej budete potřebovat. Jak mám procházet adresáři Nejvýše postavený adresář se značí /. Tento kořenový adresář, nebo také root, obsahuje několik podadresářů. Každý z těchto podadresářů má svůj význam. Například do adresáře home se ukládají veškerá data uživatelů, jejich nastavení. Výjimkou je root superuživatel. Ten má svůj domovský adresář, pokud ho má, přímo v /. Do adresáře /tmp se ukládají dočasné soubory. Struktura adresářů tvoří strom: nahoře je jediný soubor označený / a dále se větví a větví do mnoha úrovní. Na procházení adresáři vám slouží několik základních možností: cd cesta_adresare, pokud ho znáte (cd /home/pavel) opět plně využijte tabulátor druhou možností je postupování od aktuálního adresáře směrem nahoru, opět pomocí příkazu cd, ale místo cesty zadáte.. (cd.. ) můžete se také dostat přímo do kořenového adresáře použitím cd / další možností je přepnutí do domovského adresáře cd ~ ještě můžete adresářovou strukturou procházet způsobem hledání, to znamená přepnu se do adresáře, vypíšu podadresáře přepnu se do podadresáře, vypíšu podadresáře (opět s využitím tabulátoru)

53 Práce s adresáři základní operace 51 existuje samozřejmě i možnost adresář si vyhledat a následně se do něj přepnout. v adresáři může být spustitelný soubor; ten spustíte pomocí./ soubor Chci vypsat obsah adresáře Dostáváme se k další zajímavé kategorii. Existuje spousta možností, jak lze vypsat obsah adresáře. Určitě znáte z Windows příkaz dir. Tento příkaz funguje i v Linuxu. Kromě tohoto příkazu lze použít i příkaz vdir. Snad nejznámější je příkaz ls. (Opět záleží na vás, který vám bude vyhovovat.) Obrázek 2.4: Výpis obsahu adresáře Už dříve jste si mohli vyzkoušet příkaz ls, který slouží k výpisu obsahu adresáře. Zadejte příkaz ls, dostanete výpis podobný tomu na obrázku. Pro porovnání je v další části obrázku výpis s přidáním parametru -l. Ono l značí long neboli dlouhý. Výpis budete mít po řádcích se všemi důležitými znaky. Příkaz zadáváte bez cesty k adresáři, potom se zobrazí výpis aktuálního adresáře. Druhou možností je zadat za příkaz ls cestu k adresáři (např. /tec/x11). Vidíte, že u příkazu ls je výpis přehlednější, existuje i barevné schéma výpisu, které se dá nastavit. Při výpisech vdir a ls už jednoduše zjistíte, co je soubor, co adresář, co link. To vám ukazuje ona skupina deseti znaků dxxx. První znak vám určuje, zdali se jedná o adresář (to je ono d) anebo zda se jedná o soubor (na první pozici je pomlčka ). Dále můžete vyčíst práva přístupu k danému souboru nebo adresáři. První znak tedy značí, zda se jedná o adresář, trojice znaků za prvním znakem, tedy druhý až čtvrtý znak, vám říká, jaká práva přístupu má vlastník. Druhá trojice znaků (znak 5 7)

54 52 Kapitola 2: Práce se soubory a adresáři udává práva pro skupinu. Poslední trojice vám řekne, jaká práva mají ostatní uživatelé. O právech se dozvíte více v jedné z následujících kapitol. V dalším sloupci tohoto výpisu vidíte, komu soubor patří, a dále se dočtete, jaká skupina vlastní soubor nebo adresář. Následuje údaj o velikosti, datu změny a jako poslední se vám vypíše jméno souboru anebo adresáře. Některé další užitečné volby pro výpis: Stačí přidat parametr S a výpis adresáře budete mít od největšího po nejmenší. Pomocí parametru a se objeví ve výpisu i skryté soubory a adresáře (před jménem mají tečku). Přidáte-li parametr X, setřídí se výpis podle přípony. Pokud chcete výpis adresáře tak, jak jsou položky fyzicky zapsány v adresáři, použijte parametr f. Parametrem U třídění vypnete. Pokud chcete třídit podle času, použijete parametr t. Můžete výpis setřídit i podle verze použitím parametru v. Užitečný je i parametr F tento parametr vám ukáže, o jaký druh souboru se jedná: adresář /, socket =, spustitelný soubor *, pojmenovaná roura, symbolický Ještě si můžete nastavit barevný výstup výpisu použijete-li příkaz ve tvaru: ls --color=auto lfg Parametr color může být never (nikdy), always (vždy) a auto (automaticky, dle různých podmínek). Konfiguraci barev pro jednotlivé přípony a typy souborů můžete najít v souboru /etc/dir_colors. Tip Podívejte se do manuálových stránek, jestli neexistuje nějaký parametr nebo nastavení, které by vám při výpisech více vyhovovaly. Možností je hodně. Potřebuji vypsat jen některé soubory Máte adresář a chcete vypsat jen některé soubory podle určité masky. Například v adresáři /etc hledáte soubory obsahující v názvu tab. Použijte například příkazy. Nejprve se přepněte do adresáře /etc cd /etc a následně zadejte výpis ls *tab* Pokud ještě přidáte parametry -al, máte výpis v přehledné tabulce. Pokud se týká masek při vyhledávání, funguje zde tento princip: * zastupuje všechny znaky a? zastupuje jeden znak. Pokud tedy napíšete *tab, vyhledáváte vše, co končí tab, a je jedno, jestli mtab anebo xcdfmtab. Pokud napíšete cd?, hledá se soubor nebo soubory začínající cd a obsahující další jeden znak, třeba cda.

55 Přesouvání souborů a adresářů 53 Nyní už záleží na vaší fantazii a rozhodnutí, co vlastně potřebujete učinit. Fotky nebo jiné soubory v jednom adresáři můžete třídit a následně s nimi pracovat mnoha způsoby. Přesouvání souborů a adresářů Adresářová struktura Než začnete pracovat s adresáři, stručně se seznámíte s adresářovou strukturou. Tato struktura je daná normou a do jisté úrovně je na všech distribucích stejná. Mohou zde být malé odchylky, ale nemělo by jich být mnoho. XWCNLX:/ # ls -al celkem 109 drwxr-xr-x 22 root root čec drwxr-xr-x 22 root root čec drwxr-xr-x 2 root root čec bin drwxr-xr-x 4 root root čec boot drwxr-xr-x 18 root root čec dev drwxr-xr-x 118 root root čec etc drwxr-xr-x 3 root root čec home drwxr-xr-x 19 root root čec lib drwx root root čec lost+found drwxr-xr-x 2 root root čec media drwxr-xr-x 2 root root čec mnt drwxr-xr-x 3 root root čec opt dr-xr-xr-x 178 root root čec 2010 proc drwx root root čec root drwxr-xr-x 3 root root čec sbin drwxr-xr-x 2 root root čec selinux drwxr-xr-x 4 root root čec srv drwxr-xr-x 12 root root čec 2010 sys drwxrwxrwt 17 root root čec tmp drwxr-xr-x 12 root root čec usr drwxr-xr-x 15 root root čec var drwxr-xr-x 4 root root čec windows Podívejte se na předchozí výpis a zjistíte, že v kořenovém adresáři / není žádný soubor, jsou zde jen adresáře. Podívejte se na stručný výpis základních adresářů a na to, co by měly obsahovat: / kořen nejvyšší úroveň /bin základní systémové příkazy, odtud spouštíte některé z příkazů /boot adresář s jádrem a se soubory důležitými pro start /dev speciální soubory zařízení, ke všem zařízením se přistupuje jako k souboru /etc adresář s konfiguračními soubory /etc/x11 konfigurační soubory pro X Window systém /home domovské adresáře všech uživatelů, kromě adresáře superuživatele root /lib základní knihovny obecné, pro systém a pro programy z adresářů /bin a adresář /sbin /media adresář pro připojení medií CD-ROM, DVD, flash disky apod. /mnt adresář pro dočasné připojení souborových systémů /opt zde by se měly ukládat volitelně ukládané aplikace /proc virtuální souborový systém s informacemi o systému a procesech

56 54 Kapitola 2: Práce se soubory a adresáři /root domovský adresář superuživatele root /sbin adresář pro základní systémové programy (fdisk, mkfs, modprobe ) /srv data určená pro služby, které poskytuje váš počítač (web dokumenty apod.) /tmp adresář pro dočasné soubory /usr v tomto adresáři by se měly nalézat instalované aplikace dané distribuce, ale ne ty, které jsou důležité pro běh systému /usr/bin většína uživatelských příkazů, standardní linuxové utility, binární soubory, které nejsou nutné pro činnost v jednouživatelském režimu /usr/include hlavičkové soubory /usr/man manuály /usr/src soubory se zdrojovými kódy /usr/x11r6 soubory pro X Window systém /var soubory, jejichž data se při běhu systému mění (Data systémových programů, daemonů) /var/log záznamy systému logy /var/mail uživatelské poštovní schránky /var/spool zde se odkládají aplikační data, např. tiskové a poštovní fronty /var/run informace o běžícím systému /var/tmp dočasné soubory, po restartu by měly zůstat zachovány Potřebuji přesunout, přejmenovat soubor, příkaz mv Základním příkazem k přesouvání a přejmenování souboru nebo adresáře je příkaz mv. Nejjednodušším případem je přejmenování souboru. Použijte příkaz v jednoduchém formátu: mv soubor.txt novy_nazev.txt Pokud chcete soubor přesunout do jiného adresáře, zadejte: mv soubor.txt /home/pavel/data/ Příkaz zadáme v jednoduchém tvaru: po příkazu mv následuje název souboru a dále uvedete cestu, kam se má soubor přesunout. Pokud chcete přesunout soubor na jiné místo a zároveň jej přejmenovat, jednoduše uvedete příkaz ve tvaru: mv soubor.txt /home/pavel/data/novy_nazev.txt Tento příkaz dokáže také přesouvat i více adresářů a souborů naráz, ale pouze přesouvat. Přejmenovávat je v tomto případě nelze. mv adresar soubor.txt skript.py jiny_adresar../cilovy_adresar/ Nejprve uvedete soubory a adresáře, které chcete přesunout, a následně zadáte cestu, kam chcete soubory přesunout. Když budete potřebovat, dají se použít i parametry (například pokud nechceme přepsat již existující soubor).

57 Přesouvání souborů a adresářů 55 Parametry: -f (force) nežádá potvrzení od uživatele; pokud soubor existuje, přepíše jej. -i (interactive) naopak bude žádat potvrzení od uživatel, pokud soubor existuje. Jakmile zadáte oba parametry naráz, bude se brát jako hlavní poslední parametr. Dalším velice vhodným parametrem je -u (update). S tímto parametrem se nepřemístí soubory, které již existují v cílovém adresáři a mají stejný nebo novější čas poslední změny. Pozor, tento parametr neplatí pro adresáře. Jak mám vytvořit adresář Chcete-li vytvořit nový adresář, použijete příkaz mkdir. Použití tohoto příkazu je velice jednoduché. Stačí když napíšete mkdir novyadresar anebo zadáte celou cestu mkdir /tmp/pokus Rozdíl mezi první a druhou variantou je vcelku logický. V prvním případě vytvoříte adresář v aktuálním adresáři. Ve druhém případě bude adresář vytvořen podle zadané cesty, tedy v /tmp. Tip Další užitečnou variantou může být možnost vytvořit více adresářů zároveň. Pokud zadáváte více adresářů, můžete je zadávat bez úplné cesty anebo s cestou. Pokud použijete příkaz bez cesty, adresáře se vytvoří tam, kde se aktuálně nacházíte. Jakmile zadáte úplnou cestu, adresář se vytvoří tam. mkdir pok1 pok2 /tmp/pok3 Po takto zadaném příkazu se vám vytvoří adresáře pok1 a pok2 v aktuálním adresáři a třetí adresář /tmp/pok3 se vytvoří v adresáři /tmp. Pozor, pokud zadáte špatný adresář, systém ohlásí chybu, že adresář nelze vytvořit: Adresář nebo soubor neexistuje. Překontrolujte zadávanou cestu anebo zadávejte cestu použitím tabulátoru. Potřebuji přesunout adresář anebo adresáře Stejně jako u přesouvání souborů lze použít příkaz mv. Použít jej můžete buď pouze pro jeden adresář, anebo pro více adresářů. Ověřte si, že jste v domovském adresáři, a zkuste si vytvořit několik adresářů: mkdir pokus1 pokus2 pokus3 A nyní je jednoduše můžete přesunout: mv pokus1 pokus2 pokus3 /tmp

58 56 Kapitola 2: Práce se soubory a adresáři Adresářů můžete zadat více, jako cílový adresář se bere poslední zadávaný (v našem případě /tmp). Pokud opět zadáte chybný adresář, příkaz bude ukončen chybou. Jen pro zajímavost se podívejte na některé možné další volby tohoto příkazu: -b nebo --backup Od souborů, které by se přesunutím jiného souboru zrušily, se budou vytvářet záložní kopie. -f nebo --force Existující cílové soubory se vytvořením stejnojmenného souboru zruší bez toho, že by si příkaz tuto operaci nechal potvrdit. -i nebo --interactive Před přepsáním existujícího cílového souboru si příkaz tuto operaci nechá uživatelem odsouhlasit. Pokud odpověď nezačíná písmeny y nebo Y, potom se soubor přeskočí. -u nebo --update Nepřesouvají se soubory, ke kterým existuje cílový soubor a tento má stejný nebo novější čas poslední modifikace obsahu. Volba se vztahuje pouze na neadresářové položky. -v nebo --verbose Před přesunutím souboru se vypíše jméno zdrojového a cílového souboru. Třídění adresáře Třídit a vyhledávat jsou úkoly, které vám určitě zjednoduší život. O vyhledávání jste se už něco dozvěděli. Potřebuji nejprve zobrazit setříděné adresáře a následně setříděné soubory Pro tento případ vám poslouží kombinace dvou příkazů, a sice ls a sort. Vyzkoušejte: ls al sort Případně můžete třídit v opačném směru: ls al sort t. Zastavme se ještě u příkazu sort a jeho dalších parametrů: Nápovědu dostanete opět pomocí --help. Parametr d znamená, že při porovnávání jsou brány pouze znaky a z, A A, 0 9. Použitím parametru f nebudete rozlišovat mezi malými a velkými písmeny. m vstupní soubory jsou setříděny jako jeden celek. n číselné třídění. r třídění v opačném směru. u opakující se vstupní řádky jsou na výstupu uvedeny pouze jednou.

59 Kopírování souboru, souborů 57 Kopírování souboru, souborů Chci zkopírovat jeden soubor V tomto případě určitě v drtivé většině případů použijete příkaz cp. Zkopírování souboru provedete pomocí příkazu ve tvaru: cp pokus.txt /home/pavel/data Příkaz je ve stejném tvaru, jako jste viděli u příkazu mv. Díky přidávaným parametrům má tento příkaz více možností. Stačí si vypsat pomocí příkazu man veškeré možnosti tohoto příkazu uvidíte, že je jich daleko více než u příkazu mv. Podívejte se nyní na některé rozšiřující možnosti tohoto příkazu. Nejčastěji použijete příkaz cp s pomocí parametru f, to značí, že není od uživatele vyžadováno žádné potvrzení operace. Pokud použijete parametr i, značí to, že před každým kopírováním budete upozorněni a požádáni o potvrzení. Chci kopírovat více souborů Příkaz zůstává stejný, pouze zadáte více souborů (můžete i z různých adresářů) poslední adresář se bere jako cílová cesta, kam se soubory přesunou. Jak zkopírovat obsah adresáře včetně podadresářů Zkopírování provedete opět použitím příkazu cp a přidáním parametru -r. cp -r pokus /home/pavel/zaloha/ Opět zadáváte ve tvaru, co chcete kopírovat a kam chcete kopírovat. Vyhledávání souboru, souborů Jak vyhledávat příkaz find Co se týká vyhledávání, zcela nepochybně začnete příkazem find. Tento příkaz má spoustu možností. My se zde podíváme na ty snad nejdůležitější, i když v daném okamžiku pro vás může být důležitý ten, který zde obsažený nebude. Na úvod jednoduchý příklad: find $HOME -print more Zadáním tohoto příkazu dostanete výpis celého vašeho domovského adresáře, včetně podadresářů a souborů. Výpis je to sice pěkný, ale důležitější pro vás bude třeba hledání podle jména. find /home/pavel -name *pok* -print

60 58 Kapitola 2: Práce se soubory a adresáři Zadáte příkaz find a za ním následuje adresář, kde se bude hledat. Pokud chcete hledat v celém souborovém systému, zadáte /. Parametr -name vám říká, že se bude vyhledávat ve jménu souboru nebo adresáře. Dále zadáte část názvu; pokud jménu předchází nebo za jménem následují nějaké znaky (i přípona), musíte doplnit zástupné znaky. Hvězdička označuje jakékoliv další znaky. Bude se tedy hledat cokoliv, co obsahuje pok. find /home -name 'pok*' -user pavel -print V další ukázce budete vyhledávat v adresáři /usr/share/doc adresáře, které začínají na man, a výpis setřídíte. find / -type d -name 'man*' print sort V tomto příkladu hledáte podle typu souboru. Obrázek 2.5: Vyhledávání souborů Na obrázku máte srovnání dvou vyhledávání podle typu souboru, druhý případ je ještě setříděn Typy souboru: d adresář b blokový speciální soubor c znakový speciální soubor p pojmenovaná roura l symbolický odkaz s socket f běžný soubor Tedy hledáte d, adresář začínající man. Zkuste si další ukázku: find /home \! -name '[A-G]*' -print Hledat budete v adresáři /home všechny soubory a adresáře, které neobsahují velké znaky A G. find / -size 500

61 Odstranění souboru, souborů 59 Takto budete hledat v adresáři / soubory o velikosti 500 datových bloků. Pokud ještě za číslo dáte písmeno c, bude se hledat podle počtu znaků. Tyto možnosti můžete různě kombinovat, až dosáhnete pro vás to nejlepší řešení. Pojďte se podívat na výčet možných parametrů hledání: -atime n, (+n), (-n) hledá soubory ke kterým se přistupovalo před n dny, +n značí před více než n dny a -n před méně než n dny. -ctime n, (+n), (-n) totéž co u atime, ale zde se hledají ty, které byly modifikovány. Odstranění souboru, souborů Potřebuji odstranit soubor, soubory K odstranění souboru nebo souborů použijte příkaz rm. rm soubor1 soubor2 soubor3 Podívejte se na výpis: $ rm -iv pokus pokusek rm: smazat běžný soubor pokus? y smazáno pokus rm: smazat běžný soubor pokusek? y smazáno pokusek Na ukázce si můžete vyzkoušet postup mazání souborů. K příkazu jste si přidali dva nepovinné parametry. Parametr -i vám zajistí, že před každým smazáním souboru se systém zeptá, jestli opravdu chcete soubor smazat, a vy musíte potvrdit operaci.. Parametr -v zase vypisuje všechny události, ať už úspěšné anebo neúspěšné, na obrazovku. Soubor tabulka odstraňte: rm i tabulka rm: smazat proti zápisu chráněný běžný soubor tabulka? Y Aby se soubor smazal, musíte zadat Y. Příkaz samozřejmě bude fungovat i bez těchto parametrů. Potřebuji smazat soubor i s adresářem, ve kterém je umístěný Můžete smazat i soubory včetně nadřazeného adresáře, ale opatrně. Tato varianta by se neměla používat se zástupným znakem *. Mohlo by totiž dojít k velkým škodám. Podívejte se na jednoduchou ukázku: pavel@xwcnlx:~> mkdir pokus pavel@xwcnlx:~> cd pokus pavel@xwcnlx:~/pokus> cat > pokus.txt asad ada adad

62 60 Kapitola 2: Práce se soubory a adresáři Vytvořte si adresář, v tomto případě pokus. Následně vytvořte soubor pokus.txt. pavel@xwcnlx:~/pokus> more pokus.txt asad ada adad pavel@xwcnlx:~/pokus> cd.. Přesvědčte se, že adresář pokus opravdu existuje. pavel@xwcnlx:~> ls bin Hudba Plocha public_html Šablony Videa Dokumenty Obrázky pokus Stažené Veřejné Následně soubor odstraňte použitím příkazu rm a parametru -r. pavel@xwcnlx:~> rm -r ~/pokus/pokus.txt pavel@xwcnlx:~> ls bin Hudba Plocha public_html Šablony Videa Dokumenty Obrázky pokus Stažené Veřejné Soubor je pryč i s adresářem. Tip Zkuste tuto operaci provést s oprávněním administrátora v některém z důležitých adresářů nebo v adresáři se soubory důležitými pro určité oddělení. Místo jména souboru použijte hvězdičku, zástupný znak pro všechny soubory. Velice rychle budete hledat zálohy smazaných souborů Odkazy na soubor - linky Jak je to s odkazy na soubory pevný odkaz Můžete mít dva druhy odkazů na soubor, buď pevný, anebo symbolický. Pevný odkaz vytvoříte pomocí příkazu: ln /etc/fstab tabulka Po výpisu adresáře se vám objeví nový soubor tabulka. Tento soubor není kopií souboru fstab, je odkazem na tento soubor. To znamená, že pokud byste se pokusili editovat tento soubor a následně jej uložit, tak se vám to nepodaří. Nemáte oprávnění tento soubor editovat. Vlastníkem tohoto souboru je root. O tom, že soubor má nějaké pevné odkazy, se přesvědčíte při výpisu adresáře: ls -al /etc/fstab -rw-r--r-- 2 root root dub /etc/fstab Za právy k souboru se vám objeví ještě číslo 2. Toto číslo znamená, že někde existuje odkaz na tento soubor. Pokud pevný odkaz tabulka smažete, změní se i číslo linků u souboru /tec/fstab.

63 Práce s archivy 61 Jak je to s odkazy na soubory symbolický odkaz Nyní se podívejte na odkaz symbolický. Vytváří se stejně jako pevný odkaz, pouze přidáte parametr -s. ln -s /etc/fstab tabulka ls -l tabulka lrwxrwxrwx 1 pavel users dub tabulka -> /etc/fstab ls -l /etc/fstab -rw-r--r-- 1 root root dub /etc/fstab Jestliže se podíváte na nový soubor tabulka, objeví se vám na prvním místě písmeno l. Toto písmeno právě značí, že se jedná o symbolický odkaz. Potom se můžete přesvědčit, že po výpisu adresáře s originálním souborem se číslo za oprávněním k souboru nezměnilo. Link zrušíte smazáním souboru, který se odkazuje na soubor originální. $rm tabulka Práce s archivy Pracovat s archivy neodmyslitelně patří k běžné činnosti. V této části se zaměříme na archivy typu tar, zip, rar a 7zip. Nejprve začneme u archivů tar. Jak pomocí tar provedu komprimaci Poznámka Archiv tar není komprimovaný, jeho velikost je stejná jako velikost souborů obsažených v archivu, plus něco navíc jako režie. tar cvf jmeno_archivu.tar adresar1 soubor1 soubor2 adresar2 soubor3 Co znamenají jednotlivé parametry: c jako create vytvoř v jako verbose (upovídaný) zobrazuje podrobnosti při tvorbě archívu f file parametr pro zadání jména souboru Podívejte se na příklad: pavel@linux-kl2e:~/dokumenty> ls -al celkem 20 drwxr-xr-x 3 pavel users bře drwxr-xr-x 33 pavel users bře drwxr-xr-x 2 pavel users bře kniha -rw-r--r-- 1 pavel users bře provoz -rw-r--r-- 1 pavel users bře soubor.txt pavel@linux-kl2e:~/dokumenty> tar cvf archiv.tar kniha provoz soubor.txt kniha/ kniha/obr31.png provoz soubor.txt

64 62 Kapitola 2: Práce se soubory a adresáři pavel@linux-kl2e:~/dokumenty> ls -al celkem 80 drwxr-xr-x 3 pavel users bře drwxr-xr-x 33 pavel users bře rw-r--r-- 1 pavel users bře archiv.tar drwxr-xr-x 2 pavel users bře kniha -rw-r--r-- 1 pavel users bře provoz -rw-r--r-- 1 pavel users bře soubor.txt pavel@linux-kl2e:~/dokumenty> Jako první vyberete, co chcete zálohovat. Následně příkazem tar cvf archiv.tar kniha provoz soubor.txt zadáte, že hodláte vytvořit archiv nazvaný archiv.tar ze souborů provoz a soubor.txt a k nim přidáte adresář kniha. Provede se komprimace a po následném výpisu už vidíte i nový archiv. Potřebuji vědět, co je obsaženo v archívu tar Abyste se dozvěděli, co je obsahem archivu, změníte parametry a použijete příkaz ve tvaru: tar tf archiv.tar kniha/ kniha/obr31.png provoz soubor.txt pavel@linux-kl2e:~/dokumenty> Jak vidíte, vypsal se vám obsah archivu, včetně obsahu adresáře. Potřebuji archiv tar rozbalit Opět vás čeká jednoduchá operace, pouze změníte parametry. tar xvf archiv.tar Objevil se zde další parametr x. Chci z archivu jen jeden soubor I toto lze provádět s tímto archivem. Máte nějaký archiv archiv.tar. Nejprve se podíváte, co archiv obsahuje: tar tfv archiv.tar Přidejte si oblíbený parametr v a uvidíte, že se výpis rozšířil. Zobrazí se i práva a další vlastnosti souborů a adresářů. pavel@linux-kl2e:~/dokumenty> tar tfv archiv.tar drwx pavel/users :42 Documents/ -rw-r--r-- pavel/users :42 Documents/Nový dokument.ott -rw-r--r-- pavel/users :42 Documents/Nový sešit.ots -rw-r--r-- pavel/users :51 Documents/New Document.ott -rw-r--r-- pavel/users :51 Documents/New Spreadsheet.ots drwxr-xr-x pavel/users :44 kniha/ -rw-r--r-- pavel/users :41 kniha/obr31.png

65 Práce s archivy 63 -rw-r--r-- pavel/users :24 localhost -rw-r--r-- pavel/users :37 soubor.txt pavel@linux-kl2e:~/dokumenty> Potřebujete rozbalit pouze soubor Obr31.png. pavel@linux-kl2e:~/pokus> tar xvf archiv.tar kniha/obr31.png kniha/obr31.png pavel@linux-kl2e:~/pokus> ls archiv.tar kniha pavel@linux-kl2e:~/pokus> cd kniha pavel@linux-kl2e:~/pokus/kniha> ls Obr31.png Operace se povedla, je vyoperovaný pouze jeden soubor. Obdobně tohle můžete použít i na více souborů, které vypíšete za sebou. Potřebuji archiv tar rozbalit do jiného adresáře. Přidáte další parametr, tentokrát C adresar, a příkaz se provede. tar -xvf archiv.tar -C /home/pavel/pokus/archiv Jak provedu komprimaci pomocí zip archivu Tyto typy archivů nejsou pro Linux moc typické. Jedná se o archivy hojně používané ve Windows. I tak umí Linux s těmito archivy pracovat docela dobře. Pro tvorbu archivu zip použijeme stejnojmenný program. Pro dekompresi použijeme unzip. Archiv vytvoříme jednoduše: zip -r archiv.zip adresar1 soubor1 adresar2 soubor2 tedy nějak takto: pavel@linux-kl2e:~/pokus> zip -rv archiv.zip kniha localhost soubor.txt adding: kniha/ (in=0) (out=0) (stored 0%) adding: kniha/obr31.png (in=50823) (out=47670) (deflated 6%) adding: localhost (in=170) (out=123) (deflated 28%) adding: soubor.txt (in=50) (out=48) (deflated 4%) total bytes=51043, compressed= > 6% savings pavel@linux-kl2e:~/pokus> ls archiv.zip kniha localhost soubor.tx Parametr -r určuje, že se do archivu přidá i obsah podadresářů. Zadané soubory z archivu odstraníme parametrem d: zip -dv archiv.zip localhost Takto odstraníme z archivu soubor localhost. Archiv lze samozřejmě také zajistit heslem. K tomu využijeme parametru -e. Při tvorbě archivu budeme vyzváni k zadání hesla. Chci si prohlédnout obsah archivu zip Rozbalení archivu pouze pro čtení provedete následně: unzip -l archiv.zip

66 64 Kapitola 2: Práce se soubory a adresáři Rozbaluji zip archiv Zip archiv rozbalíme příkazem: unzip archiv.zip Stejně jako u archivu tar přidáte jména souborů, pokud nechcete rozbalovat celý archiv, za jméno archivu. Lze použít i druhou metodu a po parametru -x uvést seznam souborů, které se nemají rozbalovat, tzn. že rozbalíte všechny soubory až na ty vyjmenované. Můžete uvést po parametru -d adresář, kam se mají soubory rozbalit. U archivu tar se jedná o parametr -C. Při rozbalovaní archivu se může stát, že si přepíšete existující soubory. To však nemusí vždycky být vaším přáním. Abyste tomuto zabránili, přidáte parametr -n. Práce s archivem rar Pro práci s těmito archivy si budete muset doinstalovat programy rar a unrar. Podívejte se na stránky věnované vaší distribuci a tam najdete pravděpodobně i postup, jak dostanete podporu pro tyto archivy do vašeho systému. Postup se může lišit u každé distribuce. Někde už je součásti systému, někde musíte přidat repozitáře a následně doinstalovat a někde budete muset provést instalaci ze zdrojových kódů. Musím vás ještě upozornit, že program rar není freeware. Pokud tedy máte rar a unrar doinstalovaný, práce s těmito archivy je opět jednoduchá: $ rar a archiv.rar Stažené Veřejné Creating archive archiv.rar Adding Stažené/rarlinux tar.gz OK Adding Stažené/rar el4.rf.i386.rpm OK Adding Stažené OK Adding Veřejné OK Done a po ověření $ls archiv.rar Dokumenty Obrázky pokus qbt_dir Stažené Veřejné dim.txt Hudba Plocha pokus2 rar rf.src.rpm Šablony Videa Do archivu můžete opět dávat jak soubory, tak i adresáře, včetně úplné cesty z různých míst adresářové struktury. Můžu přidat do archivu další soubory? Pokud zadáte jméno už existujícího archivu, soubory, které zadáte, se k souborům už obsaženým doplní. Co obsahuje můj archiv? O tom, co je obsaženo v archivu, se můžete přesvědčit použitím: unrar l archiv.rar

67 Práce s archivy 65 V přehledné tabulce uvidíte spoustu užitečných informací. $ unrar l archiv.rar UNRAR 3.80 freeware Copyright (c) Alexander Roshal Archive archiv.rar Name Size Packed Ratio Date Time Attr CRC Meth Ver fstab % :07 -rw-r--r-- FD63B9E8 m3b 2.9 hosts % :50 -rw-r--r-- D4BB3A48 m3b 2.9 mtab % :13 -rw-r--r C5B m3b % Chci vidět, co je v zabalených souborech Můžete se podívat, co obsahují zabalené soubory. Příkaz unrar použijete s parametrem: unrar p archiv.rar Zobrazí se soubory jeden za druhým pokud jsou textové, tak v čitelné podobě. Chci archiv rar zaheslovat Nyní se dostanete k tomu, že musíte použít u příkazu i přepínač. Ten se píše s pomlčkou před jménem archivu. rar a -p /adresar/soubor adresar /adresar/soubor Program se vás zeptá na heslo, následně jej bude chtít zopakovat a poté provede archivaci. Takto zaheslovaný soubor uvidíte pouze ve výpisu za použití unrar l, ale už se vám nepovede jej rozbalit ani přečíst. Pokud za přepínačem ještě napíšete minus (-p), nebude po vás vyžadováno heslo pro archiv dvakrát. A co rozbalení archivu rar? Na rozbalení použijete příkaz ve tvaru: unrar x archiv.rar Musíte si ale uvědomit, že se soubory rozbalí včetně adresářů do adresářové struktury. Pokud budete rozbalovat zaheslované archivy, budete dotázáni na heslo, a pokud zadáte chybné heslo, program skončí chybou. Příkaz má stejné nebo podobné přepínače jako rar. Z dalších přepínačů bych vás upozornil na přepínače -o+ a -o-. Tyto dva přepínače při rozbalování archivu buď přepíšou, anebo nepřepíšou soubory, pokud existují: -o+ přepíše -o nepřepíše

68 66 Kapitola 2: Práce se soubory a adresáři Chci rozbalit soubory do aktuálního adresáře Použitím parametru e můžete dosáhnout rozbalení archivu do aktuálního adresáře. Vytvoříte například adresář: mkdir archiv Následně se příkazem unrar e archiv.rar rozbalí všechny soubory do aktuálního adresáře. Pouze soubory, adresáře ne. Další typ archivu gzip Dalším hojně používaným typem archivu je gzip a gunzip. Použití je opět jednoduché. Stačí zadat pouze gzip soubor a výsledkem je zadaný soubor zabalený do archivu soubor.gz. Pracujete se souborem a také tento program vytvoří archiv přímo ze souboru, a ne z jeho kopie. Toto můžete použít v rourách, prostě se výstup přesměruje do již komprimovaného souboru: cat pokus gzip > soubor.gz Na rozbalení archivu použijte druhý příkaz, a sice: gunzip soubor.gz Velice zajímavou je spolupráce s archivačním programem tar. Stačí, pokud přidáte parametr -z. Podívejte se na příklad rozbalení archivu: tar -zvf soubor soubor2.tar.gz Tento příkaz vám dekomprimuje a rozbalí celý archiv. Někdy se můžete setkat s tím, že přípona nebude tar.gz, ale jen tgz. Také se vám nepodaří zabalit adresáře, pouze soubory. Můžu si zabalený soubor prohlížet? Soubor zabalený pomocí gzip si můžete opravdu přečíst, když použijete místo cat příkaz zcat soubor.gz Stejně jako jste si zkusili použití příkazu zcat, můžete vyzkoušet, že vám budou fungovat i další známé: zmore zless Všechny tyto příkazy použijete na archivy zabalené pomocí gzip. Dalším typem archivu je bzip2 Opět v nejjednodušší variantě můžete zadat: bzip2 soubor1

69 Práce s archivy 67 Můžete uvést více souborů za sebou. Každý soubor se zabalí zvlášť. Opět můžete použít: zcat, zless, zmore. Adresář se vám zabalit nepodaří, pokus skončí chybou. $ bzip2 pokus bzip2: Input file pokus is a directory. Na rozbalení archivu opět jednoduše: bunzip2 soubor.bz2

70

71 KAPITOLA 3 Práva a co s nimi Práva přístupu k souborům, adresářům Každý soubor a adresář někomu patří, má svého vlastníka. Vlastník patří do určité skupiny uživatelů. Kdo není vlastníkem souboru, ani nepatří do skupiny uživatelů, patří mezi ostatní. Takto by se velice stručně dala popsat pravidla oprávnění přístupu k souborům a adresářům. Vypište si obsah jakéhokoliv adresáře pomocí: $ ls -al drwxr-xr-x 3 pavel users -rwxr--r-- 1 pavel users drwxr-xr-x 3 pavel users lrwxrwxrwx 1 pavel users kvě kniha dub kralik dub local dub mtab -> /etc/mtab Zajímavé jsou v současné chvíli jen začátky řádků. Jako první znak zde může být buď pomlčka, potom se jedná o soubor. Nebo jako první znak bude d, to se jedná o adresář. Ve výpisu vidíte také jako první znak písmeno l, to se jedná o symbolický link odkaz na soubor, něco jako ve Windows zástupce. Další znaky se počítají vždy po třech. První trojice, tedy znak na druhém až čtvrtém místě, vám zobrazuje oprávnění vlastníka. Další tři znaky jsou pro oprávnění skupiny a poslední tři znaky, tedy znak osm až deset, je pro oprávnění ostatních:

72 70 Kapitola 3: Práva a co s nimi r znamená oprávnění pro čtení, w znamená oprávnění zapisovat, x znamená oprávnění soubor spouštět, adresář procházet. Za těmito znaky následuje číslo, to značí, kolik je odkazů na tento adresář nebo soubor. Dále vidíte jméno vlastníka a do které patří skupiny. Jak můžu změnit vlastníka? Ve většině případů může změnu vlastnictví provést pouze root. Provádí se pomocí příkazu: #chown kmp kralik #ls -al kralik -rwxr--r-- 1 kmp users dub kralik Příkaz zadáváte ve tvaru: chown novy_vlastnik jmeno_souboru. Můžu měnit oprávnění přístupu k souboru Toto oprávnění může měnit i běžný uživatel. Pokud budete psát skripty, dokonce budete oprávnění měnit často. Změna se ale týká pouze souborů a adresářů, u kterých jste vlastníkem anebo máte oprávnění pro změnu. Root může měnit cokoliv. Příkaz chmod poprvé U starších systémů se oprávnění měnilo pomocí čísel. Dnes jsou způsoby provedení dva, ale někde druhý systém nemusí fungovat, a proto je lépe se seznámit s oběma. Princip spočívá v tom, že máte tři skupiny, pro které nastavujete oprávnění. Nastavovat budete pomocí číslic, tedy tři skupiny, tři číslice. Podle výčtu uvedeného dále vyberete oprávnění: 0 žádné oprávnění 1 jen právo spouštět 2 jen právo zápisu 3 právo zápisu a může spouštět 4 jen právo čtení 5 právo čtení a možnost spouštět 6 právo čtení a zápisu 7 plné oprávnění, čtení zápis a spouštění Změnu provedete například takto: chmod soubor 777 V tomto případě dáváte všem uživatelů právo na čtení, zápis i možnost spouštět tento soubor. V případě, že zadáte oprávnění 700, dáváte vlastníkovi úplné oprávnění a skupina a zbytek světa nemůže dělat se souborem nic. A tak podobně jste schopni nakombinovat variantu, jakou potřebujete.

73 Práva přístupu k souborům, adresářům 71 Příkaz chmod podruhé Druhou, novější variantou je provádění změny pomocí písmen u, g, o, a. Zde písmeno u značí vlastníka, písmeno g skupinu a písmeno o je pro ostatní. Písmeno a je pro všechny naráz. Dále použijete znaménko plus a nebo minus; pomocí plus práva přidáváte a pomocí minus práva odebíráte. Přidávání a odebírání je nezávislé na tom, jaká práva jsou nyní nastavena. Podívejte se na příklad: $ ls -al vstup -rwx pavel users dub vstup $ chmod a+rwx vstup $ls -al vstup -rwxrwxrwx 1 pavel users dub vstup Zde byla provedena změna práv z původního maximálního oprávnění pro uživatele pavel na maximální oprávnění pro všechny. Další ukázkou bude odebírání oprávnění pro skupinu: $ chmod g-xw vstup $ls -al vstup -rwxr--rwx 1 pavel users dub vstup Podobným způsobem můžete opět provádět všechny možné varianty, důležité je si zapamatovat, že nejprve píšete, pro koho změnu provádíte, následně to, jestli práva přidáváte anebo odebíráte, a na závěr napíšete, jaké oprávnění budete měnit. Jak se dají nastavit práva V případě potřeby lze nastavit, jak se budou nastavovat práva při vytvoření nového souboru. Příkazem umask nadefinujete, jakým způsobem se budou nastavovat práva u nových souborů. Příkaz funguje opět pomocí čísel, ale tentokrát se odpočítává. Maximální oprávnění je tedy 777, příkazem umask 222 snížíte výsledné oprávnění na 555. $umask 777 $cat > soubor $ls -al soubor pavel users 0 2. kvě soubor Trochu nesmyslný příkaz ukazuje, že to opravdu tak funguje. Pokud zadáte příkaz umask bez parametrů, dostanete výpis, jak jsou práva nastavena. Můžu změnit skupinu? Stejně jako vlastníka souboru nebo adresáře můžete změnit skupinu u souboru, adresáře. K tomuto účelu použijte příkaz: $ chgrp student /home/pavel/zaloha Pro adresář zaloha jste změnili skupinu z users na student.

74 72 Kapitola 3: Práva a co s nimi K čemu je dobrý alias Alias má velice jednoduchý úkol. Snaží se vám zjednodušit život. Pomocí nějaké zkratky vám umožní příkaz na celou řádku zadávat pomocí zkratky. Jak na to? V domovském adresáři každého uživatele je soubor nazvaný.bashrc. Do tohoto souboru si můžete nadefinovat, kolik chcete aliasů. Důležité je si pamatovat zkratky příkazů. V terminálu zadáváte zkratku a ta vykoná příkaz pod touto zkratkou uložený. Nejprve se přesvědčte, zda jste ve svém domovském adresáři pwd. Otevřete si soubor.bashrc v některém z editorů. vi.bashrc Obrázek 3.1: Editujete.bashrc Podle obrázku provedete editaci svého souboru.bashrc. To znamená, že doplníte na konec souboru: alias zkratka='cely prikaz alias lsal= ls al more a ukončíte klávesou Enter. Následně se musíte odhlásit z terminálu a znovu přihlásit anebo znovu spustit..bashrc. Nyní se po použití vaší nové zkratky lsal provede příkaz ls al more Upozornění Nesmíte zapomenout na apostrofy (můžete použít i uvozovky), jinak vám alias nebude fungovat. Důležité je se odhlásit a znovu přihlásit, protože po přihlášení se kontroluje soubor.bashrc. Nový alias se vám objeví i při použití tabulátoru, pokud napíšete první znaky ze začátku aliasu.

75 Práva přístupu k souborům, adresářům 73 Přidám ještě jedno další využití. Hodně často zkoušíte dostupnost některého serveru a nechce se vám neustále vypisovat ping... Přidáte si alias: alias seznam="ping c 3 a potom stačí napsat jen seznam a příkaz ping se provede. Jak vytvořit alias pro všechny nové uživatele Při vytvoření nového uživatele se několik souborů nahrává i z adresáře /etc/skel. Právě v tomto adresáři najdete i výchozí.bashrc. Zde můžete doplnit aliasy. Vyzkoušejte tedy například ls -al /etc/skel Všem novým uživatelům se načítá základní nastavení. Vytvoří se domovský adresář a do něj se nakopírují důležité adresáře a soubory. V tomto adresáři vyberete.bashrc a provedete stejné operace jako v předchozí části. Jak se můžu přihlásit jako jiný uživatel Přihlášení se jako jiný uživatel se provádí pomocí příkazu: su uzivatel Pokud zadáte příkaz su bez parametru, jste vyzvání na zadání hesla superuživatele roota. Bere se to tak, že se hodláte přihlásit jako administrátor. Například: su kmp Tento příkaz použijete, hodláte-li se přihlásit jako uživatel kmp. Jako parametr můžete ještě doplnit -l a v tomto případě se projde celá přihlašovací sekvence. Budete mít tedy stejné prostředí jako uživatel kmp. Jak se přihlásím jako superuživatel root Jak jste se mohli přesvědčit o něco dříve v textu, můžete se přihlásit jako superuživatel pomocí příkazu $ su Heslo: su: chybné heslo Jestliže heslo neznáte anebo zadáte chybné heslo, přihlášení neproběhne. Stejně se můžete přihlásit, pokud zadáte příkaz ve tvaru: $ su root Heslo: # Po zadání správného hesla jste přihlášeni.

76 74 Kapitola 3: Práva a co s nimi Chci zadat jen příkaz s oprávněním uživatele Tuto operaci můžete provést, pokud k příkazu su přidáte parametr -c: $ su -c 'ls -al /etc/ grep tab > vypis.txt' Heslo: Tímto způsobem provedete příkaz jako root. Pokud se příkaz skládá z více slov, musíte jej uzavřít do apostrofů. Příkaz ale také můžete napsat ve tvaru su kmp -c 'prikaz1 prikaz2...' V tomto případě provedete příkaz jako uživatel kmp. Ověříte si, že se akce opravdu povedla. $ more vypis.txt -rw-r--r--. 1 root root úno anacrontab -rw-r--r--. 1 root root čec 2009 crontab -rw-r--r--. 1 root root kvě crypttab -rw-r--r--. 1 root root kvě fstab -rw-r--r--. 1 root root kvě fstab~ -rw-r--r--. 1 root root kvě inittab -rw-r--r--. 1 root root kvě 2010 mtab -rw root pavel kvě mtab.fuselock -rw-r--r--. 1 root root říj 2008 quotatab -rw-r--r--. 1 root root dub rwtab drwxr-xr-x. 2 root root dub rwtab.d -rw-r--r--. 1 root root dub statetab drwxr-xr-x. 2 root root dub statetab.d Spouštění příkazu jako superuživatel příkaz sudo Tento velice zajímavý nástroj používejte, ale vždy s rozumem, protože jinak můžete zplakat nad výdělkem. Příkaz sudo vznikl jako zkratka dvou slov: superuser do. To hovoří jasně o tom, proč vznikl. Nadefinování možnosti spojené s tímto příkazem provádíte editací souboru /etc/sudoers. Tento soubor neupravujte pomocí editorů gedit, kedit a podobně. K úpravě využijte nástroj visudo Pomocí tohoto příkazu se vám spustí vi editor s otevřeným souborem /etc/sudoers. Při editaci tohoto souboru je pomocí tohoto příkazu kontrolována i syntaxe, tedy to, jestli zadáváte parametry správně. Podívejte se na ukázku toho, jakým způsobem můžete upravovat záznamy. Před každou sekcí vidíte, k čemu oddíl slouží, a jednoduše jsou naznačeny možnosti, jak by měl zápis vypadat. ## Allows members of the users group to mount and unmount the ## cdrom as root # %users ALL=/sbin/mount /mnt/cdrom, /sbin/umount /mnt/cdrom Zde například vidíte povolení připojení skupině users a odpojení cdrom jako root. ## Allows members of the users group to shutdown this system # %users localhost=/sbin/shutdown -h now

77 Práva přístupu k souborům, adresářům 75 A zde je povolení skupině users k vypnutí systému. V těchto případech stačí odkomentovat, smazat mřížku # na začátku řádku, ale jen u %users localhost=/sbin/shutdown -h now Řádek nebo řádky nad touto definicí oprávnění slouží jako komentář ten (ty) necháte, jak je (jsou). Následující ukázku berte jako ilustrativní a opravdu si dobře rozmyslete, jestli tento způsob potřebujete. Otevřte si pomocí příkazu (s právy roota): # visudo /etc/sudoers Najděte sekci uvedenou níže a dopište řádek s uživatelem, pro kterého hodláte nastavit práva stejná jako root. ## Allow root to run any commands anywhere root ALL=(ALL) ALL pavel ALL=(ALL) ALL Uložte soubor a můžete vyzkoušet, jestli vše funguje, například takto less /etc/sudoers /etc/sudoers: Operace zamítnuta To je správně, protože v normálním případě obyčejný uživatel nesmí ani číst soubor /etc/sudoers. Stejná varianta s upravenými právy, s použitím příkazu sudo: $ sudo more /etc/sudoers ## Sudoers allows particular users to run various commands as ## the root user, without needing the root password. ## ## Examples are provided at the bottom of the file for collections... Uvědomte si, že čím více máte uživatelů s nejvyšším oprávněním, tím více může být ohrožen váš systém. Spíš používejte varianty na povolení jen určité operace pro určitou skupinu nebo jednotlivé uživatele.

78

79 KAPITOLA 4 Základní konfigurace systému Uživatelské účty Vytvoření uživatele, příkaz useradd Přidání uživatele je velice důležitý úkol, dnes se ale používá stále častěji nějaká grafická nadstavba. Určitě se vám tyto příkazy budou někdy hodit zadání příkazu bez klepání je mnohdy rychlejší a přesně víte, co jste vlastně zadali. A hlavně dokážete ovlivnit, co vlastně chcete udělat. Nebudu se pouštět do detailů a rozepisovat všechny možnosti a parametry. Pouze se pokusím vytáhnout to nejužitečnější a nejvíce praktické. Chcete zřídit nového uživatele? Použijete příkaz v tomto tvaru: useradd m jirka Parametr m vám udává, že se pro uživatele jirka má vytvořit domovský adresář. Do tohoto adresáře se umístí všechny konfigurační soubory pro tohoto uživatele. Tyto konfigurační soubory bývají uloženy v adresáři /etc/skel.

80 78 Kapitola 4: Základní konfigurace systému Poznámka Samozřejmě musíte tento příkaz spouštět jako superuživatel root. Potřebujete vytvořit uživatele a nastavit mu jiný domovský adresář, než je jeho jméno Tento úkol provedete zadáním příkazu. Nový uživatel Jirka bude mít domovský adresář student03. useradd -d /home/student03 -m jirka Poznámka Normálně je adresář nazván podle uživatele, byl by to tedy adresář /home/jirka. Potřebujete přiřadit novému uživateli členství ve skupinách useradd -g pepa -G users,student -m pepa Zadání tohoto tvaru se vám postará o to, aby uživatel byl členem skupin pepa, users a student. To malé g uvedené jako parametr značí, že výchozí skupina pro nového uživatele pepa bude skupina pepa. Výchozí skupina může být pouze jedna. Naopak velké G značí výčet skupin, kam všude má nový uživatel patřit. Pokud přiřazujete uživatele do skupin, tyto skupiny musí existovat. Musí existovat i skupina pepa, jinak nebude tenhle příkaz fungovat. Uživatele už vytvořit umíte, nastavíte mu domovský adresář a přiřadíte jej do skupin. Nastavení příkazového interpretu shellu Shell by se ve stručnosti dal charakterizovat jako uživatelské prostředí umožňující ovládání systému pomocí zadávání příkazů a zobrazení jejich odezvy. To tedy znamená, že pokud máte spuštěnu konzolu a bliká na vás kurzor, běží na pozadí nějaký shell a ten se stará o vykonávání příkazů, které mu zadáte. Každý shell se dá nějakým způsobem konfigurovat (například mezi známé shelly patří bash, tcsh, csh a další). Nyní se podívejte na příkaz, kterým nastavíte shell pro nového uživatele pojmenovaného agata: # useradd -s /bin/bash -d /home/agata m agata Parametr s je ten, který nyní potřebujete. Cesta /bin/bash je cesta ke spuštění shellu, v tomto případě /bin/bash. Znáte jiný příkaz a sice adduser Tento příkaz není v některých distribucích přístupný. V některých distribucích je proveden symbolický odkaz na příkaz useradd. Zkuste si napsat help pro příkaz adduser a uvidíte, zda jej vaše distribuce podporuje. man adduser

81 Uživatelské účty 79 Přiřazení hesla k účtu Nesmíte zapomenout nastavit novému uživateli heslo. Tento úkon provedete jednoduchým příkazem: passwd agata Systém se vás zeptá na nové heslo. V některých distribucích vás může upozornit na krátké heslo a zeptá se vás na heslo znovu. Záleží na vašem uvážení, jestli použijete heslo jiné nebo zadáte opět stejné heslo. Pokud zvolíte druhou možnost, systém heslo nastaví a dál se neptá. Heslo pro všechny nastavuje pouze superuživatel, normální uživatel změní pouze svoje heslo použitím stejného příkazu. Nemusí psát passwd uzivatel, ale napíše pouze passwd. Jak vytvořím novou skupinu Nejjednodušším způsobem je vytvoření nové skupiny pomocí příkazu: # groupadd jeleni Nápovědu k tomuto příkazu získáte opět použitím: #groupadd --help To je ten nejjednodušší tvar. Co se týká rozšiřujících parametrů, začneme u parametru g. Tento parametr nastaví tzv. GID. GID je identifikační číslo skupiny; pokud tento parametr nechceme využít, číslo skupiny přiděluje systém. Řídí se jednoduchým pravidlem: čísla jsou vyhrazena pro systémové skupiny. Pokud tedy nepoužijete parametr g, systém přidělí vaší nové skupině číslo od 500 výše. Číslo skupiny je jedinečné a nemůže se opakovat. Pokud se pokusíte přidělit již existující číslo skupiny, příkaz skončí chybou. Poznámka Pokud chcete se skupinou rovnou pracovat, musíte nejprve restartovat shell, to znamená odhlásit se a znovu přihlásit v režimu příkazového řádku. Které skupiny jsou v systému Přesvědčit se o tom, které skupiny máte ve vašem systému, lze opět několika způsoby. Jedním z nich může být prohlédnutí souboru /etc/group. V tomto souboru jsou skupiny uloženy. $ more /etc/group sort more Dostanete setříděný seznam skupin ve vašem systému. Jak najdu určitou skupinu Potřebujete se přesvědčit, jestli určitá skupina existuje. Opět stačí použít soubor /etc/group: $ more /etc/group grep users

82 80 Kapitola 4: Základní konfigurace systému Obrázek 4.1: Výpis skupin v systému Potřebujete přidat uživatele do další skupiny Už umíte vytvořit uživatele, přiřadit ho do skupin a nastavit mu heslo. Jediné, co vám ještě chybí, je vytvoření skupin. Uděláte to opět jednoduchým způsobem zadáte pouze příkaz: # groupmems -a pavel g jeleni Přidáváte uživatele pavel do skupiny jeleni. O tom se můžete přesvědčit dotazem: # groups pavel pavel: pavel users jeleni Potřebuji uživatele smazat ze skupiny Opět použijete příkaz groupmems, pouze s jinými parametry: # groupmems d pavel g jeleni Odstranili jste uživatele pavel ze skupiny jeleni. O tom se můžete přesvědčit takto: #groups pavel pavel: pavel users

83 Odstranění skupiny, smazání uživatele 81 Odstranění skupiny, smazání uživatele Začínáte s odebíráním Celý tento systém potřebuje ještě opačnou cestu, tedy odstranění uživatelů a skupin. Postup nebude nijak složitý. Výpis všech uživatelů Jedním ze způsobů, jak lze vypsat všechny uživatele, je zobrazení souboru passwd, který je v adresáři etc. V tomto souboru jsou všichni uživatelé, včetně jejich uživatelského čísla, zakódovaného hesla a dalších informací. $ more /etc/passwd sort Tuto operaci můžete provést i pod svým vlastním účtem, nemusíte být superuživatel root. Tento soubor mohou číst všichni uživatelé. Výpis všech skupin a uživatelů Obdobně jste schopni vypsat i skupiny; ty jsou uloženy v souboru group v adresáři etc: $ more /etc/group sort Parametr za svislým lomítkem sort vám setřídí vypsaný seznam skupin. Použijte i parametr more, pokud je skupin více a výpis vám nevejde na stránku. $ more /etc/group sort more Soubor group je také nastaven pro čtení všem uživatelům. Je nutné odstranit některou ze skupin Skupinu odstraníte použitím příkazu: groupdel skupina Několik poznámek k tomuto příkazu: Příkaz nemá žádné další parametry. Příkaz vám nedovolí odstranit skupinu, která byla vytvořena s uživatelem. Pokud nenastavíte jinak, je systémem při vytvoření nového uživatele vytvořena i skupina se stejným jménem. Členem této skupiny je právě nově zřizovaný uživatel. Zkuste si tento případ: Vytvoříte nového uživatele pepa. useradd pepa Příkaz použijte bez parametrů. Vytvoříte nejen uživatele pepa, ale i jeho domovskou skupinu pepa. Nyní zkuste použít příkaz: groupdel pepa Systém vám zahlásí, že nemůžete vymazat uživatelovu domovskou skupinu.

84 82 Kapitola 4: Základní konfigurace systému Vyzkoušejte vytvoření skupiny příkazem groupadd pokusna a následně ji odstraňte použitím příkazu ve tvaru groupdel pokusna Vše proběhne korektně a skupina bude vytvořena a následně odstraněna. Odstranění uživatele Vymazání uživatele provedete použitím příkazu userdel pepa Zde máte i jeden parametr, a sice r. Použití tohoto parametru se nabízí samo: domovský adresář uživatele zachovat, či smazat. Pokud parametr nepoužijete, zůstane domovský adresář zachovaný. Pokud budete chtít smazaného uživatele obnovit a opět jej vytvoříte, upozorní vás systém, že domovský adresář existuje a nebudou do něj nakopírovány konfigurační soubory. Modifikace uživatele a skupiny podruhé usermod Práci s vytvářením uživatelů a skupin je ještě třeba doplnit o třetí kategorii operací. Jedná se o úpravu stávajících uživatelů a skupin. Tyto operace jsou natolik závažné, že je lze provádět pouze jako superuživatel root. Ne vždy je nutné uživatele odstranit, potřebujete ho pouze změnit. K této operaci se v příkazovém řádku používá příkaz usermod. U této operace máte více možností: Parametr d vám změní domovský adresář uživatele. Pokud k tomuto parametru ještě přidáte parametr m, překopíruje soubory z původního adresáře do nového adresáře. Pokud domovský adresář neexistuje, vytvoří prázdný adresář. # usermod d /home/novy m pepa Zajímavý je parametr e, ten vám zajistí, že k zadanému datu přestane být účet aktivní. Datum zadáváte za parametr ve formátu RRRR-MM-DD, například Parametrem f můžete určit, po kolika dnech přestane k danému účtu platit heslo, a pokud se heslo nezmění, účet bude zakázán. # usermod f 234 pepa Dalším důležitým parametrem je G. Použijete jej v okamžiku, kdy chcete přidat uživatele do dalších skupin. usermod G users,video,audio pepa2 Po spuštění příkladu přidáte uživatele pepa2 do skupin users, video a audio.

85 Údaje o uživatelích a systému 83 Upozornění Skupiny oddělujete čárkou; za čárkou nesmí být mezera. Mezera je za poslední skupinou a následuje uživatel. Uživatel bude nově členem skupin, které zadáte. Pokud byl ještě členem některé jiné skupiny, bude z této skupiny smazán Potřebujete se přesvědčit, ve kterých skupinách je uživatel Můžete se rychle přesvědčit o tom, kam uživatel patří. Použijete příkaz: groups uzivatel Dostanete výpis skupin, kam je uživatel zařazen. Příkaz nemá další možnosti. Pokud příkaz zadáte bez jména uživatele, dostanete výpis pro přihlášeného uživatele. I skupiny lze modifikovat Tady použijte příkaz groupmod. Máte možnost volby, co hodláte modifikovat. Zadáte-li parametr g, budete modifikovat GID neboli číslo skupiny. Napíšete-li parametr n a za tento parametr nové jméno, přejmenujete skupinu. groupmod n novy_nazev stary_nazev Údaje o uživatelích a systému Jak zjistím, kdo je aktuálně přihlášený První možností je použití příkazu: $who pavel tty :56 (:0) pavel pts/ :58 (:0.0) Druhou možností je použití příkazu $ w 20:23:43 up 39 min, 4 users, load average: 1,83, 1,79, 1,63 USER TTY LOGIN@ IDLE JCPU PCPU WHAT pavel tty7 19:56 38:54 1: s /usr/bin/gnome-session pavel pts/0 19: s 0.39s 0.08s w pavel pts/1 20:16 6: s 10.40s gnome-terminal root pts/2 20: s 1.04s 0.92s find / -name lisp Tento příkaz vám vypíše informace o využití počítače, tedy kdo je přihlášený a jakou úlohu má spuštěnu. Jak je možné se přesvědčit na předchozím výpisu, je uživatel pavel. Jak zjistit údaje o uživateli Jedním z dalších zajímavých příkazů je id. Zjistí, kdo je aktuálně přihlášený. A nejen to.

86 84 Kapitola 4: Základní konfigurace systému $ id uid=500(pavel) gid=500(pavel) skupiny=500(pavel) kontext=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 A co ještě: $ id pavel uid=500(pavel) gid=500(pavel) skupiny=500(pavel) Jak dlouho je systém spuštěný To, jak je dlouho systém spuštěný, můžete zjistit příkazem: $ uptime 21:25:57 up 1 day, 12:03, 2 users, load average: 0.07, 0.07, 0.16 Jak zjistit architekturu systému Někdy potřebujete zjistit (například pro instalaci dalších programů apod.) architekturu vaší distribuce. K tomuto účelu můžete použít arch a odpověď systému bude například i686 Stejného výsledku dosáhnete i použitím příkazu: uname -m a odpověď: i686 Jakou mám verzi jádra Opět použijete příkaz uname, ale tentokrát s parametrem -r. Tedy: uname -r A odpověď systému bude například: fc12.i686.PAE Pošta mezi uživateli a systémem Program mail čte nebo zasílá poštu všem uživatelům. Nejdná se o internetovou poštu zatím. Není na škodu se na tento program trochu podívat. Poštu vám může posílat i systém. K poště se dostanete jednoduše napsáním mail. Chcete-li napsat někomu poštu $mail pavel Subject: zprava posílám zprávu pomocí programu mail.warning: incomplete line - newline appended EOT

87 Údaje o uživatelích a systému 85 Jak vidíte, na posílání zprávy není nic složitého. Napíšete na řádek mail a jméno uživatele a systém se vás dotáže na předmět zprávy. Dále už píšete text zprávy. Pro ukončení textu odentrujete a pomocí kombinace kláves Ctrl+D vložíte konec souboru. Tím mail také odešlete. Jak si zprávu přečtu Opět zadáte příkaz mail, a pokud máte nové zprávy, objeví se vám výpis, kolik máte zpráv. V příkladu níže je nová zpráva jen jedna. Tuto zprávu otevřete pomocí klávesy Enter. $mail Heirloom mailx version /07/07. Type? for help. "/var/spool/mail/pavel": 1 message 1 new >N 1 pavel@xwcnly.pzbo Fri May 7 22:16 19/587 zprava? 1 Message 1: From pavel@xwcnly.pzbo Fri May 7 22:16: X-Original-To: pavel Delivered-To: pavel@xwcnly.pzbo Date: Fri, 07 May :16: To: pavel@xwcnly.pzbo Subject: zprava User-Agent: Heirloom mailx /07/07 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit From: pavel@xwcnly.pzbo (Pavel Kameník) posílám zprávu pomocí programu mail.? Znak? čeká na zadání některého z ovládacích příkazů. Pokud chcete zprávu vymazat, napíšete d. Pomocí písmen dp program mail smaže aktuální zprávu a otevře další. Jestliže máte zobrazenu zprávu a chcete přejít k další, napíšete next. Pro ukončení režimu o opuštění programu použijete klávesu q. Program mail má mnohem více voleb a nastavení, než zde máte uvedeno. Pro případné zájemce doporučuji manuálové stránky. Kam se pošta doručí Program mail ukládá novou poštu do adresáře /var/spool/mail/uzivatel. Pokud uzivatel v tomto adresáři žádnou zprávu nemá, své jméno nenajde. Pokud zpráva v tomto adresáři je, jedná se o textový soubor; a je čitelný například pomocí less. Kde je vaše schránka programu mail se můžete přesvědčit vypsáním proměnné MAIL: $echo $MAIL /var/spool/mail/pavel Kam se pošta ukládá Přečtenou poštu, kterou přímo nevymažete, ukládáte do souboru v domovském adresáři nazvaného mbox. O jejím obsahu se můžete přesvědčit, například opět vypsáním pomocí less. Poštovní zprávy se zde ukládají od nejstarší po nejnovější.

88 86 Kapitola 4: Základní konfigurace systému Jak často se pošta kontroluje O tom se můžete přesvědčit. Nastavení proměnné MAILCHECK slouží k nastavení doby dotazu shellu na novou poštu. Ve výchozím nastavení je to 60 vteřin. Nastavení můžete změnit editací proměnné: $export MAILCHECK=40 $echo $MAILCHECK 40 Tuto službu lze vypnout po zadání příkazu ve tvaru: $unset MAILCHECK Opětovné zapnutí provedete opět: $export MAILCHECK=40. Pošta podruhé program mutt Tento program nebývá standartně součástí systému a je potřeba jej doinstalovat. Má mnohem více možností, spolupracuje i s POP servery. Má příjemnější uživatelské rozhraní. Pokud potřebujete nějakého ového klienta v textovém režimu pracujícího nejen s lokální poštou, tento stojí za vyzkoušení. Obrázek 4.2: Program mutt V horní části okna máte pruh s malým menu. Po zprávách se pohybujete pomocí šipek a následně je pomocí klávesy Enter otevřete. Přímo v menu máte možnost zprávu uložit anebo smazat. Nemusíte si pamatovat, které písmeno co znamená, zde je vše formou jednoduchého menu. Pošta potřetí fetchmail Fetchmail je program, který pravidelně stahuje z poštovních serverů v Internetu poštu a ukládá ji do schránek. Následně můžete tyto zprávy otevřít například programem mutt. Každý uživatel potřebuje pro správné fungování programu ve svém domovském adresáři soubor nazvaný.fetchmailrc. Tento soubor má nastavenu konfiguraci pro příchozí poštu.

89 Práce s hardwarem 87 Ukázka souboru.fetchmailrc: defaults protocol pop3, keep, fetchall; poll "pop3.server.cz", user "pavel" password "mojeposta"; poll "pop3.server2.cz", user "paka", password "mojeposta"; V úvodní části nastavujete typ protokolu, který pošta používá. Keep anebo nokeep určuje, jestli se mají zprávy po stáhnutí ponechat na serveru. Keep znamená ponechat. Fetchall říká, že se mají stáhnou všechny zprávy, přečtené. Sekci nazvanou poll nastavujeme pro poštovní servery. Každý poštovní server má jednu sekci poll. Zde nastavíte jméno serveru a svůj login a heslo. Následně příkazem fetchmail spustíte stahování pošty. Pro čtení můžete použít například již zmiňovaný program mutt. Jestliže máte více uživatelů na jednom počítači, musíte jako root spustit démona přes startovací skripty a ten každých n vteřin kontroluje poštu. V tomto případě je konfigurace uložena na /etc/fetchmailrc. Práce s hardwarem Jak se můžu podívat na hardware nalezený systémem Jednou z cest může být například použití příkazu lspci. (Na některých systémech budete muset jako normální uživatel použít celou cestu /sbin/lspci nebo podobně.) Potom dostanete výpis: $/sbin/lspci 00:00.0 Host bridge: Intel Corporation Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller (rev 03) 00:01.0 PCI bridge: Intel Corporation Mobile 915GM/PM Express PCI Express Root Port (rev 03) 00:1c.0 PCI bridge: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 1 (rev 03) 00:1c.2 PCI bridge: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 3 (rev 03) 00:1d.0 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (rev 03) 00:1d.1 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (rev 03) 00:1d.2 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (rev 03) 00:1d.3 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (rev 03)

90 88 Kapitola 4: Základní konfigurace systému 00:1d.7 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (rev 03) 00:1e.0 PCI bridge: Intel Corporation Mobile PCI Bridge (rev d3) 00:1e.2 Multimedia audio controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (rev 03) 00:1e.3 Modem: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Modem Controller (rev 03) 00:1f.0 ISA bridge: Intel Corporation 82801FBM (ICH6M) LPC Interface Bridge (rev 03) 00:1f.2 IDE interface: Intel Corporation 82801FBM (ICH6M) SATA Controller (rev 03) 00:1f.3 SMBus: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller (rev 03) 01:00.0 VGA compatible controller: ATI Technologies Inc M24GL [Mobility FireGL V3200] (rev 80) 02:00.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5751M Gigabit Ethernet PCI Express (rev 11) 0b:00.0 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev 8d) 0b:02.0 Network controller: Intel Corporation PRO/Wireless 2200BG [Calexico2] Network Connection (rev 05) Pozor, tento příkaz vypisuje chipsety, které různá zařízení používají. Nevypisuje názvy zařízení. Někdy se vám může stát, že ve výpisu objevíte, že v Linuxu nepodporované zařízení používá stejný chipset jako jiné zařízení v Linuxu podporované. Tímto způsobem lze některé typy zařízení zprovoznit. Obdobným způsobem si můžete dělat výpis i pro jiná rozhraní než jen PCI. Pro USB rozhraní použijete příkaz lsusb, pro pcmcia karty zase příkaz lspcmcia. Pro SCSI zařízení se používá příkaz lsscsi. Informace o hardwaru podruhé hwinfo Další z variant, kterou můžete použít jako administrátor, je příkaz hwinfo. Jako normální uživatel musíte použít úplnou cestu, tedy: $ /usr/sbin/hwinfo Pokud zadáte příkaz bez dalších parametrů, vypíše se vám celé hardwarové osazení. Můžete si ale udělat výpis jen toho, co potřebujete, například: #hwinfo --memory 01: None 00.0: Main Memory [Created at memory.61] Unique ID: rdcr.cxwszfjvasf Hardware Class: memory Model: "Main Memory" Memory Range: 0x x7fe7efff (rw) Memory Size: 2 GB Config Status: cfg=no, avail=yes, need=no, active=unknown případně výpis pro disk je # hwinfo --disk; další z možností může být # hwinfo --wlan, # hwinfo --pci. Tento příkaz má mnoho dalších možností, o kterých se můžete přesvědčit použitím nápovědy, případně použitím # hwinfo --help.

91 Práce s hardwarem 89 Ještě vás upozorním na možnost výpisu použitím # hwinfo --short, výpis bude uspořádán přehledně do kategorii. Dozvím se i něco o BIOSu Použitím parametru --bios lze vypsat informace i verzi Biosu a spoustu dalších informací. Na výpisu níže je zobrazena jen malá část ze začátku výpisu. #hwinfo --bios 01: None 00.0: BIOS [Created at bios.186] Unique ID: rdcr.lzf+r4eghp4 Hardware Class: bios BIOS Keyboard LED Status: Scroll Lock: off Num Lock: off Caps Lock: off Parallel Port 0: 0x3bc Base Memory: 636 kb PnP BIOS: extended read supported BIOS32 Service Directory Entry: 0xfd760 SMBIOS Version: 2.33 BIOS Info: #0 Vendor: "IBM" Version: "1YET65WW (1.29 )" Date: "08/21/2006" Start Address: 0xdc000 ROM Size: 1024 kb Features: 0x d09df80 Existují i další možnosti Možností je vždy více, každá distribuce používá trochu něco jiného. Na některých distribucích můžete vyzkoušet například: # kudzu -p. Jinde vám zase kupříkladu ještě poslouží # lshw short Jak zjistím, jaké moduly jsou v paměti, v jádře Příkaz, který může být občas užitečný, vypisuje moduly obsažné v paměti a načtené do jádra a také jejich velikost udávanou v jednotkách (jedna jednotka má 4 kb). U některých modulů se objeví i výpis modulů odkazujících. # lsmod Soubor, kde jsou informace uloženy, se jmenuje /proc/modules.

92 90 Kapitola 4: Základní konfigurace systému Obrázek 4.3: Výpis hardwaru pomocí programu lshw -short Kde hledat dále Spoustu informací lze najít i v adresáři /proc: # cat /proc/ Lehce se můžete podívat, kolik souborů a podadresářů má adresář/proc. Každý z těchto souborů ukrývá užitečné informace: #cat /proc/partitions major minor #blocks name sda sda sda sda sda sda sda sda9 případně informace o cpu: #cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 13 model name : Intel(R) Pentium(R) M processor 2.13GHz stepping : 8 cpu MHz : cache size : 2048 KB fdiv_bug : no hlt_bug : no f00f_bug : no

93 Práce s hardwarem 91 coma_bug : no fpu : yes fpu_exception : yes cpuid level : 2 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov clflush dts acpi mmx fxsr sse sse2 ss tm pbe nx up bts est tm2 bogomips : clflush size : 64 power management: Užitečné informace existují i v podaresářích: #cat /proc/net/arp IP address HW type Flags HW address Mask Device x1 0x2 00:02:cf:d0:b3:0a * eth1 Podobně lze provést výpis všech I/O portů: cat /proc/ioports IRQ přerušení: cat /proc/interrupts DMA kanály: cat /proc/dma PCI zařízení: cat /proc/bus/pci/devices nebo zadáním příkazu lspci SCSI informace: cat /proc/scsi/scsi USB zařízení: cat /proc/bus/usb/devices cat /proc/bus/usb/drivers A tak podobně můžete zjišťovat další potřebné informace. Stav virtuální paměti Někdy můžete potřebovat zjistit stav virtuální paměti. Pomoci vám může utilita nazvaná vmstat. Tuto pomůcku spouštíte takto: $vmstat 3 5 Číslice za příkazem vám říkají, že požadujete pět měření v trojsekundových intervalech.

94 92 Kapitola 4: Základní konfigurace systému Obrázek 4.4: Výpis vmstat V přehledné tabulce můžete najít mimo jiné: sloupec r počet čekajících procesů připravených na spuštění sloupec b počet blokovaných procesů memory paměť (údaje v kb) spwd využití virtuální paměti free nevyužitá paměť buff paměť určená pro buffery cache paměť obsazená jako cache swap stránkovací soubor v kb/s io aktivita vstupně-výstupních operací, údaje v blocích za sekundu bi počet bloků přijatých bo počet bloků odeslaných in počet přerušení Jak tedy přidávat komponenty Než si pořídíte novou komponentu do počítače, je dobré se informovat, zda je tento typ podporován Linuxem. Je také užitečné podívat se na diskuzní fóra o možných problémech. Podle těchto informací pak vyberte vhodnou komponentu a tu potom přidejte do počítače. Skoro každý výrobce, který produkuje hw i pro Linux, má na svých stránkách postup instalace. Někdy se nepodaří zprovoznit hardwarové zařízení napoprvé, bude to možná chvíli trvat. Naštěstí většina komponent v dnešních dobách už pracuje bez problémů hned po připojení. Dříve tomu tak nebývalo.

95 KAPITOLA 5 Práce s diskem Jak na disk Nečekejte nějaké teoretické informace o tom, jak disk funguje, z čeho se skládá apod. Stačí, když si uvědomíte, že disk je médium, na které se ukládají data. Disk může být použitý buď celý, anebo se rozdělí na menší části, kterým se říká oddíly (partitions). Fyzických disků můžete mít k počítači připojeno několik typů, přes IDE rozhraní, přes SATA rozhraní nebo SCSI rozhraní. Podle tohoto typu se vám disk zobrazuje i v systému. Pokud si připojíte externí disk nebo flash disk, ty se budou zobrazovat jinak. Jak si můžu prohlédnout rozdělení disku, práce s fdiskem Na prohlížení, editaci, formátování a další operace použijete některý z programů. Zkusíte si fdisk, který je zastoupen snad na všech linuxových i unixových distribucích. Jelikož se jedná o velký zásah do systému a některé operace vám mohou přinést i ztrátu dat nebo havárii systému, je nutné abyste pracovali obezřetně a samozřejmě musíte být přihlášen jako root. Musíte také vědět, jaké disky máte na počítači a se kterým diskem hodláte provádět změny. Podívejte se na výčet uvedený níže, kde jsou popsány nejčastější varianty připojených disků:

96 94 Kapitola 5: Práce s diskem První disketová jednotka je pojmenována /dev/fd0. Druhá disketová jednotka je /dev/fd1. První disk na SCSI (podle čísel zařízení na sběrnici) bude /dev/sda. Druhý disk na SCSI (vyšší číslo na sběrnici) bude /dev/sdb atd. První CD mechanika na SCSI je /dev/scd0 nebo také /dev/sr0. Hlavní (master) disk na prvním IDE řadiči se jmenuje /dev/hda. Podřízený (slave) disk na prvním IDE řadiči je /dev/hdb. Master a slave diskům na druhém řadiči jsou postupně přiřazeny /dev/hdc a /dev/hdd. Novější IDE řadiče mají dva kanály, které se chovají jako dva řadiče. su root Po úspěšném přihlášení napište jen: # fdisk jmeno_disku V mém případě použiji příkaz ve tvaru fdisk /dev/sda Obrázek 5.1: Spuštění fdisk Tip Jestli se vám ukáže chybová hláška, že zařízení /dev/sdb neexistuje, špatně jste zadali jméno disku. Zjistěte si nejdříve, jak se váš disk jmenuje: buď jedním z výpisů hw konfigurace, anebo se podívejte do souboru /etc/fstab tam údaje najdete.

97 Jak na disk 95 Jak vidíte na obrázku, po úspěšném spuštění programu se vám objeví podobná tabulka. Pomocí jednoduchého menu vidíte, jaké operace máte k dispozici. Vybíráte písmena a tím procházíte volbou dál a dál. Zpět do úvodního menu se dostanete opět napsáním písmena m za dvojtečku. První, co provedete, je výpis současného nastavení napište p a stiskněte Enter. Potom napište m a opět stiskněte Enter. Tím jste si jednoduše vyzkoušeli ovládání tohoto programu. Jakmile hodláte program ukončit bez uložení změn napište q a stiskněte Enter. Výpis bude podobný tomu, který vidíte na dalším obrázku. Obrázek 5.2: Aktuální rozdělení disku Jak máte tento výpis číst, vám ihned naznačím. Výpis je opět v tabulce. V prvním sloupci Zařízení se můžeme dočíst, že můj disk se jmenuje sda a je rozdělen na tři části partition. První část se jmenuje /dev/sda1, druhá /dev/sda2 a tak dále. Ve druhém sloupci Zavádět zjistíte, která část disku je zaváděcí, z které části se provádí boot. Další sloupce označené jako Začátek a Konec vám ukazují, kde je začátek a konec oddílu disku. Číslo je udáváno v cylindrech (jak si můžete přečíst údaj výše, 1 cylindr má bajtů, což je 8,225 megabajtů). Zkuste si přepočítat třeba druhou část disku. Cylindrů = 24, 24 * 8,225 = 197,4 megabajtů. Důležitou informací je předposlední a poslední sloupec, ID a Systém. Tyto vám ukazují, jak je část disku naformátována a pro jaký operační systém je použita. Pokud byste chtěli zjisti více o formátech a o onom ID: Spusťte si fdisk /dev/jmeno_disku a v další nabídce napište písmeno l a stiskněte Enter. V tabulce se vám vypíší možné druhy formátování včetně čísla ID. Ještě pro doplnění: Pokud chcete rozdělení disku jenom prohlížet, napíšete příkaz ve tvaru: fdisk -l /dev/jmeno_disku Po výpisu se program ukončí. Jak vytvořím nový oddíl To už pro vás nebude tak složitý úkol. Spusťte si fdisk /dev/jmeno_disku

98 96 Kapitola 5: Práce s diskem Tip Písmenem n přejdete do další nabídky pro vytvoření nové části disku. V další nabídce se vás program zeptá, jestli chcete tuto část mít jako primární diskový oddíl anebo jako rozšířený oddíl. Po této volbě musíte zadat, na kterém cylindru bude začínat a kde končit, a tím zadáte velikost partition. (Část disku, kterou vybíráte, musí být volná, jinak vám program skončí chybou.) V dalších krocích nastavíte ještě ID svazku (jak má být naformátován) a vrátíte se do původního menu. Musíte si uvědomit, že akce nebude úplná a neprovede se do té doby, než program ukončíte s tím, že se změny mají zapsat na disk. Teprve v tomto okamžiku je operace nevratná a případná zkáza je dokonána. Proto je dobré se nejprve třikrát přesvědčit o tom, co děláte. Jak smažu oddíl Opět jednoduchý postup: fdisk /dev/jmeno_disku Volbou p vytisknete aktuální nastavení vyberete část, kterou hodláte odstranit. Zadáním písmena m se dostanete do menu a nyní písmenem d budete požadovat odstranění diskového oddílu. Program po vás bude požadovat číslo diskového oddílu. Toto číslo se počítá od jedné ve výpisu rozdělení disku shora dolů. Zadáte číslo oddílu, který hodláte odstranit, a klávesou Enter potvrdíte. Zatím se stále nic neděje a systém se nebrání, ani když hodláte odstranit systémovou část disku. Dalším výpisem se přesvědčíte, zdali je odstraněna ta správná část, a teprve až potom změnu potvrdíte z hlavního menu písmenem w. Následně budou změny zapsány na disk a program se ukončí. Jestliže jste se spletli Obrázek 5.3: Program cfdisk

99 Jak na disk 97 a nechcete změny provést, nic se neděje. Pomocí písmena q z hlavního menu ukončíte program bez zapsání změn na disk. Následně můžete program spustit znovu a údaje zadat správně. Existují i některé jiné programy pro dělení disku. Některé jsou pouze textové, jiné mají i grafickou nadstavbu. Fdisk je ale opravdu téměř ve všech distribucích. Hodně rozšířeným je i program cfdisk. Zkuste si i program cfdisk Tento program bude pro někoho přijatelnější. Spouštíte pouze program, nezadáváte jméno disku. Musíte spouštět samozřejmě jako root. # cfdisk Ovládání je velice jednoduché. Nahoře vidíte výpis jednotlivých částí disku, dále vidíte, je-li bootovací. Vyčtete, jaký typ oddílu to je a jak je naformátován. Dole pod tímto výčtem je série jakoby tlačítek, po kterých se pohybujete šipkou doprava a doleva. Pomocí šipek vyberete volbu a po stisku klávesy Enter se volba provede. Máte zde tato tlačítka: Nápověda jednoduchá pomoc. Nový vytvoření nového oddílu; pomocí klávesy Enter se pohybujete v menu a zadáváte, je-li partition primární nebo rozšířená, zadáte velikost v megabajtech a nastavíte, jestli je oddíl bootovatelný. Musíte nastavení ukončit tím, že vyberete volbu uložit. Jinak o nastavení přijdete. Tisk touto volbou můžete nastavit třeba tisk do souboru. Ovládání je opět jednoduché a dovede vás k tomu, co potřebujete. Konec ukončení programu; pozor, bez uložení. Jednotky zde můžete vybírat z více jednotek. Uložit zde musíte potvrdit a uložit provedené změny. Pokud bych měl zmínit nějaký grafický program, možná bych zmínil program Qtparted. Vyzkoušejte a rozhodněte se, co, kdy a kde budete používat. Jak zjistím, jaké disky mám na počítači Máte několik variant: Zkusíte se podívat do souboru /etc/fstab. V tomto souboru je zapsáno, kam jsou které části připojeny. Jako superuživatel spustíte příkaz fdisk l. Jako superuživatel spustíte cfdisk.

100 98 Kapitola 5: Práce s diskem Formátování oddílu Nejprve je dobré si vytvořit odkládací prostor, tedy swap. Velikost této jednotky se obvykle dává jako dva až dvaapůlkrát větší oddíl, než máte paměť RAM. Nejprve si vytvoříte oddíl odpovídající velikosti. Poté příkazem # mkswap /dev/hda2 vytvoříte oddíl swap. Jednoduše zadáte tento příkaz a uvedete oddíl, který bude připraven jako odkládací prostor. Pokud se chcete podívat, jaký oddíl swap je připojený, použijete příkaz: # swapon -s Filename Type Size Used Priority /dev/hda2 partition Odkládací část můžete i vypnout, pokud použijete příkaz: # swapoff /dev/hda2 Opět musíte uvést oddíl, kde je odkládací prostor. Můžete ale také využít souboru /etc/fstab. Pokud v tomto souboru máte údaj o odkládacím prostoru, stačí, když zadáte příkaz swapoff s parametrem -a, tedy: swapoff -a Tímto příkazem vypnete všechny odkládací oblasti uvedené v souboru fstab. Přesvědčte se, že oddíl je opravdu vypnutý. # swapon -s Filename Type Size Used Priority Odkládací oddíl můžete opět zapnout dvěma způsoby. Pokud máte swap oddíl uvedený v /etc/fstab souboru, stačí, když použijete příkaz swapon s parametrem -a. Pokud v tomto souboru údaj o swap oddílu nemáte, musíte zadat příkaz i s označením oblasti, tedy: # swapon /dev/hda2 Jak naformátovat nový oddíl Podobně jako odkládací oddíl můžete naformátovat i další oddíly. K formátování se používají příkazy mkfs, případně další příkazy podle druhu formátování. Jestliže použijete variantu s příkazem mkfs, musíte zadat oddíl, který hodláte formátovat, a také je dobré zadat, jak hodláte oddíl naformátovat. # mkfs -t ext4 /dev/hda2

101 Formátování oddílu 99 Druhým způsobem je, že spustíte přímo druh formátování pomocí jednoho z příkazů: # mkfs. mkfs.cramfs mkfs.ext3 mkfs.ext4dev mkfs.ntfs mkfs.xfs mkfs.ext2 mkfs.ext4 mkfs.msdos mkfs.vfat Dále musíte opět uvézt oddíl, který hodláte formátovat. Musíte mít oddíl odpojený, jinak se příkaz neprovede. (Oddíl odpojíte příkazem umount.) # mkfs.ext4 /dev/sda9 mke2fs (22-Aug-2009) /dev/sda9 je připojen; nebudu tady vytvářet systém souborů! Jak si můžu připojit diskový oddíl Téměř denně potřebujete některý z oddílu disku připojit nebo odpojit. Proč se to dělá? V tomto je Linux úžasný systém. Důvodů je hned několik. Jednak máte například od sebe odděleny systémové soubory od uživatelských dat. Pokud potřebujete opravovat jen některou z částí systému, ostatní oddíly odpojíte. Uživatelská data můžete mít uložena na samostatné části disku a z hlediska zálohování, kopírování a pod. je to věc usnadňující život. V systému Linux máte možnost vytvořit si adresář a k tomuto adresáři připojit třeba dodatečně celý nový disk. Tyto operace provádíte nejen s lokálními disky, ale také ze síťovými disky nebo s jinými médii CD-ROM, USB disk, zálohovací zařízení. Tak jak na to? Základním příkazem, který budete používat, je mount. Obrázek 5.4: Výpis mount Když zadáte tento příkaz bez parametrů, dostanete výpis aktuálně připojených zařízení. Abyste se v tomto výpisu alespoň trochu orientovali: Nejprve hledáte v levé části výpisu označené médium, například /dev/sda3, dále můžete, číst že je připojen na / (což je kořenový adresář). Nebo o pár řádků níže můžete nalézt /dev/sda2 on /boot to značí, že část disku označená sda2 je připojena namountována k adresáři /boot. To může být právě ta varianta, jelikož v tomto adresáři je aktuální jádro operačního systému a v případě aktualizace opravy nebo povýšení verze lze ostatní části odpojit a můžete pracovat jen s tímto adresářem. Dále na řádku patřícím k /dev/sda3 můžete číst, že je naformátován jako ext3, a v závorce jsou další parametry, ke kterým se postupně dostanete.

102 100 Kapitola 5: Práce s diskem Důležité jsou dva soubory, kde se ukládají informace o připojených zařízeních. Jedná se o soubory /etc/mtab a /etc/fstab. V souboru mtab se ukládají údaje o aktuálním připojení souborových systémů. V souboru /etc/fstab provádíte zápis údajů, pokud potřebujete připojit jiný souborový systém. Podívejte se na některé možnosti. Zapisovat a opravovat údaje tohoto souboru může opět pouze správce nejvyšší root. Pokud potřebujete připojit některý souborový systém, můžete to provést dvěma způsoby: Ručně zadáním příkazu na okamžité připojení nehodí se u pravidelně opakovaných připojení. Příkaz je ve tvaru # mount /dev/fd0 /mnt/floppy -t vfat. Říká vám: připoj zařízení /dev/fd0 (disketová mechanika) do adresáře /mnt/floppy. Parametr -t vfat vám zase říká, jaký formát má systém na médiu očekávat. Editací souboru /etc/fstab princip je téměř totožný, pouze s tím rozdílem, že nevypisuji příkaz, ale systém si načte informace za mne v souboru a připojení provede. Soubor se dá rozdělit opět do sloupečků, údaje se oddělují tabulátorem: co budeme připojovat (např. /dev/fd0) kam budeme připojovat (adresář) (/mnt/floppy) jaký je typ souborového systému (fat32, nfs, ntfs ) další parametry bude se zálohovat (používá se u příkazu dump sloužícího k zálohování svazku, 1 zálohovat, 0 nezálohovat) může se nastavit, jako kolikátý se bude systém kontrolovat po startu (Používá program fsck jako kolikátý bude svazek kontrolován. Jednička kořenový svazek /, dvojka ostatní a nula nekontrolované.) Další parametry: Zde se můžete setkat s celou řadu různých parametrů pro různé souborové systémy. Parametry se od sebe oddělují čárkou. Mezi hlavní patří: noauto (nepřipojí svazek automaticky při startu) users (i běžní uživatelé mohou s tímto svazkem pracovat) codepage (znaková sada pro názvy souborů) iocharset (znaková sada, do které se budou převádět názvy souborů) noexec (nespouštěj soubory) umask (nastavení práv u souborů) ro (read only pouze ke čtení) rw (read write čtení i zápis) Nyní už budete schopni porozumět tomu, co je v tomto souboru uloženo. Podívejte se na svůj fstab a zkuste porozumět, jaké kde máte parametry. Můžu připojený souborový systém i odpojit? Něco takového musí samozřejmě fungovat, jinak by celá tato struktura byla k ničemu. Na odpojení souborového systému použijete příkaz: umount /adresar_kam_pripojeno

103 Formátování oddílu 101 Například mohu provést příkaz umount /mnt/fd0 nebo umount /boot Nyní po spuštění příkazu mount bez parametrů ve výpisu už nenajdete řádky vztahující se k těmto adresářům. Při opětovném připojení stačí zadat jenom: mount /mnt/fd0 nebo: mount /boot Toto lze uplatnit pouze v okamžiku, je-li v souboru /etc/fstab napsán řádek o tom, co se má do tohoto adresáře připojit. Lze nastavit, aby směl připojovat souborový systém i běžný uživatel? Ano, lze to nastavit a provede se nastavení v souboru /etc/fstab: /dev/cdrom /mnt/cdrom iso9660 users 0 0 Do souboru musíte dopsat users a tato skupina uživatelů může připojit takový souborový systém. Použití by asi bylo pro připojování disketových a cd mechanik. Běžný uživatel může mechaniku připojit. Po ukončení práce lze provézt i odpojení umount /mnt/cdrom a následně eject pro vysunutí média. Jak můžu připojit disk formátovaný NTFS Nejprve musíte mít nainstalovaný balíček utilit nazvaný ntfstool. U některých distribucí už je součástí základní instalace, někde musíte doinstalovat. Můžete se přesvědčit o tom, zda váš systém podporuje práci s NTFS oddíly, zadáním příkazu $ ntfsinfo V Pokud váš systém podporuje práci s NTFS, objeví se vám výpis s číslem verze, např.: ntfsinfo v (libntfs 9:0:0)... V tomto případě můžete s disky pracovat a provádět příkazy mount a umount a také zapsat volby do souboru fstab.

104 102 Kapitola 5: Práce s diskem Po úpravách v souboru /etc/fstab by váš soubor měl obsahovat asi tohle: UUID=f9a4299f-c6c a-fd7fc610b361 / ext4 defaults 1 1 UUID=b3414e11-d7c7-4e28-ba06-8d30d26a1b0c /boot ext4 defaults 1 2 UUID=59fdf9f7-8dc8-41cf-8d4a dcc3 swap wap defaults 0 0 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode= sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0 /dev/sda1 /mnt/win_c ntfs auto 0 0 /dev/sda5 /mnt/win_d ntfs auto 0 0 /dev/sda6 /mnt/win_e ntfs auto 0 0 Vás v tomto okamžiku budou zajímat poslední přidávané řádky, které praví: Zařízení /dev/sda1 to je část disku, kde je nainstalován systém Windows XP anebo je zformátována na NTFS. Pokud nevíte, kterou část disku máte použitu, spusťte třeba už známé cfdisk Vrátíme se k ukázkové části disku označené jako /dev/sda1. Dále čtete, že tato část disku je připojena do adresáře /mnt/win_c (adresář musí samozřejmě existovat, jinak připojení skončí chybou). V dalším sloupci vidíte, že formát svazku je ntfs. Auto značí, že se svazek bude po každém startu automaticky připojovat (pokud nechcete tuto možnost využít, dáte volbu noauto). Dále si můžete pohrát s ostatními parametry a nastavit třeba, že běžní uživatele mohou manipulovat s připojováním a odpojováním, případně další parametry dle popisu výše. Pokud je vše v pořádku, musí vám fungovat i manuální práce se svazky. umount /mnt/win_c mount /mnt/win_c Jak zjistím volné místo na oddílech disku K tomuto vám poslouží příkaz df. $df Souborový systém 1K bloků Použité Volné Uži% Připojeno do /dev/sda % / udev % /dev /dev/sda % /mnt/c /dev/sda % /mnt/d /dev/sda % /mnt/e V přehledném výpisu vidíte všechny požadované údaje, označení souborového systému, počet bloků, kolik je jich použitých, kolik jich zbývá a využití v procentech. V posledním sloupci najdete ještě informaci o tom, kam je připojeno. Výpis můžete provést i pro jeden oddíl: $ df /dev/sda5 Jak můžu zjistit velikost jednotlivých adresářů Při použití příkazu du dostanete výpis, kolik bloků zabírá daný adresář a jeho podadresáře. Zadáte-li příkaz bez parametrů, provede se výpis domovského adresáře a velikost jeho podadresářů. Na konci výpisu máte velikost v kb.

105 Formátování oddílu 103 Výpis pro jeden adresář provedete takto: $du kniha/ 9412 kniha/obrazky kniha/ Adresář kniha má jeden podadresář obrazky a můžete si přečíst jejich velikost, tedy adresáře kniha i podadresáře obrazky. Příkaz má i některé další volby: pomocí parametru -b (du -b kniha) dostanete výpis v bajtech pomocí parametru -c je na závěr vypsána i celková velikost pomocí parametru -r vypíše zprávu, pokud soubor nebo podadresář nelze otevřít pomocí parametru -s se vypíše pouze celková velikost adresáře Jak připojím síťový disk Nejprve musíte vědět, k jakému disku se připojujete, je-li počítač nebo server na platformě Windows anebo na platformě Unix Linux. V první variantě zkuste použít Sambu a ve druhém případě NFS. Podíváme se na obě varianty. Připojení sdíleného adresáře Windows Potřebujete-li připojit sdílený adresář (temp) z počítače ( ), kde máte nainstalovány Windows, použijte například tento postup: $ smbclient -U pavel // /temp Enter pavel's password: Domain=[XCNU93752RG] OS=[Windows 7 Professional 7600] Server=[Windows 7 Professional 6.1] smb: \> dir. D 0 Thu May 27 21:48: D 0 Thu May 27 21:48: antarctica_006.jpg A 4149 Wed Sep 19 09:37: antar_g_920.jpg A Wed Sep 19 09:34: ext47680 D 0 Wed May 19 22:05: blocks of size blocks available smb: \> Předpokladem je, že máte nainstalovánu Sambu. Dále používáte základní příkazy jako třeba u FTP přenosu. Možnosti, které příkazy můžete použít, dostanete, pokud napíšete: smb:\> help nebo příkaz: smb: \>?? allinfo altname archive blocksize cancel case_sensitive cd chmod chown close del dir du echo exit get getfacl hardlink help Zde vidíte jen část příkazů, které můžete použít. K prohlížení obsahu složky použijete buď ls, anebo dir, k přepínání mezi složkami slouží cd adresar.

106 104 Kapitola 5: Práce s diskem Adresář opustíte a připojení ukončíte zadáním příkazu quit a nebo exit Jak připojit Windows adresář K tomuto účelu využijte buď příkazu smbmount, anebo, stejně jako v tomto příkladu, mount.cifs # mount.cifs // /temp /mnt/temp -o username=pavel Password: $ cd /mnt/temp/ $ ls antarctica_006.jpg antar_g_920.jpg ext47680 Adresář je opravdu připojený. O tom se můžete přesvědčit i vypsáním mount. $ mount... // /temp on /mnt/temp type cifs (rw,mand) K automatickému připojení adresáře lze opět využít soubor /etc/fstab. Připojení pomocí NFS Sdílený disk, adresář samozřejmě lze také připojit i na Unix/Linux systémech. Podívejte se, jak na to. Na počítači, který poskytuje adresáře, musí běžet služba NFS server. Nejdříve musíte na systému, kde máte sdílené disky, povolit službu nfs. O tom, zda je povolena, se přesvědčíte jednoduše: $ rpcinfo -p program vers proto port service tcp 111 portmapper tcp nlockmgr udp 2049 nfs udp 2049 nfs udp 2049 nfs udp mountd tcp mountd udp mountd Ve výpisu vás zajímají pouze řádky, které obsahují nfs a mountd. Pokud zde chybí, službu nfs spuštěnu nemáte. Služby NFS například spustíte, pokud máte nainstalovánu podporu, takto: # service nfs start

107 Formátování oddílu 105 Následně se vám musí služby nfs a mountd spustit. Jako druhý krok musíte nastavit, který adresář budete sdílet. Toto nastavíte v souboru /etc/exports #more /etc/exports # /home/pavel (insecure,rw) /home PC1(rw) PC2(rw) PC3(rw) /usr/x386 PC3(ro) PC2(ro) PC1(ro) /home/ftp (ro) Pro vysvětlení se podívejte na výpis níže, co některé ze zkratek znamenají: insecure použijete pro neautorizovaný přístup z tohoto počítače. root_squash na zadaných hostitelích zablokují pro superuživatele speciální přístupová práva. no_root_squash nebudou se mapovat požadavky uživatele, který má UID rovno 0. Ve výchozím nastavení je zapnuto. ro pouze v režimu pro čtení, implicitně zapnuto. rw v režimu pro zápis i čtení. Nejprve se uvádí sdílená složka a následně komu povolujete přístup a s jakými oprávněními. Odkud chcete data číst, stačí zadat pomocí příkazu # mount -t nfs SERVER:/home/pavel /mnt/pavel A sdílený adresář se vám připojí do adresáře /mnt/pavel. Tuto činnost můžete opět automatizovat záznamem v souboru /etc/fstab, kam například dopíšete řádek: SERVER:/home/pavel /mnt/pavel nfs defaults 0 0 Server můžete zadávat jako jméno, pokud u vás funguje DNS, anebo ve formě IP adresy. Jak na kontrolu disku Většinu oprav si provede systém sám při startu, ale někdy se může hodit i následná kontrola. Kontrolu provedete použitím příkazu fsck. Musíte mít práva superuživatele roota. Nejprve si opět musíte uvědomit, že se jedná o zásah do systému, proto tuto operaci nemůžete provádět vždy. Pokud se pokusíte v normálním režimu spustit příkaz fsck, systém vás upozorní, že kontrolu nelze provádět na připojených jednotkách. Pokud se jedná o druhý disk, nic se neděje. Disk si odpojíte a kontrolu provedete. Pokud se ale jedná o systémový disk, musíte postupovat jinak. Nejjednodušší řešení je nabootovat z některého cd a na disku spustit fsck. Tento příkaz má i některé parametry. Například A, příkaz ve formátu fsck A otestuje všechny souborové systémy uvedené v /etc/fstab. Pokud k písmenu A přidáte i písmeno R, rozšíříte příkaz. Opět se budou testovat všechny souborové systémy uvedené v /etc/fstab, ale bez kořenového adresáře /.

108 106 Kapitola 5: Práce s diskem Parametrem V zapnete podrobný režim. A ještě bych uvedl prametr -r, ten zapne potvrzování. Před jakoukoliv opravou se vás zeptá, jestli může provést opravu.pokud použijete parametr -t file_system, bude provádět kontrolu pouze na uvedeném souborovém systému, ostatní vynechá (např. fsck t ext3). Podívejte se na krátkou ukázku: linux-kl2e:/home/pavel # fsck -t ext2 fsck z util-linux-ng 2.16 e2fsck (22-Aug-2009) /dev/sda2 je připojen. VAROVÁNÍ!!! Spuštění e2fsck na připojeném systému souborů může způsobit VÁŽNÉ poškození systému souborů. Chcete opravdu pokračovat (a/n)? ne kontrola přerušena. linux-kl2e:/home/pavel # umount /dev/sda2 linux-kl2e:/home/pavel # fsck -t ext2 fsck z util-linux-ng 2.16 e2fsck (22-Aug-2009) /dev/sda2: čistý, 45/50400 souborů, 26282/ bloků linux-kl2e:/home/pavel # Nejprve se pokouším provést test na části disku naformátované ext2. Systém najde část disku, která je naformátovaná jako ext2, a napíše mi varování. Zeptá se, jestli chci opravdu pokračovat. Já si netroufnu pokračovat, kontrolu přeruším. Odpojím část disku pomocí: # umount /dev/sda2 Přkaz na kontrolu spustím znovu. A tentokrát proběhne test a objeví se výpis: /dev/sda2: čistý, 45/50400 souborů, 26282/ bloků Následně musím opět odpojenou část připojit: mount /dev/sda2 Kontrola vadné bloky na disku Další možností kontroly disku je otestovat disk nebo část disku na vadné bloky. linux-kl2e:/home/pavel # badblocks -v /dev/sda3 10 Ověřuji bloky 0 až 10 Hledám špatné bloky (test jen pro čtení)hotovo Průchod dokončen, nalezeno 0 špatných bloků. linux-kl2e:/home/pavel # badblocks -v /dev/sda Ověřuji bloky 0 až 1000 Hledám špatné bloky (test jen pro čtení)hotovo Průchod dokončen, nalezeno 0 špatných bloků. linux-kl2e:/home/pavel # V ukázce se můžete podívat, jakým způsobem spustíte test, zda disk neobsahuje vadné bloky. Použijete příkaz badblocks, parametr -v ( ukecaný režim). V mnoha případech se používá tento parametr pro podrobný výpis činnosti programu, příkazu. Za parametrem -v napíšete disk nebo část disku, kde

109 Formátování oddílu 107 se bude testovat. Číslo 10 na konci příkazu vám udává počet bloků, které se budou testovat. Pokud neudáte žádné číslo, bude se testovat celý oddíl nebo disk a to může trvat někdy i hodně dlouho. Test můžete přerušit pomocí kláves Ctrl + C. Další informace o disku Můžete zkusit zjistit další informace o disku a o jeho stavu. Pokud váš systém poporuje S.M.A.R.T., použijte příkaz smartctl jako v ukázce. linux-kl2e:/home/pavel # smartctl -i /dev/sda smartctl r2872~ [i686-pc-linux-gnu] (opensuse RPM) Copyright (C) by Bruce Allen, === START OF INFORMATION SECTION === Device Model: VBOX HARDDISK Serial Number: VB1b cba55693 Firmware Version: 1.0 User Capacity: bytes Device is: Not in smartctl database [for details use: -P showall] ATA Version is: 6 ATA Standard is: ATA/ATAPI-6 published, ANSI INCITS Local Time is: Wed Mar 24 00:48: CET SMART support is: Unavailable - device lacks SMART capability. A mandatory SMART command failed: exiting. To continue, add one or more '-T permissive' options. linux-kl2e:/home/pavel # Díky onomu parametru i zjistíte: typ disku sériové číslo verzi firmwaru kapacitu disku informace o výrobci informaci o tom, zda disk podporuje S.M.A.R.T. a zda je zapnuto Pokud chcete S.M.A.R.T. vypnout anebo naopak zapnout, použijete příkaz ve tvaru: smartctl s on /dev/sda smartctl s off /dev/sda Můžete také rychle zjistit, v jakém stavu váš disk je. Použijete příkaz ve tvaru: smartctl H /dev/sda Pomocí smartctl můžeme spouštět testy zařízení. S.M.A.R.T. zařízení umožňují tři druhy testů: první test jenoduchý online test: bez vlivu na výkon zapíná se automaticky pomocí volby -s on, při zapnutí podpory S.M.A.R.T. druhý test offline test může ovlivnit výkon zařízení, pomocí parametru -t offline jej spustíme jednorázově, pomocí volby -o pravidelně (asi po 4 hodinách). Řada dnešních zařízení jej podporuje, i když je uváděn jako zastaralý.

110 108 Kapitola 5: Práce s diskem třetí test selftest spouští se pouze jednorázově. Volba -t short spustí kratší variantu, volba -t long spustí delší variantu testu. Na základě výpisů, se můžete přesvědčit o stavu vašeho zařízení pomocí příkazu ve tvaru: # smartctl -l error # smartctl -l selftes Tyto druhy testu by měly stačit pro uznání reklamace vadného disku. Záloha dat Jistě uznáte, že bez zálohy dat se v dnešní době neobejdete. Existuje opět několik možností, jak data zálohovat. Zkusím nastínit alespoň některé. Důležitá data je nejlépe zálohovat minimálně na dvou místech a pravidelně. Pokud zálohujete data na stejný disk, na kterém jsou původní data, nedá se hovořit o záloze. Sice pokud z nějakých příčin poškodíte originální soubor, můžete jej nahradit, ale v případě havárie disku nemáte vůbec nic. Při dnešních možnostech si lze pořídit externí velkokapacitní média a na ně zálohovat, případně softwarově pomocí několika disků vytvářet RAID. Vypalování na CD nebo DVD také není na závadu. Při uložení dat na serveru někde na síti už musíte přemýšlet, jaká data ukládáte a kdo všechno se k těmto datům může dostat. Nejjednodušší zálohování Pokud se jedná jen o jednotlivé soubory, je jednoduchou metodou například použití pouze přesměrování: cat zalohovny_soubor > /dev/kam_chci_zalohovat Opačně můžeme samozřejmě dostat soubor z jiného media na disk: cat /dev/odkud_chci_data > /home/uzivatel/kam_chci_data Tuto ukázku berte jako hodně teoretickou. Můžete mít externí médium někam přimountované nebo můžete být připojeni k síti pomocí samby a podobně. Další způsob zálohování příkaz tar O tomto druhu archivování už jsme si povídali v sekci archivování. Ještě jednou připomenu, že program tar sám o sobě vytváří sice archiv, ale ne komprimovaný. Komprimovaný archiv vytvoříte rozšířením příkazu a použitím některého komprimačního programu. Zálohováni programem cpio Program cpio, stejně jako program tar, pracuje se vstupními soubory a umí pracovat také s archivy. Ze svého vstupu čte tyto soubory, vkládá je do archivu a výsledný archiv pošle na svůj výstup. Podívejte se na příklad: $ls dokument dopisov dopis1 dopis3 dopis5 skript1 vstup dopiso dopisp dopis2 dopis4 kralik skript2

111 Formátování oddílu 109 Máte adresář s důležitými soubory: $find. -name "dopis*" cpio -ocv > zaloha1.cpio./dopisov./dopis3./dopis1./dopis4./dopis2./dopiso./dopis5./dopisp 3 blocks Provedete zálohu do archivu zaloha1.cpio. Výběr souborů k zálohování můžete provést i pomocí příkazu ls: ls cpio -ocv >../newfile $ls dokument dopisov dopis1 dopis3 dopis5 skript1 vstup dopiso dopisp dopis2 dopis4 kralik skript2 zaloha1.cpio $rm dopis* $ls dokument kralik skript1 skript2 vstup zaloha1.cpio Nechtěným smazáním ztratíte důležité soubory. Provedete obnovu z archivu, například takto: $cat zaloha1.cpio cpio -icvd "dopis*" dopisov dopis3 dopis1 dopis4 dopis2 dopiso dopis5 dopisp 3 blocks $ls dokument dopisov dopis1 dopis3 dopis5 skript1 vstup dopiso dopisp dopis2 dopis4 kralik skript2 zaloha1.cpio Dokumenty jsou v původním stavu před zálohou. Nyní se ještě podíváte na některé parametry použité v ukázce. Při vytváření archivu to byly parametry: -o archivuje soubory uvedené na standartním vstupu. -c čte a zapisuje záhlaví archívu jako ASCII znaky. Tohle se vám může hodit v případě, že zdrojový a cílový počítač má jinou architekturu. -v upovídaný režim, vypisuje co udělal.

112 110 Kapitola 5: Práce s diskem Při obnově zde přibyly další dva parametry: -i kopíruje soubory z archivu na disk. -d vytváří adresáře podle potřeby. Můžete použít ještě některé další volby, např. -p zkopíruje soubory do jiného adresáře na stejném počítači, cílové cesty jsou brány relativně k adresáři. Tohle jsou jen některé možnosti; podívejte se do manuálových stránek, kde najdete kompletní popis. Spouštění plánovaných operací Některé úkoly a operace, které se často se opakují, potřebujete spustit v určitém čase, pravidelně. Podívejme se nejprve na spouštění příkazů pomocí cron tabulky. Jako root máte možnost zapisovat do souborů /etc/cron* příkazy, které se budou opakovat v pravidelných intervalech, podle jmen adresářů (každou hodinu, denně, týdně, měsíčně). Každý uživatele si může vytvořit svůj soubor crontab a zde si nadefinovat své úkoly. Každý příkaz v souboru crontab je na samostatném řádku. Řádek začíná skupinou čísel. První číslo značí minuty v intervalu 0 59, druhé číslo hodiny v intervalu 0 23, třetí číslo den v měsíci v intervalu 1 31, čtvrté číslo měsíc 1 12 a páté číslo den v týdnu v intervalu 0 6, kde 0 je neděle. Pro jednotlivé hodnoty lze použít i pomlčku, ta značí interval od do, anebo hvězdičku, která označuje libovolnou hodnotu. Jak mám tedy vytvořit úlohu? Úlohu vytvoříte zadáním příkazu: $ crontab -e Tímto příkazem otevřete svůj soubor crontab a do něj dopíšete úkoly. Následně soubor uložíte. Prohlížet svůj soubor crontab můžete použitím parametru -l. $crontab -l # DO NOT EDIT THIS FILE - edit the master and reinstall. # (/tmp/crontab.xxxxpisc68 installed on Wed May 5 11:58: ) # (Cron version V $Id: crontab.c,v /01/23 18:56:42 vixie Exp $) 0 12 * * * cp /home/pavel/dopis1 /home/pavel/zaloha/dopis1 Zde se můžete podívat na vytvořený úkol má se každý den ve 12:00 zkopírovat soubor dopis1. Jak mám úlohu odstranit? Pokud máte v crontab více úkolů, odtranění jednoho úkolu provedete editací crontab -e. Pokud budete chtít svůj crontab vymazat celý, provedete tento úkol přidáním parametru crontab -r. Jak se dostane root k mému crontab? Superuživatel root se může dostat k libovolnému crontab kteréhokoliv uživatele použitím příkazu:

113 Formátování oddílu 111 # crontab -u uzivatel -l Tyto soubory může samozřejmě editovat i mazat. Spuštění úloh v čase příkaz at Příkaz at spouští určené akce v daném čase a datu. Datum není povinné. Crontab a cron se využívá většinou u serverů anebo u počítačů trvale spuštěných. Příkazy ke spuštění jsou systémem buď čteny ze vstupu, anebo ze souboru. Vstup je ukončen pomocí znaku konce souboru EOF. Nejprve musíte spustit daemona atd. Pokud tak neučiníte, systém vás upozorní po zadání úlohy, že daemon neběží. #service atd start Starting service at daemon Nebo kontrola stavu: done #service atd status Checking for at daemon: running Nyní můžete přistoupit k zadávání úlohy: $at 8:15 warning: commands will be executed using /bin/sh at> ls -l /home/pavel at> <EOT> job 3 at :15 Můžete si ověřit, zda je úloha zadána pomocí parametru -l: $at -l :15 a pavel Jak můžu najít otevřené soubory? Můžete provést výpis všech otevřených souborů pomocí příkazu Podle parametrů, můžete sledovat jen některé procesy, některé deskriptory souborů v procesu nebo jen některá síťová připojení. # lsof Zajímavější by mohlo být použití tohoto příkazu spolu s parametry: Najdete si podezřelý proces pomocí příkazu ps -ef. Zde zjistíte PID. Následně použijete příkaz: # lsof -p PID Ve výpisu se dozvíte, které soubory má tento proces otevřeny. Chcete-li znát velikost otevřených souborů, pomůže vám k tomu: # lsof -s

114

115 KAPITOLA 6 Práce se sítí Zjištění konfigurace Mám nebo nemám IP adresu, jaká je MAC adresa Než se začneme zabývat problematikou sítí, alespoň něco stručného na úvod, co byste si měli uvědomit. Slibuji: žádná dlouhá teorie, pouze stručně. Problematikou sítí a všeho, co se kolem nich motá, se zabývá opravdu hodně knih a jiných materiálů na Internetu. Každé síťové rozhraní potřebuje ke své komunikaci IP adresu. Kolik máte síťových rozhraní, tolik byste měli mít IP adres. Síťové rozhraní může být : klasická síťová karta na připojení pomocí kabelu WiFi Bluetooth Virtuální počítač a jiné virtuální připojení Jednotlivá síťová rozhraní mají svoji hardwarovou adresu MAC adresu. Tato adresa musí být v segmentu sítě unikátní, jedinečná. Každý počítač má své jméno tzv. hostname. Toto jméno slouží mimo jiné k jednodušší komunikaci mezi počítači zapamatuje si je snadněji než IP adresu.

116 114 Kapitola 6: Práce se sítí DHCP adresy mohou být buď statické (pevně nastavené), anebo dynamické (něčím přiděleny po spuštění operačního systému). DHCP server je zařízení, které adresy přiděluje dynamicky, uchovává si záznamy o přidělených adresách, času aktivace, čas vypršení přidělené adresy apod. IP adresy mohou být veřejné jsou to adresy v Internetu které jsou, jedinečné, nesmí se opakovat. Tyto adresy jsou přidělovány a záznamy o nich jsou evidovány. IP adresy se také nesmí opakovat v jednom segmentu sítě. IP adresu nastavujete; MAC adresa je nastavena výrobcem, měnit lze pouze v některých případech. Segmenty sítě se od sebe oddělují například směrovači. IP adresy existují ve verzi 4 to jsou ty nám známé adresy typu anebo verze 6 a ty mohou být ve tvaru 0123:5678:0000:0000:0000:00AB:0000:CDEF, což je na zapamatování ještě lepší. Pokud chci použít adresy doma nebo ve firmě, mohu si adresní plán zvolit sám v jakémkoliv rozsahu, ale co se týká rozhraní komunikujících směrem ven, tam už se musíte řídit stanovenými pravidly. Gateway brána je to vlastně výstup ven do Internetu. Ve firmách většinou některý typ routeru. Doma například ADSL modem. DNS slouží k překládání IP adres na jména a zpět. Tomuhle se nedá ani říci stručná teorie, to je jen připomenutí některých pojmů. Vrátíme se k našemu úkolu ohledně IP konfigurace. Zjištění a nastavení jména počítače Jméno počítače zjistíte: $ hostname Toto jméno můžete i změnit, pokud zadáte: # hostname novejmeno Změna bude ale pouze dočasná. Po restartu už by mělo být jméno původní. Někdy je nutno editovat soubor, kde je jméno počítače uloženo. U distribucí založených na Debianu to je /etc/hostname. U distribucí založených na Fedoře je hostname v souboru /etc/hosts. Například u distribuce Arch- Linux je tato informace uložena v souboru /etc/rc.conf. Můžete si sami ve své distribuci zjistit, kde je tato informace uložena u vás. # grep r vashostname /etc/* /etc/rc.conf :HOSTNAME= myhost Nastavení sítě příkaz ifconfig Tímto příkazem nejen ověříte, které rozhraní má jakou IP adresu, ale tato rozhraní i nastavujete. # ifconfig a Tento příkaz můžete spustit buď jako superuživatel, anebo jako normální uživatel, ale musíte zadat cestu k příkazu ifconfig. ( $ /sbin/ifconfig a ). Potom dostanete výpis podobný tomu na obrázku 6.1.

117 Zjištění konfigurace 115 Obrázek 6.1: Výpis IP konfigurace Na výpisu je vidět název rozhraní eth0, eth1, dále zde vyčtete IP adresu. Pokud systém podporuje a používá IP verze 6, pak vidíte tuto adresu. Dále zde vyčtete gateway. Také zde vyčtete i MAC adresu síťového rozhraní. Pokud chcete výpis jen pro konkrétní rozhraní, dopíšete název rozhraní za příkaz. # ifconfig eth2 Údaje si můžete nejen prohlížet, ale také je konfigurovat. Jak si nastavím IP adresu ručně? K tomuto úkolu potřebujete znát IP adresu, masku, případně gateway. Pokud nastavíte tyto údaje špatně, nebude vám rozhraní správně komunikovat. Síť kolem sebe neuvidíte. Nejprve je dobré se podívat (pokud to nevíte), jak vlastně je síť nyní nastavena: cat /etc/sysconfig/network-scripts/ifcfg-eth0 V některých systémech je cesta k souboru jiná. Například v OpenSuse je příkaz ve tvaru: cat /etc/sysconfig/network/ifcfg-eth0 Výpis bude podobný tomu, co vidíte na obrázku 6.2

118 116 Kapitola 6: Práce se sítí Obrázek 6.2: Nastavení sítě Jak vidíte, nastaveno je BOOTPROTO = dhcp čeká se tedy na server DHCP pro přidělení IP adresy, pokud se server neozve, vygeneruje si svoji adresu. Tato adresa nejčastěji bývá v rozsahu 169.x.x.x. Nyní se podívejte, co je zapsáno v souboru, pokud nemá nastaveno DHCP. cat /etc/sysconfig/network/ifcfg-eth0 DEVICE=eth0 ONBOOT=yes BOOTPROTO=static IPADDR= NETMASK= GATEWAY= BOOTPROTO je nastaveno na static, IP adresa je pevně nastavena. Tato adresa následuje na dalším řádku, stejně jako maska a gateway. Obdobně je to u jiných síťových rozhraní. Musíte zjistit, jak jsou tato rozhraní pojmenována; ke každému existuje soubor s nastavením. Zkuste si projít všechny soubory začínající ifcfg v adresáři /etc/sysconfig/network a podívejte se, co zde máte nastaveno. Pokud tedy potřebujete adresu změnit na nějakou delší dobu, změňte ji zde. Systém při startování nastavuje adresu podle těchto souborů. Jestli ale chcete experimentovat nebo potřebujete adresu změnit jen do příštího restartu, použijte příkaz ifconfig. ifconfig eth netmask gateway Nastavujete rozhraní eth1, adresu přidělujete statickou ( ) a masku nastavujete na Na obrázku 6.3 vidíte ukázku změny IP adresy a následné kontroly. Tím, že se ve výpisu objeví adresa nová, ještě není změna hotova. Ještě musíte restartovat síťové rozhraní. To provedete jednoduše: # /etc/init.d/network restart Můžete také zastavit a následně spustit rozhraní pomocí skriptů: # ifdown eth0 # ifup eth0

119 Zjištění konfigurace 117 Obrázek 6.3: Zdařená rekonfigurace IP adresy Použití network restart se nemusí vždy zdařit. Například běží-li v grafickém prostředí nějaký síťový manažer, nepodaří se tato operace téměř jistě. Použití ifdown a ifup by proběhnout mělo. Obrázek 6.4: Nezdařené nastartování síťového rozhraní

120 118 Kapitola 6: Práce se sítí Jak si zažádám u DHCP serveru o IP adresu? Nejprve si můžete vyzkoušet, jestli je nějaký DHCP server v doslechu, pomocí příkazu: # dhcpcd-test eth1 Musíte zadat síťové rozhraní. Odpověď bude asi taková: linux-kl2e:/home/pavel # dhcpcd-test eth1 info, eth1: hardware address = 08:00:27:4a:c8:7f info, eth1: broadcasting for a lease debug, eth1: sending DHCP_DISCOVER with xid 0x659e69c5 debug, eth1: waiting for 10 seconds debug, eth1: got a packet with xid 0x659e69c5 info, eth1: offered from IPADDR=' ' NETMASK=' ' NETWORK=' ' BROADCAST=' ' ROUTES='' GATEWAYS=' ' DNSDOMAIN=' ' DNSSERVERS=' ' DHCPSID=' ' LEASETIME='86400' RENEWALTIME='0' REBINDTIME='0' INTERFACE='eth1' CLASSID='dhcpcd 3.2.3' CLIENTID='01:08:00:27:4a:c8:7f' DHCPCHADDR='08:00:27:4a:c8:7f' info, eth1: exiting DHCP posytovatel byl nalezen a nabídl přidělení adresy. Pokud vím, že server v síti je, stačí použít pouze: dhcpcd eth1 Příkaz ifconfig je zastaralý Ačkoliv jej spousta lidí stále používá, nemělo by tomu tak být. Příkaz ifconfig je zastaralý, ne vždy úplně spolehlivý. Můžete se dočíst, že byl vyvinut pro jádro verze 2.0 a od verze 2.2 byl zastaralý a nedoporučovalo se jeho používání. Nyní máme verzi jádra vesměs všichni minimálně 2.4 a vyšší. Stále se však používá. Jak by se mělo tedy správně postupovat? Použít příkaz ip. Zde se podívejte na některé varianty použití příkazu. Vždy je uváděn plný zápis příkazu a následuje zkrácená varianta. Oboje je možné a mělo by fungovat. Zapnuti a vypn utí síťového rozhraní ip link set dev eth0 up (vypnutí down) ip l s dev eth0 up (vypnutí down)

121 Zjištění konfigurace 119 Vaše síťové rozhraní ip address ip a ip link ip l Nastavení IP a dresy pro rozhraní ip address add /8 dev lo ip a a /8 dev lo ip address add /24 eth0 Přidání brány (gateway) ip route add default via dev eth0 ip r a default via dev eth0 Reset výmaz adresy síťového rozhraní ip address flush dev eth0 ip a f dev eth0 Nastavení MAC adresy ip link set dev eth0 address AA:BB:CC:DD:EE:FF ip l s dev eth0 address AA:BB:CC:DD:EE:FF Počítání přene sených dat ip -s link show Ve výsledné tabulce si můžete ověřit, zda rozhraní funguje a zda tečou nějaká data. > ip -s link show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 RX: bytes packets errors dropped overrun mcast TX: bytes packets errors dropped carrier collsns : eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN qlen 1000 link/ether 00:26:55:c1:20:4b brd ff:ff:ff:ff:ff:ff RX: bytes packets errors dropped overrun mcast TX: bytes packets errors dropped carrier collsns : wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000 link/ether 00:1e:65:98:d0:82 brd ff:ff:ff:ff:ff:ff RX: bytes packets errors dropped overrun mcast TX: bytes packets errors dropped carrier collsns Pokud je síťové rozhraní v pořádku a správně nastavené, po opětovném zadání tohoto příkazu bude počet TX a RX přenesených paketů narůstat.

122 120 Kapitola 6: Práce se sítí Routování směrování poprvé, příkaz route Routování směrování slouží k předávání požadavků síťové komunikace na patřičné rozhraní. Každé zařízení může mít několik síťových rozhraní, i virtuálních. Každé síťové rozhraní má svoji IP adresu. Aby se zajistila komunikace přes více rozhraní, je nezbytné nastavit právě směrování. Zkusíme se podívat jen na jednodušší varianty. Pokud budete konfigurovat routery anebo jiná zařízení určená hlavně pro síťový provoz, budete se muset do této problematiky ponořit hlouběji. Při normálním provozu, po běžné instalaci, kde se síť nastavuje, nebudete muset zasahovat do routování. Systém už vše přednastavil. Zásahy budete provádět až během provozu nebo v případě složitější sítě, a také v případě problémů. Nejprve si zkuste zadat příkaz route bez parametrů a uvidíte tabulku ve vašem počítači určenou pro směrování. V této tabulce asi zatím moc záznamů nenajdete. # route Směrovací tabulka v jádru pro IP Adresát Brána Maska Přízn Metrik Odkaz Užt Rozhraní * U wlan0 loopback * U lo default UG wlan0 Vás zatím budou zajímat sloupce označené jako adresát (tedy kam budou požadavky posílány), brána (aktivní rozhraní připojení někam do sítě ADSL modem, router, switch), maska (ta je důležitá pro filtrování rozsahu sítě) a důležitý sloupec na konci označený jako rozhraní (to je fyzické rozhraní, síť. karta, Wifi karta, loopback ). Dalším parametrem u příkazu route je add a nebo del. Tímto parametrem rozhodujete, zda záznam přidáváte anebo odebíráte (add přidává, del odebírá). Dále se můžete rohodnout, zda přidáváte síť anebo jen jedno cílové zařízení. Jestliže zadáváte síť, musíte přidat parametr -net, pro samostatné zařízení dáváte -host. Pokud tento parametr nezadáte, předpokládá se, že přidáváte jedno zařízení, tedy -host. Podívejte se na řádek loopback, určitě bude ve vaší routovací tabulce také. loopback * U lo Jedná se o vnitřní smyčku; těchto smyček můžete mít několik. Používají se hlavně pro testování. Ve vašem souboru /etc/hosts bude také záznam: localhost.localdomain localhost Tento záznam slouží jako překlad jména na IP adresu. Proto si lokální smyčku můžete ověřit pomocí příkazu ping buď na adresu , anebo pingem na jméno localhost. Jak probíhá výběr v routovací tabulce Rozhodnutí, kam směrovat, probíhá samostatně pro každý procházející datagram. Cílová adresa tohoto datagramu se porovná s routovací tabulkou. Nejprve se z tabulky vyberou všechny vyhovující záznamy (to jsou takové, kde cílová adresa patří do rozsahu stanoveného záznamem pro síť a rozhraní v tabulce). Z takto vybraných záznamů se použije ten, který se nejvíce přibližuje požadovanému s nejdelším prefixem.

123 Zjištění konfigurace 121 Jednoduše řečeno: konkrétnější záznamy (jejichž prefix je delší, tedy přesnější) mají přednost před méně přesnými. Jak přidám záznam pro část sítě subnet? Následujícím příkazem přidáváte do routovací tabulky záznam pro síť požadavky budou směrovány na rozhraní eth0. # route add -net netmask dev eth0 Záznam o síti chci odstranit Pokud tento záznam chcete odstranit, použijete stejný příkaz, ale místo add použijete del. # route del net Potřebuji záznam pro jedno zařízení Příkazem # route add dev eth0 přidáte záznam pouze pro jednu konkrétní adresu. Požadavky se budou směrovat na rozhraní eth0. Jestliže nezadáte parametr -net a nezadáte masku, nastavíte masku a záznam bude proveden jen pro jedinou IP adresu. Jak tento záznam odstraním? Opět jednoduše, místo add použijete del. # route del dev eth0 Zůstanou záznamy v tabulce i po restartu? Za normálních okolností přidané záznamy v tabulce nezůstanou. Záznamy se vytvářejí dynamicky a při každém dalším startu se aktuální tabulka vymaže. Vytvoří se tabulka nová podle startovacích skriptů síťových rozhraní. Patřičný záznam byste museli zaznamenat tam. Tyto skripty se ukládají do adresáře podle typu didtribuce, například u systému založeného na Debianu v adresáři /etc/ network/if-up, u systému založeného na Fedoře v /etc/sysconfig/network-scripts/route -rozhraní. V distribucích OpenSuse zase v adresáři /etc/sysconfig/network/scripts. Varianta novější pomocí iproute Novější variantou je využití balíku iproute. Nejprve si opět prohlédneme tabulku. # ip route show /24 dev wlan0 proto kernel scope link src metric /8 dev lo scope link default via dev wlan0 proto static Výpis je hodně podobný tomu, co jste viděli dříve.

124 122 Kapitola 6: Práce se sítí Anebo ještě upřesníte výpis pro konkrétní rozhraní: # ip route show dev wlan /24 proto kernel scope link src /16 scope link default via Přidání sítě Opět podobně jako dříve: # ip addr add /16 dev eth0 Používáme úspornější záznam IP adresa/maska. Odebráni sítě: # ip addr del /16 dev eth0 Stejně postupujete, pokud hodláte přidat jen jednu IP adresu, tedy jednoho hosta. Obdobně můžete přiřadit jednomu rozhraní více jednotlivých adres. Pouze opakujete příkazy, kde změníte IP adresu. Můžu změnit jméno síťového rozhraní? Pokud se vám nelíbí označení eth0, eth1 a tak dále, můžete toto jméno změnit pomocí příkazu: # ip link set eth0 name SitovkaVen Po takto provedené změně nesmíte zapomenout, že volání síťového rozhraní musí být pod novým jménem. Například: # ifup SitovkaVen. Následujícím příkazem se můžete podívat na nastavení vašeho síťového rozhraní. # ip addr show SitovkaVen Jak nastavím směrování na gateway V nejjednodušším případě pouze nastavíte u jednoduché domácí sítě # ip route add default via čímž požadavky směrujete na gateway. Tuto variantu systém většinou provede za vás. Správce připojení cnetworkmanager Jak je to se správci síťového připojení? Ve většině případů se používá NetworkManager a některá z grafických nadstaveb pro KDE, GNOME, XFCE apod. Jedním z textově orientovaných správců připojení (je nadstavbou nad NetworkManagerem) je Cnetworkmanager. Tento nástroj je napsaný v jazyce Python a není základní součástí distribuce, musíte jej přidat, stejně jako podporu pro jazyk Python.

125 Správce připojení cnetworkmanager 123 Jaká mám síťová rozhraní? Prvním úkolem většinou bývá ověření dostupnosti síťových rozhraní. U tohoto programu použijete příkaz a přidáte parametr --dev: > cnetworkmanager --dev Interface Type State wlan0 WIRELESS ACTIVATED eth0 ETHERNET UNAVAILABLE V přehledné tabulce uvidíte rozhraní i stav, v jakém se nalézá. Jaké mám bezdrátové síťové okolí? Další variantou použití může být zjištění síťového okolí u bezdrátového připojení. Zkuste příkaz cnetworkmanager a přidejte parametr --nets: > cnetworkmanager --nets Active HwAddress Ssid :23:CD:C7:35:B8 Odbornik 00:04:DB:01:05:A7 HOMES1 * 00:02:CF:D0:B3:0A pavka 00:02:CF:D4:C4:D5 ZyXEL 00:02:CF:D0:B3:0B VOIP Opět v tabulce uvidíte síťové okolí a hvězdičkou označený bod, ke kterému jste aktuálně připojeni. Jak můžu vypnout a zapnout síťové rozhraní pomocí cnetworkmanageru? > cnetworkmanager -w off Ověření vypnutí: > cnetworkmanager -c State Name AP Devices Default route Opětovné zapnutí: > cnetworkmanager -w on > cnetworkmanager -c State Name AP Devices Default route ACTIVATING pavka 00:02:CF:D0:B3:0A wlan0 Znak w v příkazu značí rozhraní WiFi. Program má ještě další varianty, které naleznete v manuálu. Neočekávejte komplexní nástroj, který provede veškeré nastavení. Jedná se ale o zajímavou alternativu pro otestování síťových rozhraní.

126 124 Kapitola 6: Práce se sítí Když nemám NetworkManager Příkazy ifstatus Jinou z variant práce se síťovým rozhraním je sada příkazů ifup, ifdown a ifstatus. Zkuste si opět nejprve otestování síťových rozhraní. Zadejte příkaz ifstatus. Poznámka Předpokladem ke správné funkci těchto příkazů je správné načtení hardwaru pro váš počítač. Pokud systém nezná vaši síťovou kartu, asi těžko ji budete moci nastavovat. # ifstatus eth0 Network interface is managed by the NetworkManager -> skipping Jestliže máte nastavenu správu síťových rozhraní pomocí NetworkManagera, objeví se vám toto varování. Nejprve budete muset NetworkManagera zastavit nebo odinstalovat (v případě, že jej nehodláte dále využívat). Dále můžete pokračovat ve zkoušení a nastavení. # ifstatus eth0 eth0 device: Broadcom Corporation NetLink BCM5787M Gigabit Ethernet PCI Express (rev 02) eth0 ifplugd is not running DHCP4 client (dhcpcd) is running...but is still waiting for data eth0 is up 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000 link/ether 00:26:55:c1:20:4b brd ff:ff:ff:ff:ff:ff inet /24 brd scope global eth0 inet6 fe80::226:55ff:fec1:204b/64 scope link valid_lft forever preferred_lft forever eth0 IP address: /24 Configured IPv4 routes for interface eth0: / eth0 Active IPv4 routes for interface eth0: /16 scope link default via of 1 configured IPv4 routes for interface eth0 up Stejným způsobem si můžete ověřit i další síťová rozhraní. Příkaz ifdown zastavení rozhraní K těmto účelům použijete příkaz ifdown a síťové rozhraní, na další ukázce je zastaveno rozhraní eth0. # ifdown eth0 eth0 device: Broadcom Corporation NetLink BCM5787M Gigabit Ethernet PCI Express (rev 02)

127 Když nemám NetworkManager 125 A můžete se přesvědčit, že je rozhraní opravdu vypnuté. # ifstatus eth0 eth0 device: Broadcom Corporation NetLink BCM5787M Gigabit Ethernet PCI Express (rev 02) eth0 ifplugd is not running DHCP4 client NOT running eth0 is down Příkaz ifup spuštění rozhraní Obdobně síťové rozhraní zapnete, tentokrát použijte příkaz: # ifup eth0 A opět se přesvědčte, jestli máte síťové rozhraní zapnuto a jestli máte například přidělenou IP adresu. # ifstatus eth0 Jak je to s rozhraním WiFi? Při používání bezdrátového připojení je tato operace poněkud složitější. Opět nejprve zkuste zjistit stav vašeho rozhraní například takto: # ifstatus wlan0 wlan0 device: Intel Corporation PRO/Wireless 5100 AGN [Shiloh] Network Connection DHCP4 client (dhcpcd) is running but is still waiting for data DHCP6 client (dhclient6) is running but is still waiting for data wlan0 is up 3: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN qlen 1000 link/ether 00:1e:65:98:d0:82 brd ff:ff:ff:ff:ff:ff wlan0 IEEE abgn ESSID:off/any Mode:Managed Access Point: Not-Associated Tx-Power=15 dbm Retry long limit:7 RTS thr:off Fragment thr:off Encryption key:off Power Management:off Z výpisu můžete vyčíst, že systém zná rozhraní wlan0, vypíše základní informace o hardwaru, vidí, že rohraní je zapnuté (up), není nijak nastaveno a není mu přidělena IP adresa. Vypínání a zapínání provedete stejně jako u rozhraní eth. Jenom pozor, jedná se zapínání pomocí softwaru. Pokud tedy máte vypnuto rozhraní pomocí například tlačítka nebo funkční klávesou, tímto postupem jej nezapnete. Nejprve musíte zapnout WiFi kartu. # ifstatus wlan0 wlan0 device: Intel Corporation PRO/Wireless 5100 AGN [Shiloh] Network Connection DHCP4 client NOT running DHCP6 client (dhclient6) is running but is still waiting for data wlan0 is down

128 126 Kapitola 6: Práce se sítí Jak zjistím body připojení kolem své WiFi V prvním kroku asi nejprve budete chtít zjistit, je-li ve vašem okolí bod, ke kterému se chcete připojit. Zde budete potřebovat typ utility určené pro bezdrátové připojení iw. Tato utilita se opět skládá z několika příkazů: # iwlist scanning lo Interface doesn't support scanning. eth0 Interface doesn't support scanning. wlan0 Scan completed : Cell 01 - Address: 00:02:CF:D0:B3:0A Channel:8 Frequency:2.447 GHz (Channel 8) Quality=58/70 Signal level=-52 dbm Encryption key:on ESSID:"pavka" Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s Bit Rates:6 Mb/s; 9 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s 36 Mb/s; 48 Mb/s; 54 Mb/s Mode:Master Extra:tsf= e952e177 Extra: Last beacon: 3124ms ago IE: Unknown: B61 IE: Unknown: B96 IE: Unknown: IE: Unknown: 32080C C Cell 02 - Address: 00:02:CF:D0:B3:0B Channel:8 Frequency:2.447 GHz (Channel 8) Quality=58/70 Signal level=-52 dbm Encryption key:on ESSID:"VOIP" Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s... Příkaz použijete v tomto formátu, pokud chcete otestovat veškerá síťová rozhraní. U rozhraní, kde procházení okolí není podporováno, vám systém tuto informaci vypíše. Tam, kde je možné provést otestování síťového okolí, jej provede. Sken okolí můžete provést i přímo pro určené rozhraní: # iwlist wlan0 scanning I v tomto případě dostanete výpis bodů, ke kterým je možné se připojit, pokud jste zadali správně rozhraní a ve vašem okolí takové body jsou.

129 Když nemám NetworkManager 127 Nastavení připojení WiFi Je sice hezké, že vidíte váš přípojný bod, ale vy se potřebujete připojit. Nyní použijete příkaz iwconfig. Opět se podívejte na ukázky. Snad ve většině případů je prvním krokem zjištění stavu. Zadáte příkaz bez parametrů: # iwconfig lo no wireless extensions. eth0 no wireless extensions. wlan0 IEEE abgn ESSID:off/any Mode:Managed Access Point: Not-Associated Tx-Power=15 dbm Retry long limit:7 RTS thr:off Fragment thr:off Encryption key:off Power Management:off vboxnet0 no wireless extensions. pan0 no wireless extensions. Vidíte stav rozhraní wlan0, kde není nic nastavené. Postupně můžete začít s nastavením. Pokud znáte jméno sítě, tzv. essid, a máte nastaveno WEP zabezpečení, můžete použít příkaz ve tvaru uvedeném dále. # iwconfig wlan0 essid pavka key s:000231d0c30a0 Parametr key s: vám říká, že zadáváte klíč heslo pomocí ASCI znaků. Klíčů můžete nastavit více. Jestliže hodláte používat komunikaci bez zabezpečení, zadáte za parametrem key off. # iwconfig wlan0 mode managed Ve většině případů budete muset WiFi karty přepnout do modu Managed. K tomu použijete příkaz uvedený v ukázce výše. Vaše připojení by mělo fungovat. Funkčnost ověříte buď spuštěním prohlížeče a zobrazením některé stránky z Internetu, nebo pomocí příkazu ping. V některých případech budete ale ještě muset přidat do routovací tabulky záznam o bráně. # route add default gw {IP gateway} Jetliže stále nefunguje komunikace a ve výpisu se vám ukazuje Access Point: Not-Associated, zkuste ještě zadat adresu AP, která se vám ukazuje ve výpisu jako Address. Nastavení opět můžete zkontrolovat pomocí příkazu iwconfig bez zadání parametrů. Všechna uvedená nastavení lze samozřejmě provést v jednom kroku. iwconfig wlan0 essid pavka key s:0002cfd0b30a0 mode Managed ap 00:02:CF:D0:B3:0A

130 128 Kapitola 6: Práce se sítí Základní operace na síti IP adresu už si nastavit umíte, ale to je ještě hodně málo. Nyní se zaměříme na prohledávání síťového okolí. Jak ověřit, že mé síťové rozhraní je zapnuto Jak lokalizovat nedostupnost k síti? Začnete tím, že ověříte, zda je vaše rozhraní nahoře UP. # ip addr show dev eth0 2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN qlen 1000 link/ether 00:26:55:c1:20:4b brd ff:ff:ff:ff:ff:ff V tomto případě nám výpis ukázal, že rozhraní eth0 je DOWN, dole, je odpojeno nebo vypnuto. Zde musíte začít hledat problém, pokud bude komunikace probíhat přes toto rozhraní. # ip addr show dev wlan0 3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000 link/ether 00:1e:65:98:d0:82 brd ff:ff:ff:ff:ff:ff inet /24 brd scope global wlan0 inet6 fe80::21e:65ff:fe98:d082/64 scope link valid_lft forever preferred_lft forever Na této ukázce je rozhraní wlan0 UP, tedy zapnuto a připojeno. Vidíte, že dostanete podstatně více informací než při výpisu ip neigh. Používat tedy ifconfig, anebo ip addr? Odpověď zní: Používejte ten, který je pro vás schůdnější a zobrazí to, co potřebujete. Podívejte se na porovnání výpisu: # ifconfig eth0 eth0 Link encap:ethernet HWadr 00:26:55:C1:20:4B AKTIVOVÁNO VŠESMĚROVÉ_VYSÍLÁNÍ MULTICAST MTU:1500 Metrika:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 délka odchozí fronty:1000 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b) Přerušení:17 # ip addr show dev eth0 2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN qlen 1000 link/ether 00:26:55:c1:20:4b brd ff:ff:ff:ff:ff:ff V první případě při použití příkazu ifconfig máte podrobný výpis o síťovém rozhraní, ale jestli přes něj tečou data, poznáte třeba podle přibývajících TX a RX bytes. U druhé ukázky pomocí ip addr zase rychle poznáte, že je rozhraní dole.

131 Základní operace na síti 129 Příkaz arp a co s ním V některých situacích se vám může hodit příkaz dotazující se pomocí hardwarovych adres MAC adres. K těmto účelům potřebuje mechanizmus provádějící mapování IP adres na adresy fyzické sítě. Nepoužívá se jen u sítí typu Ethernet, ale i u jiných sítí. Použijete jej napřklad při hledání duplicitních IP adres ve vaší síti. Opět začneme jednoduše výpisem vaší ARP tabulky. Tabulka je dynamická a po každém restartu se tvoří nová. # arp Address HWtype HWaddress Flags Mask Iface speedtouch.lan ether 00:90:d0:ac:2f:e2 C eth0 V první variantě dostanete přehlednou tabulku se jménem počítače. # arp -a speedtouch.lan ( ) na 00:90:d0:ac:2f:e2 [ether] na eth0 Přidáním parametru -a dostanete výpis zhuštěný, ale včetně IP adresy. HW adresu můžete zjistit pomocí příkazu arp a zdáním IP adresy, ovšem pouze ve vaší lokální síti po nejblišší aktivní prvek, například switch, router, ADSL modem. Sousedy lze nalézt i pomocí příkazu ip I pomocí příkazu ip s parametrem route jste schopni vypsat arp tabulku včetně IP adres: # ip neigh dev wlan0 lladdr 00:02:cf:d0:b3:0a REACHABLE Jestliže máte v arp mnoho záznamů a chcete vyselektovat pouze zařízení připojená přes rozhraní wlan0, lze příkaz napsat ve tvaru: # ip neigh show dev wlan lladdr 00:02:cf:d0:b3:0a stále Můžu do arp tabulky dopsat další zařízení? Do arp tabulky se dá dopisovat i z ní mazat. Pro přidání použijete parametr -s a pro mazání parametr -d. # arp -s :26:55:C1:20:4B pub A pro vymazání použijete: # arp -d XCNU98562RG Zde už stačí jen jméno počítače nebo jiného zařízení, případně IP adresa. Lze dopsat záznam i pomocí příkazu ip Samozřejmě existuje i varianta pro příkaz ip, konkrétně ve tvaru: # ip neigh add lladr 00:1E:65:98:D0:82 dev wlan0

132 130 Kapitola 6: Práce se sítí Jak záznam z tabulky odstraním? Záznam z arp tabulky odtraníte přidáním parametru -d za příkaz arp. # arp -d :ac:4b:34:22:25 Lze načíst více záznamů do arp tabulky? Pokud potřebujete načítat více záznamů do arp tabulky, lze to provést načítáním ze souboru: # arp -f arptabulka.txt Existuje něco jako ping, ale pomocí MAC adres? Někdy například můžete chtít zjistit, která IP adresa patří které síťové kartě. K podobným účelům lze využít příkaz arping. Tento příkaz komunikuje na druhé síťové vrstvě a zobrazí vám při výpisu i konkrétní HW adresu. # arping -I wlan ARPING from wlan0 Unicast reply from [00:02:CF:D0:B3:0A] 1.531ms Unicast reply from [00:02:CF:D0:B3:0A] 1.645ms Pozor, tento příkaz můžete použít opět pouze v lokálním segmentu sítě. Pokud byste nepoužili parametr velké i, příkaz by se snažil komunikovat přes první síťové rozhraní. # arping ARPING from eth0 CSent 9 probes (9 broadcast(s)) Received 0 response(s) Příkaz arping má ještě další parametry. # arping -c 5 -I wlan Přidáním parametru -c 5 se provede 5 dotazů a příkaz je ukončen. Pokud potřebujete zjistit kompletní informace, podívejte se do manuálových stránek. Použití příkazu ping Co se týká ověření dostupnosti, je tento příkaz alfou a omegou; při prvotní lokalizaci problému se bez něj neobejdete. Poznámka V některých systémech, zejména Unix systémech, vám nemusí příkaz s právy obyčejného uživatele projít. Systém vám napíše, že tento příkaz nezná. Musíte napsat příkaz včetně cesty (/bin/ ping, nebo /usr/sbin/ping). V nejjednodušší formě použijete příkaz v jednoduchém tvaru: $ ping $ ping ip_adresa Na výpisu vidíte dva výpisy: nejprve ping na zadanou adresu a dole ping na jméno počítače.

133 Základní operace na síti 131 Pokud je počítač dostupný, objeví se vám jednotlivé řádky s odezvami. Zjednodušeně to funguje asi tak, že pošlete pakety na určitou adresu, kterou hledáte, a z této adresy obdržíte odpověď. Za jak dlouho obdržíte odpověď, to je ten čas na konci řádku v milisekundách. Dále na řádku vidíte číslo pokusu, kolikrát se systém pokouší dostat na zadanou adresu. Občas se vám může stát, že ve výpisech bude v některých řádcích napsáno, že je IP adresa nedostupná. V tomto případě je na síti nějaký problém a něco omezuje komunikaci. Na druhém výpisu vidíte ping na jméno počítače. Oproti výpisu prvnímu přibyl pouze údaj o jménu počítače a jeho IP adrese. Poznámka Systém se bude stále snažit posílat pakety a počítat odezvy, pokud jej neukončíte použitím kláves Ctrl + C. U některých systémů je nastaveno, že systém pošle paket několikrát (3 5krát) a potom skončí sám. Pokud váš systém provede ping jen několikrát a vy potřebujete sledovat odezvy delší dobu, použijte parametr -c a počet pokusů, tedy $ ping c Z dalších možností se vám třeba může hodit ping v určitých intervalech. Na tenhle případ použijete parametr i a čas v sekundách mezi jednotlivými pokusy. Za zmínění stojí i parametr -s. Tímto parametrem nastavujete velikost paketu. Čím větší paket, tím pomalejší odezvy. Velikost se udává v bajtech. Pokud zvolíte délku paketu při pomalém spojení příliš velkou, paket nemusí projít. Potom testujte s délkou paketu o něco menší. Standartně se posílá paket o délce 64 bajtů. Pro systémové administrátory pracující s více adresami může být dobrá možnost použít parametr -a. Pomocí tohoto parametru se při každé dobré odezvě ozve pípnutí. Tento příkaz má ještě další možnosti, o kterých se můžete více dočíst na Internetu nebo v manuálových stránkách. Odezvy od počítače nejsou jak můžu zjistit trasu? Někde cestou se ztrácejí pakety, nedostanu se k cílovému počítači kde je problém? Další užitečnou pomůckou pro vás může být příkaz traceroute. Je to důležitý nástroj, hodící se k lokalizaci problémů v rozsáhlejších sítích, pokud hledáte úzké hrdlo na síti. Tento příkaz můžete spouštět pouze jako root. Princip je velice jednoduchý. Procházíte pomocí takzvaných skoků k určitému počítači. Skokem se rozumí aktivní zařízení typu switch anebo router. To znamená že si můžete ověřit, kam až se dostanete a s jakými odezvami. Standartně je nastaveno 30 skoků, přes které se můžete dostat k cílovému počítači. # traceroute Výpis trasy k [ ] s nejvýše 30 směrováními: 1 1 ms 1 ms < 1 ms catan.pvfee.net [ ] 2 1 ms 1 ms 1 ms ms 2 ms 2 ms contact.net [ ] 4 2 ms 2 ms 2 ms contact.net [ ] 5 7 ms 7 ms 7 ms pro01-r10-a cut.cz [ ] 6 7 ms 7 ms 7 ms pro01-r12-g cut.cz [ ] 7 19 ms 19 ms 19 ms t2a5-p2-0.de-fr.eu.bta.net [ ]

134 132 Kapitola 6: Práce se sítí 8 21 ms 19 ms 19 ms ix1-gr1-1.de-fr.eu.bta.net [ ] 9 19 ms * 19 ms decix1.fra.seabone.net [ ] ms 45 ms 43 ms ge6-1-vie8-vb.ve.one.net [ ] ms 62 ms 62 ms cr-se-tkm-vie8.vie.one.net [ ] ms 67 ms 63 ms ms 201 ms 200 ms cz.highay.telkom.at [ ] ms 27 ms 27 ms gw4.nii.cz [ ] ms 38 ms 48 ms [ ] Trasování bylo dokončeno. Simulace, jak by mohl vypadat výpis cesty k cíli Použité IP adresy a jména serverů jsou vymyšlené. Jak vidíte, u každého skoku jsou odezvy v milisekundách. Pokud je někde úzké hrdlo, budou odezvy delší při vyšším zatížení. Jedinou nevýhodou jsou různé proxy servery a firewally i některé počítače, které mají zakázané odpovědi na podobné dotazy chodící po síti, a tak se vám nepovede otestovat celý průběh. Jak si můžu nastavit vlastní překlad adres? Představte si, že máte někde síť s desítkou počítačů či jiných zařízení komunikujících po síti. Chcete je konfigurovat, prohlížet logy, vzdáleně se přihlašovat Pokud je těch adres několik, nepotřebujete vlastně nic víc než se připojit na stejný segment sítě a znát IP adresu zařízení. Pokud je zařízení více, už můžete mít problém, protože pamatovat si jednu nebo dvě adresy to ještě jde, ale pamatovat si adres deset K tomuto účelu slouží překlad jmen na IP adresy. Princip je velice jednoduchý. Zapamatujete si jméno počítače, ale nemůžete si zapamatovat jeho IP adresu. Použijete tedy ke komunikaci s druhým počítačem jeho jméno. Funguje to asi tak: Představte si Internet se spoustou IP adres. Není v lidských silách si pamatovat jen zlomek adres, které nejčastěji navštěvujete. Se jmény je to jiné, znáte jich dost, a pokud znáte alespoň část jména, není problém za použití vyhledávače najít tu konkrétní adresu počítač. K této operaci se používá DNS serverů. Nebudu zde vysvětlovat princip, protože to není účelem této knihy. Snad jen tolik: Představte si stromovou strukturu, která se větví od jednoho kořenu na nižší a nižší úrovně. Vy jste v některé z těch nejspodnějších větvích a chcete se dostat do úplně jiné úrovně tohoto stromu. Zadáte dotaz, chci se dostat tam a tam pomocí jména např. serveru Nyní váš požadavek putuje sítí z vašeho místa. Systém si nejprve ověří ve svém lokálním souboru (můžete si ho představit jako jednoduchý DNS server), jestli nemá záznam o tomto jméně. Pokud záznam má, tak je v tomto souboru zaznamenána i IP adresa a tu následně použije. Tip Komunikace po sítích funguje na základě IP adres, i když to tak mnohdy nevypadá. Aby systém navázal komunikaci, odeslal požadavek apod. musí znát IP adresu, kam co má poslat. Nestačí mu jméno počítače, protože to pro něj nic neznamená, on potřebuje IP adresu. Ke komunikaci pomocí jmen slouží právě onen zmiňovaný DNS server, který si ta jména pamatuje (má je uložena).

135 Monitorování sítě 133 Pokud překlad nenajde ve svých záznamech ani DNS server, posílá požadavek dál, dle pravidel dotazování. Pomocí těchto pravidel se hledá konkrétní adresa v celé síti. Zpět k našemu lokálnímu souboru, kde si můžete zaznamenat jména svých počítačů, se kterými budete často komunikovat. $ cat /etc/hosts Zkuste váš hosts soubor, co v něm máte uloženo. Údaje se zadávají ve formátu jméno IP adresa localhost: PC PC mojebrana Vždy je jako první uvedena IP adresa a následně, odděleno tabulátorem nebo mezerou, je uvedeno jméno počítače. Toto jméno nemusí být nutně jméno počítače jeho hostname, ale můžu si toto jméno vymyslet. Já jsem si jména počítačů pro ilustraci vymyslel. V následné komunikaci už nepotřebujete zadávat například pro ověření dostupnosti # ping ale můžete napsat # ping mojepc3 Výsledek bude v obou případech stejný. Pokud je počítač nebo jiné zařízení dostupné, uvidíte odezvy nejčastěji v milisekundách (více k tomuto příkazu v sekci ověření dostupnosti). Monitorování sítě Nástroj netstat Jak se mohu přesvědčit, jaký síťový pohyb probíhá na mém stroji? Určitě se vám budou hodit i příkazy určené k monitorování síťového provozu. Začneme příkazem netstat. Základní použití tohoto příkazu je ve tvaru: netstat --inet -a Výsledek tohotu výpisu u mne vidíte na obrázku 6.5. Na první pohled je patrno, co vás bude zajímat. Jednak tedy druh komunikace (TCP nebo UDP). Rozdíl mezi UDP a TCP protokolem je ten, že u TCP protokolu je zaručena i nějaká kontrola přeneseného paketu a v případě ztráty se paket pošle znovu. U přenosu pomocí UDP protokolu se některý datagram může doručit vícekrát a některý se může ztratit.

136 134 Kapitola 6: Práce se sítí Obrázek 6.5: Ověření dostupnosti Důležité mohou být informace o přenesených datech, ve sloupcích Přích-F, Odch-F. A samozřejmě velmi užitečné jsou IP adresy místní a vzdálená adresa včetně portu. V posledním sloupci je zobrazena informace o stavu spojení. spojeno (established) spojení je aktivní a trvá naslouchá (listen) naslouchá, čeká na požadavek, na nové připojení přerušené (close_wait) Tímto způsobem se můžete lehce přesvědčit, jaký druh komunikace probíhá na vašem počítači a které služby máte povoleny a připraveny ke komunikaci, případně k útoku zvenku. Upravená varianta, která vám zobrazí jen naslouchající služby: # netstat --inet -a grep LISTEN Opravdu hodně prostoru máte ke zkoušení, testování. Potřebuji lepší nástroje než netstat V tomto případě máte několik možností. Musíte si doinstalovat programy tcpdump nebo nmap. Jsou i kvalitní grafické nástroje nejznámější je snad ethereal nebo grafická nadstavba nmap. V této knize, která se věnuje příkazovému řádku, se budeme věnovat jen textově orientovaným nebo konzolovým aplikacím tcpdump a nmap. Nmap práce na vyšší úrovni Začnete tím, že pomocí tohoto programu naskenujete porty. Co to vlastně znamená a jak to funguje? Každý operační systém používající síťovou komunikaci používá sadu různých protokolů. Tyto

137 Monitorování sítě 135 protokoly jsou vlastně jakási dohoda mezi počítači na způsobu komunikace. Pokud se dohodnou, mohou komunikovat, pokud ne, nedá se nic dělat. Můžete to zkusit za chvíli s nadějí na lepší výsledek. Aby to nebylo jednoduché, ještě každá aplikace používá ke komunikaci určitý port. Tento port je buď pevně daný, anebo jej lze nastavit (například pro znesnadnění útoku zvenčí). Testování lze provádět kupříkladu zkoušením všech portů. Nejednodušší testování otevřených portů se provádí tímto způsobem: Program vyšle požadavek na sestavení spojení k testovanému stroji na konkrétním portu. (Posílá se tzv. SYNC packet.) Pokud je u cílového zařízení port otevřen (zařízení naslouchá), po přijetí požadavku (SYNC) odpoví (pošle paket s příznakem ACK potvrzení). Pokud počítač komunikaci odmítne (nemá port a službu na něm povolenu), pošle cílový počítač odmítnutí (RCT). To je hodně stručně vysvětleno, o co jde. Podívejte se na příklad: $ ftp Trying Connected to Escape character is '^]' Vysíláte k nějakému vymyšlenému stroji v Internetu požadavek na sestavení spojení. Pokud se cílové zařízení nenajde, ukončí se příkaz chybou: jméno je neznámé. Pokud se zařízení najde, začne se s navazováním spojení. To je ono conected to Jestliže služba není na cílovém počítači povolena, dojde k odmítnutí spojení a ve výpisu se objeví něco podobného další ukázce: Service not available, remote server timed out. Connection closed V tomto případě stroj existuje, ale nemá povolenou komunikaci pro službu FTP na standardní portu 21. Jenomže situace je složitější. Takto nějak by měla fungovat komunikace po síti. Situace není tak ideální. Jak víte, na Internetu se dnes a denně pokouší někdo dostat k někomu na zařízení a odtud vyloupit data nebo alespoň zanechat vizitku, případně server či jiné zařízení vyloučit z provozu. Díky tomuhle je nutno zabezpečovat svoje počítače, servery a jiná zařízení dostatečnou ochranou, aby k podobným útokům nemohlo dojít. Používají se třeba firewally, paketové filtry, proxy servery a další. Proto musíte i výpis pomocí nmap brát jako informativní a ne vždy zcela důvěryhodný. Připojení ke vzdálenému stroji a odmítnutí komunikace pro konkrétní službu může tedy skončit chybou v těchto případech: Neznámý adresát špatné jméno nebo IP adresa Nepovolená služba adresát existuje, ale má službu zakázanou, a proto spojení odmítne Bezpečnostní ochrana v cestě stojí některá z bezpečnostních ochran a požadavky na připojení zahazuje, nepropustí je dál Špatně nastavená cesta v některých případech může hrát roli špatně nastavené (nechtěně) routování na vlastních prostředcích

138 136 Kapitola 6: Práce se sítí Ale teď k testování. Vyzkoušejte si otestování vašeho síťového rozhraní. Pokud neznáte vlastní IP adresu, zjistíte ji pomoc ifconfig, to už umíte. # nmap A odpověď dostnete zhruba takovouhle: Starting Nmap 5.00 ( ) at :30 CET Interesting ports on : Not shown: 997 closed ports PORT STATE SERVICE 22/tcp open ssh 25/tcp open smtp 111/tcp open rpcbind Vidíte výpis otevřených naslouchajících portů na zařízení s IP adresou v přehledné tabulce. Porty jsou uvedeny v prvním sloupci, ve druhém sloupci vidíte stav portů (otevřeny) a ve třetím sloupci se můžete dočíst, pro jakou službu jsou povoleny. Další možné druhy skenování TCP SYN pravděpodobně nejpoužívanější. Říká se jí half-open pošleme SYN paket a čekáme na odpověď RST zařízení na daném portu neposlouchá. Obdržíme-li SYN/ACK paket, zařízení na náš pokus otevřít spojení odpovídá. Nmap okamžitě pošle RST paket, čímž spojení zavře. Díky tomu, že spojení vlastně nebylo otevřeno, je dost pravděpodobné, že zařízení na druhé straně náš pokus nezapíše do logu. TCP connect() jedná se o nejzákladnější formu port skenu zavoláme systémové volání connect() a systém nám otevře spojení. Pokud na portu nějaká služba poslouchá, bude volání connect úspěšné, jinak vrátí chybu. Problém je, že spojení se opravdu otevře zanecháte vizitku v logu, přinejmenším svoji IP adresu. Na systémové volání connect nepotřebujete žádná zvláštní privilegia. Ping sken zaslání ICMP echo request paketu; pokud obdržíme ICMP echo reply; dané zařízení je aktivní. Nmap používá i techniku, kdy pošle TCP ACK na port 80 a čeká na RST. To je užitečné ve chvíli, kdy adresát nebo některá z ochran před ním blokuje ICMP echo request. S pomocí dodatečných parametrů lze použít i další možnosti. UDP sken zjištění, které UDP porty jsou obsluhovány. Vzhledem k tomu, že protokol UDP není stavový, funguje tento sken velmi jednoduše: pošle UDP paket na daný port a čeká na odpověď. Pokud adresát odpoví paketem ICMP port unreachable, je port zavřený, jinak jej bere jako otevřený. Protocol zkusíte zjistit, jaké protokoly jsou na cílovém zařízení aktivní. Pošleme IP paket s číslem protokolu a čekáme na odpověď. Dostaneme-li ICMP protocol unreachable, není protokol podporován, jinak předpokládáme, že ano. Tento sken je velmi podobný UDP. Nebudu zde probírat všechny možnosti tohoto programu, protože to bych se dostal k oné nudné teorii a vypisování manuálových stránek. Informací k tomuto programu najdete dost, pokud budete potřebovat některé složitější skeny.

139 Další možné druhy skenování 137 Jak můžu zjistit, která zařízení kolem jsou živá? Nejprve si musíte uvědomit, že síť je nějakým způsobem členěna a jednotlivé segmenty jsou od sebe odděleny. Tyto pokusy můžete provádět vždy jen v určitém segmentu sítě. Záleží také na bezpečnostních prvcích, které jsou v síti nasazeny. Protože se jedná o test dostupnosti, tedy ping, některá zařízení mají zakázáno na tyto dotazy odpovídat. Vyzkoušejte si alespoň svůj píseček: # nmap -sp /24 Starting Nmap 5.00 ( ) at :05 CET Host is up (0.0014s latency). MAC Address: 52:54:00:12:35:02 (QEMU Virtual NIC) Host is up (0.0014s latency). MAC Address: 52:54:00:12:35:03 (QEMU Virtual NIC) Host is up (0.0014s latency). MAC Address: 52:54:00:12:35:00 (QEMU Virtual NIC) Host is up. Nmap done: 256 IP addresses (4 hosts up) scanned in 6.27 seconds Zadáte příkaz s parametry -sp a IP adresu a za lomítkem číslo 24 značí masku. Pozor, pokud zadáte číslo 8 (to značí masku ), můžete čekat na sken pěkně dlouho. Proto je dobré si uvědomit, co vlastně hledám a kde. Podobně je u čísla 16 maska , u čísla 24 je maska Ve výpisu vidíte IP adresu i MAC adresu hardware adresu síťového rozhraní. Ještě si můžete všimnout, že v závorce se můžeme dočíst, kdo je pravděpodobným výrobcem tohoto rozhraní. I to se vám může občas hodit. Tip K prohledávání síťového okolí lze použít i příkaz arp, který prohledává MAC adresy kolem sebe, ve své tabulce. Tento příkaz ale nepatří do této sekce. I v případě použití programu nmap lze ale využít arp. Přidáme k příkazu další parametry, a sice PR. U některých zařízení, kde není povolena odpověď na ping, lze využít tohoto rozšíření. Na ARP žádost by mělo odpovědět každé zařízení. # nmap -sp -PR /24 Starting Nmap 5.00 ( ) at :48 CET Host is up (0.0060s latency). MAC Address: 52:54:00:12:35:02 (QEMU Virtual NIC) Host is up (0.0068s latency). MAC Address: 52:54:00:12:35:03 (QEMU Virtual NIC) Host is up (0.0055s latency). MAC Address: 52:54:00:12:35:00 (QEMU Virtual NIC) Host is up. Nmap done: 256 IP addresses (4 hosts up) scanned in 6.60 seconds Výpis vypadá stejně jako předchozí, ale někdy se může objevit i vámi hledané zařízení.

140 138 Kapitola 6: Práce se sítí Jaké další možnosti má nmap? V následujícím stručném výpisu se můžete podívat na některé další možnosti použití tohoto programu: Použití parametru: -sp (Ping Scan) zjištění, pomocí ping, zda zařízení je online -P0: Treat all hosts as online přeskočit zjišťování hostitelských stanic -PS/PA/PU [portlist] pro zadané porty vykonat zjištění protokolů TCP SYN/ACK anebo UDP -ss sken typu TCP SYN (viz výše) -st sken typu Connect -sa sken typu Acknowledge -sw sken typu Window -so sken protokolu IP -p <skenovane porty> pokud chcete testovat jen určité porty (například: -p22; -p1100; -p U:53,111,137; -p T:21-25,80,139,8080) -sv testovat otevřené porty na určení informací o službě nebo verzi --version_light kvůli rychlejší identifikaci služby nebo verze vykonat jen ty nejpravděpodobnější testy --version_all provést všechny možné testy -O povolit detekci operačního systému -S <IP_Address> zfalšovat zdrojovou adresu -e <interface> použít rozhraní -g --source_port <č_portu> použít dané číslo portu --data_length <č_portu> do odesílaných paketů vložit náhodná data --ttl <hodnota> nastavit velikost položky time-to-live protokolu IP --spoof_mac <mac address/prefix/vendor name> zfalšovat MAC adresu aktuálního počítače --badsum odeslat pakety s falešným kontrolním součtem TCP/UDP -6 povolit sken pro protokol IPv6 -A povolit detekci operačního systému a verze To je jenom výčet některých možností. Zkoušejte, testujte sami a poznáte, jak moc umí zjistit tento program. Zkuste například: # nmap -v -A scanme.nmap.org nmap -v -ir P0 -p 80 Poznámka Musíte si ještě uvědomit, jaké je zatížení sítě, pokud provádíte kompletní sken většího rozsahu IP adres; může to trvat opravdu dlouho.

141 Další možné druhy skenování 139 Jak můžu sledovat pohyb paketů na síti? K tomuto účelu vyzkoušejte program tcpdump. Opět není součástí systému a musíte jej doinstalovat v závislost na verzi vašeho systému. # tcpdump -i eth0 n Zadáte jméno programu, následuje parametr i na kterém rozhraní chcete provoz zachytávat. Poslední parametr n slouží k tomu, že pokud se na síti vyskytuje větší provoz, tcpdump by zjišťoval u DNS větší množství jmen počítačů. Narostla by zátěž a zpomalení připojení, případně až k zahlcení DNS. Ukončení zachytávání provedete stisknutím kláves Ctrl+C. Sledování provozu konkrétní IP adresy: # tcpdump -i eth0 host # tcpdump -i eth0 ether host 00:FF:EF:EF:FF:00 Samozřejmě nemusíte sledovat provoz na celé síti, ale můžete sledovat provoz jen jedné adresy. Pomocí příkazu uvedeného výše budete sledovat provoz z a do zařízení majícího IP adresu Místo IP adresy můžete zadat i MAC adresu. Samozřejmě můžete zachytávání provozu směrovat do souboru a následně jej v klidu analyzovat. # tcpdump i eth0 host > provoz Soubor s názvem provoz bude uložen v aktuálním adresáři, odkud jste zachytávání spustili. Ukončení odposlechu je opět použitím kláves Ctrl+C. Program dump může mít i další volby: less 80 velikost paketu ip proto (udp) vybere protokol src host IP odchozí packet z IP dst host IP příchozí packet pro IP src port AA packet odchází z portu AA dst port BB packet směřuje na port BB src net network/mask zdroj v zadané síti dst net network/mask cil v zadané síti -v podrobné info -vv ještě podrobnější -e vypíše linkovou část rámce MAC adresy zdroje a cíle, linkový protokol atd. Tip Místo k pokusům můžete zkoušet a trénovat. Pokud víte alespoň částečně, jak vaše část sítě vypadá, je dobré si udělat náčrtek včetně IP adres a masek, následně zkoušet, kam až se dostanete, co kde běhá za provoz. Určitě narazíte i na to, že po síti běhají uživatelská jména a hesla v nezašifrované podobě. Proto se nedoporučuje některé druhy přenosu a komunikace nepoužívat. Vyzkoušíte si, jak se navazuje spojení a jak se ruší. Pokud jste někde odděleni routerem nebo switchem, můžete zjistit a určitě zjistíte, že určitou část provozu nejste schopni monitorovat.

142 140 Kapitola 6: Práce se sítí Bezpečnost a firewall O zabezpečení počítačů je popsáno mnoho knih. Je zde podrobně rozebráno krok za krokem, co a jak nastavujete. Zhustit tyto informace do pár řádků není možné. Problematika firewallu je tak obsáhlá, že budu nucen se zaměřit jen na doporučení, co začít používat. Mít firewall špatně nastavený je horší než jej nemít vůbec. Hovoří se o tom, že v Linuxu antivir a firewall nejsou až tak důležité. Omyl, při dnešní komunikaci přes Internet není v bezpečí nikdo! Správně nastavený firewall riziko výrazným způsobem omezuje. Firewall poprvé iptables Snad se ani jinak nedá začít než vám doporučit tento nástroj. Má i grafické nadstavby, pomocí kterých je nastavení jednodušší, ale Nejprve stručný souhrn některých standartních portů, přes které probíhá komunikace pro určité aplikace: 21 FTP (FTP server) 22 SSH (šifrovaný přístup k shell) 23 telnet (nešifrovaný přístup k shell) 25 SMTP (SMTP server) 53 DNS (DNS server) 80 HTTP (web server) 110 POP3 (přístup na mail) 143 IMAP (přístup na mail, nepoužíváte-li POP3) 443 HTTP (šifrovaný přístup na web) Stručně řečeno: nastavení firewallu spočívá v tom, kterým portům povolíte komunikaci ven či dovnitř a kterým portům tuto komunikaci zakážete. Můžete buď používat tyto standartní porty, anebo si nadefinovat své vlastní. Jako první krok můžete vyzkoušet, jestli iptables máte v systému. Zkuste si příkaz: # iptables -L Pokud máte firewal naistalovaný a zapnutý, bude vám odpovědí obsáhlý výpis, jehož část vidíte na obrázku 6.1. Když nemáte firewall spuštěn Všech nastavených pravidel se zbavíte příkazem: # iptables -F.

143 Bezpečnost a firewall 141 Obrázek 6.6: Výpis nastavení firewallu Jakým způsobem mohu nastavovat pravidla? Pravidla můžete nastavovat ručně anebo pomocí konfigurace či skriptu. V další ukázce máte příkaz pro nastavení dvou jednoduchých pravidel pro příchozí spojení. # iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT # iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT Jak se vyznat v tomto záznamu? Nejprve se podívejte na parametr -- dport 22 (80). Tímto parametrem udáváte číslo portu, na který se má pravidlo vztahovat. Parametrem -A INPUT zase říkáte, že se má jednat o příchozí data (dalším typem může být OUTPUT- odchozí a nebo FORWARD). Parametr -i udává rozhraní a parametr -p vám říká, že se jedná o protokol TCP. (Kromě tohoto protokolu může být ještě například protokol UDP.) Pomocí těchto dvou pravidel si spustíte příchozí data pro HTTP přenos a pro SSH přenos, ale pouze pro komunikaci přes rozhraní eth0. Ostatní služby jako FTP, a další vám fungovat nebudou, pokud nenastavíte obdobně porty dalších služeb.

144 142 Kapitola 6: Práce se sítí Některé z dalším možností použití # iptables -F INPUT Pomocí tohoto příkazu odstraníte všechna pravidla pro část INPUT. Jestliže chcete přidat některé pravidlo mezi třetí a čtvrté, napíšete: # iptables -I INPUT 4... zde je vase pravidlo Pro smazání pravidla číslo 4 napíšete jednoduše: #iptables -D INPUT 4 Jak už jsem zmiňoval, nastavení si vyzkoušíte, otestujete a následně budete patrně provádět pomocí skriptu. Ten si uložte do adresáře /etc/init.d/firewall start pro jeho nastartování a /etc/ init.d/firewall stop pro jeho zastavení. Ještě musíte nastavit jeho automatické spuštění po restartu: # chkconfig --level 3 firewall on # chkconfig --level 06 firewall off Kde je standartně uložená konfigurace iptables Tato konfigurace je standartně uložena v adresáři /etc/inet.d/iptables. Můžete se podívat, jak je standartně nastaven firewal. Firewall podruhé Ipkungfu Pokud chcete vyzkoušet i jiný nástroj, podívejte se na program ipkungfu. Ono se ve skutečnosti nejedná o program, ale o skript založený na iptables. Výpis provedeme opět pomocí parametru, tentokrát malé l. Tento skript není součástí systému, ale musíte jej doinstalovat. # ipkungfu -l Checking integrity:.. PASSED /sbin/iptables -A PREROUTING -s /16! -d /16 -j RETURN /sbin/iptables -A PREROUTING -s /8! -d /8 -j RETURN /sbin/iptables -A POSTROUTING -s /16 -o wlan0 -j MASQUERADE /sbin/iptables -A POSTROUTING -s /8 -o wlan0 -j MASQUERADE /sbin/iptables -A OUTPUT -p icmp -j TOS --set-tos 0x10/0x3f /sbin/iptables -A OUTPUT -p tcp -m tcp --dport 20 -j TOS --set-tos 0x08/0x3f /sbin/iptables -A OUTPUT -p tcp -m tcp --dport 21 -j TOS --set-tos 0x10/0x3f /sbin/iptables -A OUTPUT -p tcp -m tcp --dport 22 -j TOS --set-tos 0x10/0x3f... Na možnosti a parametry se podívejte pomocí helpu. # ipkungfu -h Ovládání bude hodně podobné iptables.

145 Přenos souborů a komunikace s jiným zařízením po síti 143 Přenos souborů a komunikace s jiným zařízením po síti Neodmyslitelnou částí práce na síti je přenos souborů. Můžete využít například FTP přenos, SSH přenos, telnet a další. Nejprve si vyzkoušíte FTP přenos. Jak na FTP pomocí příkazového řádku Tento přenos nepatří mezi bezpečné, protože při komunikaci po síti lze pomocí odchytávání paketů zachytit i přenos jména a hesla. Jméno a heslo se přenáší jako text, ne šifrovaně. Následně může dojít ke zneužití FTP serveru. Přesto je tento druh přenosu hodně rozšířen. FTP File Transfer Protocol sám název značí, že tento protokol je z rodiny protokolů TCP/IP. Ke komunikaci se používají nejčastěji dva porty, a sice 20 a 21. Na portu 21 server naslouchá a komunikace probíhá jen pomocí příkazů. Na portu 20 se přenáší data. Zde může být první kámen úrazu, protože při stahování větších souborů se na portu 21 nic neděje a některá z ochran, například firewall, může vyhodnotit tuto nečinnost jako konec provozu a navázané spojení ukončí. K čemu tedy můžu FTP přenos použít Využití může být hned několik: přenos souborů nevelké důležitosti, přenos hudby, filmů a podobně přenos souborů na správa účtů internetových stránek přenos konfigurace mezi zařízeními v uzavřené interní síti, která jiný druh komunikace nepodporují a nehrozí zde zneužití dat přenos dat ve chráněné síti, kde nehrozí proniknutí zvenčí Základní příkazy lze rozdělit: Access Control Commands (příkazy řízení přístupu) Transfer Parameter Commands (příkazy určující parametry přenosu) FTP Service Commands (obsluhující příkazy) Access Control Commands: CDUP změna aktuálního adresáře na nadřazený adresář CWD změna aktuálního adresáře PASS zadání uživatelského hesla QUIT ukončení spojení USER zadání uživatelského jména Transfer Parameter Commands: PASV žádá server o pasivní mód server bude poslouchat a klient bude iniciovat datové spojení PORT specifikuje počítač a port pro datové spojení; klient pošle tento příkaz a bude na daném portu čekat na spojení TYPE určuje typ dat, např. text nebo binární

146 144 Kapitola 6: Práce se sítí FTP Service Commands: ABOR zrušení předchozího příkazu DELE smazání souboru LIST získání seznamu souborů MKD vytvoření nového adresáře NLST podobný příkazu LIST, seznam vrací na každém řádku jen jméno souboru (adresáře) PWD zjištění aktuálního pracovního adresáře RETR přenos souboru ze serveru RMD smazání adresáře (pouze prázdného) RNFR, RNTO přejmenování souboru STOR přenos souboru na server SYST slouží k zjištění typu systému, na kterém běží FTP server Jaký je rozdíl mezi aktivním a pasivním režimem Nejzákladnější rozdíl je v tom, kdo navazuje spojení. U aktivního režimu sestavuje spojení server, klient naslouchá, data se přenáší po portu 20. U pasivního přenosu je situace opačná. Klient navazuje spojení a server naslouchá. Při sestavování připojení poslal server svou IP adresu a TCP port, na kterém naslouchá. Několik ukázek práce s FTP Podporuje můj systém FTP? Na ověření stačí použít jen příkaz ftp. $ ftp ftp> quit $ Příkaz quit ukončuje FTP připojení. Pokud napíšete za ftp> help, uvidíte příkazy, které můžete používat. Příkazy jsou příznačné a nepotřebují moc vysvětlování. V případě nutnosti lze vysvětlení nalézt na Internetu a v manuálových stránkách. U některých distribucích můžete využít i bezpečnější utilitku sftp. Tato je součástí balíku OpenSSH a má více možností. Opět se můžete přesvědčit, zda tuto utilitku máte. $ sftp usage: sftp [-1Cv] [-B buffer_size] [-b batchfile] [-F ssh_config] [-o ssh_option] [-P sftp_server_path] [-R num_requests] [-S program] [-s subsystem sftp_server] host sftp [user@]host[:file...] sftp [user@]host[:dir[/]] sftp -b batchfile [user@]host Pokud tedy nemáte nainstalovány tyto utility, musíte si je doinstalovat, dle vaší distribuce.

147 Přenos souborů a komunikace s jiným zařízením po síti 145 Jak se tedy mám připojit Jelikož se komunikuje po síti, kde vládnou IP adresy a jména, základní variantou je příkaz ve tvaru $ ftp anebo $ ftp ftp://pokusny.ftp.cz Na následující ukázce si můžete prohlédnout základní komunikaci mezi serverem a klientem. $ ftp ftp.ubuntu.com Trying Connected to ftp.ubuntu.com ( ). 220 Ubuntu FTP server (vsftpd) Name (ftp.ubuntu.com:pavel): anonymous 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> ls 227 Entering Passive Mode (91,189,88,40,163,194) 150 Here comes the directory listing. drwxr-xr-x Apr 03 19:51 ubuntu 226 Directory send OK. ftp> cd ubuntu 250 Directory successfully changed. ftp> ls 227 Entering Passive Mode (91,189,88,40,135,183) 150 Here comes the directory listing. drwxrwsr-x Oct 29 17:12 dists drwxrwsr-x Apr 03 19:30 indices -rw-r--r Apr 03 19:28 ls-lr.gz drwxrwsr-x Feb 27 06:30 pool drwxrwsr-x Feb project 226 Directory send OK. ftp> Připojujete se k FTP serveru ftp.ubuntu.org. Připojujete se jako anonym, jako heslo server žádá vaši ovou adresu. Některé servery kontrolují, zda je adresa ve formátu user@server.stat. Chcete-li zůstat anonymní, můžete použít adresu ve tvaru user@example.com. Po úspěšném připojení můžete provádět výpis adresářů a souborů nebo procházet adresáři. Vše se řídí tím, jak máte nastavena práva na serveru. V tomto případě se jedná o veřejný server, kde máte přístup jen na čtení do nadefinovaných adresářů. Zde se nejedná o citlivá data, a proto se může připojit kdokoliv, kdo se přihlásí jako anonym. Pokud se budete připojovat k nějakému jinému serveru, kde je zabezpečení prováděno jménem a heslem, musíte se připojit pomocí platného jména a hesla, jinak bude spojení odmítnuto.

148 146 Kapitola 6: Práce se sítí Připojení pomocí wget Toto připojení nevyžaduje žádný interaktivní přístup. Slouží k tomu, že si například přetáhnete k sobě do aktuálního adresáře www stránku. S ní pak následně můžete pracovat. Nepotřebujete žádné ověření, žádná hesla. Příkaz je určen pro stahování souborů z HTTP, HTTPS a FTP serverů. $ wget -k -p Následně proběhne komunikace mezi vaším počítačem a serverem. V aktuálním adresáři se vytvoří složka se jménem serveru a v ní je minimálně soubor index.html. Většinou zde budete mít i další adresáře, aby se stránka správně zobrazila. Pokud si některým prohlížečem tuto staženou stránku zobrazíte, měli byste vidět obsah stránky podobný původní stránce na Internetu. Parametr -k slouží k přepsání linků ve staženém souboru na soubor stažený ve vašem počítači. A zde máte některé další parametry: -O soubor jak se má jmenovat stažený soubor -b stahuje na pozadí -p stáhne HTML stránku i s veškerým viditelným obsahem (tj. obrázky, zvuky, styly, nikoliv odkazy) -r zapne rekurzivní režim, tj. stáhne URL a pokračuje nalezenými odkazy, funguje i s FTP; je-li jako URL zadán adresář, stáhne ho s celým jeho obsahem včetně podadresářů -c umožňuje navázání nedokončeného downloadu $ wget -b -c ftp://sunsite.mff.cuni.cz Tak nějak by mohl například vypadat příkaz pro stahování. Parametr -b určuje stahování na pozadí a parametr -c navázání nedokončeného stahování. Připojení pomocí SSH Tento druh připojení nabízí kromě zabezpečeného spojení také spoustu jiných rozšíření, například tunelování X11, forwarding TCP/IP, nastavení autentizace a další. Základní tvar vypadá takto: $ ssh user@server.linux.cz Na stroji, ke kterému se hlásíte, musí samozřejmě běžet SSH server. Komunikace probíhá standartně na portu 22. Ono user@ slouží k předání jména, pod kterým se přihlašujete. Na počítači, kam se hlásíte, musí být toto jméno mezi povolenými uživateli pro vzdálený přístup. Po zadání příkazu ssh po vás protější zařízení, ke kterému se hlásíte, bude chtít heslo. To v případě, že už vás zná a už jste spolu úspěšně komunikovali. Po zadání platného hesla budete připojeni a můžete pracovat. Pokud se hlásíte poprvé, vyskočí na vás něco o RSA klíči. Je to vlastně veřejný klíč protějšího počítače a vy byste podle tohoto klíče měli poznat, jestli se opravdu jedná o ten správný stroj. To ale může být v mnoha případech problém.

149 Přenos souborů a komunikace s jiným zařízením po síti 147 Dotaz by mohl vypadat nějak takto: $ ssh jmeno@ The authenticity of host ' ( )' can't be established. RSA key fingerprint is c9:a0:c3:f4:8f:14:f4:4a:07:b6:cf:28:39:47:fc:81are you sure you want to continue connecting (yes/no)? yes Klíč potvrdíte zadáním yes a následně budete vyzváni k zadání hesla. Pokud vše proběhne tak, jak má, budete připojeni a můžete pracovat. Warning: Permanently added ' ' (RSA) to the list of known hosts. Password: Linux linux #1 Tue Apr 16 13:22:48 UTC 2010 i686 GNU/Linux The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Tue Nov 27 19:04: from Pozornost ale musíte věnovat RSA klíči, protože můžete být také přesměrováni někam úplně jinam vložením jiného RSA klíče nějakým útočníkem. Klíč RSA se ve většině případů uloží do adresáře /domovsky_adresar/.ssh. Při dalším přihlášení už by klíč neměl být požadován a měli byste být dotázáni jen na heslo. Ještě pro ukázku, jak vypadá onen RSA klíč: $ cat known_hosts localhost ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAuK8Poaz6Mb+miVTp9nfQnf260Effwxe4RIMZA5DORtQ1xwYwFooLcN9lB9D4N5qSf1OjrUeWiHFKlu7mUNDSgkzeEFJP8j4ikfPhz2PdExQjPAk7Ys7plidW0U+mkNJpHtNch0kHfwjvOF+zZ+IEnj7MEvtc0ACKOROt5zvnnbpUL58S9Xvtt8cAz1d- 2r2ouMJiWtSapOwLXedqrIxOFV79STihEbvOCL3qylTjwRpy50qSHDRxqdLfv1exA5fhDCQqHt62zSTrr7mO4Rmr8o0cUqvv9rc+xesfsNHMhqOwKRgnvFbRapW4cYoHQnCpZLD+ajKFjJ9DEWCElmvmUXQ== Lze se přihlásit bez zadání jména a hesla Jedním z možných řešení může být takzvané předávání klíčů. Vy si u sebe na svém stroji vytvoříte soukromý klíč. Na stroji, ke kterému se hlásíte, je k dispozici veřejný klíč. Vy posíláte ze svého počítače žádost o spojení. Vzdálený počítač vygeneruje např. nějaké číslo a to zašifruje svým veřejným klíčem a pošle lokálnímu počítači. Váš počítač tento řetězec dešifruje svým privátní klíčem a zašifruje a pošle vzdálenému počítači. Vzdálený počítač si své původní číslo také zašifruje a porovná s řetězcem, který dostal od lokálního počítače. Pokud se řetězce rovnají, přihlášení je ověřeno a začne probíhat následná komunikace. Zní to děsně složitě a ve skutečnosti to také složité je. Možná je lepší tohle vzít jako fakt, pokud se nehodláte zabývat tímto druhem zabezpečení.

150 148 Kapitola 6: Práce se sítí Jak si můžu klíče vygenerovat Použitím příkazu ssh-keygen vygenerujete pár klíčů, a sice veřejný a soukromý. $ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/home/pavel/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/pavel/.ssh/id_rsa. Your public key has been saved in /home/pavel/.ssh/id_rsa.pub. The key fingerprint is: 14:90:09:a5:8d:74:ce:5d:ff:33:45:01:84:b2:25:24 pavel@xwcnly The key's randomart image is: +--[ RSA 2048]----+ oo+eo.. oo..o. Bo..= +. o + o = S + o Jak můžu nastavit zabezpečenou komunikaci bez žádosti o heslo Připojíme se na vzdálený počítač pomocí ssh: $ ssh jmeno@ Password: V domovském adresáři vytvoříme adresář.ssh: $ mkdir.ssh Nastavíme.ssh práva na 700 (pouze vlastník může vše): $ chmod 700.ssh/ Vytvoříme soubor authorized_keys: $ cd.ssh/ $ touch authorized_keys Nastavíme práva pro soubor authorized_keys na 600: $ chmod 600 authorized_keys Odhlásíme se: $ logout Nyní odešlete veřejný klíč id_rsa.pub do adresáře.ssh na vzdálený počítač: $ scp ~/.ssh/id_rsa.pub jmeno@ :.ssh Password: id_rsa.pub 100% KB/s 00:00

151 Přenos souborů a komunikace s jiným zařízením po síti 149 Přihlásíte se opět pomocí ssh na vzdálený počítač: $ ssh jmeno@ Password: Přidáte veřejný klíč z id_rsa.pub do autorizovaných klíčů: $ cat.ssh/id_rsa.pub >>.ssh/authorized_keys Smažete veřejný klíč: $ rm.ssh/id_rsa.pub Odhlásíte se a znovu se přihlásíte pomocí ssh. Tentokrát by mělo vše proběhnout bez přihlašovacího hesla. $ logout Connection to closed. $ ssh jmeno@ Last login: Sun Aug 11 21:19: from $ K čemu je dobrá passphrase Pokud byste zadali tento parametr při generování klíčů, dostali byste se k tomu, že namísto hesla by po vás byla vyžadována právě tato fráze. Výhodou může být, že se při komunikaci neposílá ani jméno ani heslo. Připojení pomocí telnet Jedná se o jednoduché, nezabezpečené připojení ke vzdálenému zařízení pomocí IP adesy. Dnes se používá spíše na uzavřených sítích k řízení různých zařízení. Použití je jednoduché: $ telnet Pokud je adresa správná, jste většinou dotázáni na jméno a heslo. Po úspěšném přihlášení jsou používány příkazy zařízení, ke kterému jste připojeni. Většinou se jedná o soubor příkazů určených k nastavení zařízení, lokalizaci poruch apod.

152

153 KAPITOLA 7 Práce se skripty Úvod do skriptování Potřebuji vůbec něco takového? Odpověď zní: ano. Dříve nebo později přijdete na to, že skripty jsou důležitá a užitečná věc. Pro začátek stačí se naučit v nich číst, posléze budete sami tvořit jednoduché skriptíky až se dostanete ke složitějším. Nečekejte zde ale vyčerpávající informace o tvoření skriptů, spíše jsem se chtěl pouze zaměřitna to, co můžete při skriptech využít a jaká je syntaxe psaní skriptů. Co to vlastně ten skript je Dá se jednoduše říci, že skript je vlastně malý prográmek, který má za úkol něco provést se vstupními daty. Data mohou být fotky, soubory, zachytávání znaků z klávesnice, výstup z některého programu apod. Skript je vykonáván postupně po řádcích odshora dolů. Jedním z hlavních úkolů skriptu je zjednodušit uživateli pravidelně se opakující operace, to znamená neopisovat stále stejné příkazy, ale prostě je sepsat do souboru. Po spuštění tohoto souboru se operace provedou tak, jak je požadujete.

154 152 Kapitola 7: Práce se skripty Jaký shell mám spuštěný Jakmile se přihlásíte a spustíte nové okno terminálu, spouštíte i takzvaný shell. Je to vlastně zprostředkovatel interpret mezi vámi a systémem. Existuje několik typů shellu, například Bourne Again Shell, TC Shell, Z Shell, korn Shell S největší pravděpodobností budete mít spuštěný Bourn Again Shell. O tom se můžete přesvědčit zadání příkazu: $ ps PID TTY TIME CMD 1940 pts/0 00:00:00 bash 2288 pts/0 00:00:00 ps Pokud se vám ve výpisu objeví bash, máte spuštěný Bourn Again Shell. Můžete si vyzkoušet také spuštěný jiných shellů. $ ps PID TTY TIME CMD 2401 pts/0 00:00:00 bash 2438 pts/0 00:00:00 ps $ csh $ tcsh $ sh sh-4.0$ ps PID TTY TIME CMD 2401 pts/0 00:00:00 bash 2439 pts/0 00:00:00 csh 2467 pts/0 00:00:00 tcsh 2486 pts/0 00:00:00 sh 2487 pts/0 00:00:00 ps Na předchozím výpisu jste se mohli přesvědčit o tom, že systém obsahuje více shellů. Každý je trochu jiný. Nebudeme se ze věnovat rozdílům mezi jednotlivými shelly. Pokud chcete opustit další spuštěné shelly, použijte příkaz exit. Můžu změnit svůj shell? Ke změně shellu slouží jednoduchý příkaz chsh. Nejprve si ověřte, které shelly máte k dispozici: chsh -l /bin/ash /bin/bash /bin/bash1 /bin/csh /bin/false /bin/ksh /bin/sh /bin/tcsh /bin/true /bin/zsh /usr/bin/csh /usr/bin/ksh /usr/bin/passwd

155 Úvod do skriptování 153 /usr/bin/bash /usr/bin/tcsh /usr/bin/zsh Pokud je na podobném výpisu z vašeho stroje obsažený vámi upřednostňovaný shell, můžete si jej nastavit jako výchozí. Ne každý z těchto intepretrů můžete použít. Musí být obsažený v souboru /etc/shells. Změnu provedete jednoduše: $ chsh -s /bin/bash Changing login shell for pavel. Heslo: Shell changed. U tohoto příkazu tedy používáte dva parametry. Parametr -l pro výpis shellů a parametr -s pro změnu shellu. Tip Příkaz můžete použít i bez parametru, systém se vás potom zeptá na typ shellu, který chcete použít: $ chsh Changing login shell for pavel. Heslo: Enter the new value, or press return for the default. Login Shell [/bin/bash]: Zde musíte napsat cestu k shellu; ten musí být povolený, jinak vás systém upozorní, že shell neexistuje: chsh: '/bin/ksh' does not exist. Kde jsou konfigurační soubory k shellům Standartně je můžete nalézt v adresáři /etc/. # ls -al *sh* -rw-r--r-- 1 root root bře 2009 bash.bashrc -rw-r--r-- 1 root root říj 2009 bash_command_not_found -rw-r--r-- 1 root root úno 2008 csh.cshrc -rw-r--r-- 1 root root říj 2009 csh.login -rw-r--r-- 1 root root 1 9. led 1994 hushlogins -rw-r--r-- 1 root root srp 2006 rc.splash -rw-r root shadow dub shadow -rw-r root shadow dub shadow.old -rw-r root root dub shadow.yast2save -rw-r--r-- 1 root root lis 2006 shells -rw-r--r-- 1 root root říj 2009 slsh.rc -rw-r--r-- 1 root root říj 2009 zsh_command_not_found Shell nejprve spouští příkazy obsažené v souborech /etc/csh.cshrc a /etc/csh.login. Abyste mohli spustit shell, musíte mít práva k těmto souborů nastavená na read. V těchto souborech může administrátor provádět změny, které se následně projeví na používání celého systému.

156 154 Kapitola 7: Práce se skripty V souboru /etc/csh.login jsou příkazy spouštěné jen jednou po přihlášení uživatele. Zde se pomocí příkazu setenv deklarují proměnné prostředí. Tyto pak mají globální platnost. Ještě zde můžete nastavit například typ terminálu, poštu a podobně. Kde mám uloženou konfiguraci svého shellu? Pokud je váš výchozí shell Bourn Again Shell, nejdůležitější soubory ukrývající konfiguraci shellu jsou.bashrc a.bash_history. Jsou umístěny v domovském adresáři. V souboru.bashrc_history jsou uchovávány příkazy, které jste použili. V souboru.bashrc si můžete upravovat proměnné a parametry lokálního charakteru, tedy pro vaše přihlášení. Jestliže používáte jiný shell, můžete mít v domovském adresáři i jiný soubor, dle vašeho shellu. Jak si můžu nastavit svůj shell Nastavit si můžete mimo jiné i to, co se vám bude vypisovat před kurzorem. Změnu můžete provést buď dočasně pro běžící shell, anebo trvale, pro každý nově spuštěný shell. Nejprve se podívejte, jak změnit aktuální shell: $ PS1='[\t] \W\$ ' Můžete zde zadávat více parametrů, pro ukázku si vyzkoušejte některé z nich: \t ukazuje systémový čas \u zobrazí uživatelské jméno \W vypíše jméno aktuálního adresáře \$ nastaví znak před kurzorem, v našem příkladě $ pro uživatele, # pro roota Ještě zmíním některé další parametry: \h část jména počítače \H jméno počítače \n nový řádek \d datum \l číslo konzoly \s jméno příkazového interpretu \v verze příkazového interpretu Znaky můžete uzavírat různým způsobem do závorek. $PS1='[\d\t\H] \l\w\n\$' Takto byste nastavili v hranaté závorce datum, čas a jméno počítače. Za hranatou závorkou se vypíše číslo konzoly. A na novém řádku uvidíte před kurzorem znak $. Pokud jste si vybrali a nastavili svůj vlastní styl, můžete jej opět zapsat do souboru ~/.bashrc ve tvaru PS1='[\d\t\H] \l\w\n\$'

157 Úvod do skriptování 155 Nyní se bude po každém novém spuštění shellu zobrazovat vámi nadefinované nastavení. Nastavení má mnohem více možností, včetně nastavení barev a podobně. Dokonce si můžete vytvořit svůj skript, který se bude spouštět, bude propojen na kalendář a na hodiny a bude vypisovat narozeniny, bude si s vámi povídat podle denní nebo noční doby Shrnutí souborů a jejich určení Ve vašem domovském adresáři se mohou vyskytovat tyto soubory souvisjící s Bourn Again Shellem: $HOME/.bash_profile načítaný při přihlášení $HOME/.bashrc načítaný při startu interpretu $HOME/.bash_logout načítaný při odhlášení $HOME/.bash_history evidence naposledy prováděných příkazů Nemusíte mít všechny tyto soubory, ale můžete si je vytvořit. Jak je to s historii příkazů Historii příkazů si můžete vyvolávat interaktivně pomocí šipek nahoru anebo dolů. Druhou možností je zobrazit historii ze souboru ~/.bash_history. Nemusíte procházet celý soubor, ale můžete si například zobrazit jen určitý počet příkazů: $ history less /etc/csh.login 369 less.login 370 less /etc/csh.login 371 history history 5 Příkazy se vypisují od nejstarších po nejnovější. Příkaz můžete opětovně spustit: $!369 Opět se spustí příkaz less.login. Lze v historii příkazů i vyhledávat? Samozřejmě by tato výhoda byla k ničemu, pokud by se v historii nedalo vyhledávat: $ history grep ps 5 ps -ef 12 history grep ps Vyhledávání provedete pomocí roury a příkazu grep. Lze vyhledané příkazy i rychle spouštět? Příkazy, které si vyhledáte v historii, můžete samozřejmě i rychle spouštět. Zadáte!prikaz (stačí první slovo, pokud se v historii neopakuje vícekrát). Například v historii příkazů mám uložený příkaz man history. Použitím příkazu!man

158 156 Kapitola 7: Práce se skripty se mi opět spustí manuálové stránky. Pokud si tedy pamatujete začátek příkazu, nemusíte procházet historii, stačí jen napsat!prikaz a příkaz se vám opět vykoná. Tohle může být mnohdy i nebezpečné. Abyste byli schopni ovlivnit, případně i změnit příkaz z historie, můžete pomocí příkazu shopt změnit chování: $ shopt -s histverify Toto nastavení si můžete provést ve vašem ~/.bashrc trvale. $ pavel@xwcnly:~>!man $ pavel@xwcnly:~> man history Příkaz z historie se vám zobrazí, ale můžete jej před spuštěním ještě editovat. Můžu historii příkazů vymazat? Z jakýchkoliv důvodů můžete vyžadovat vymazání historie příkazů. Není nutné mazat, editovat či jinak upravovat soubor ~/.bash_history. K těmto účelů opět slouží příkaz history, ale s přidáním parametru. history -c vymaže celou historii příkazů. history -r vymaže historii příkazů aktuálního sezení. Opět můžete tyto příkazy umístit do vašeho /.bash_history. Co to jsou zvláštní znaky Mezi zvláštní znaky patří: & *? \ " ' [ ] < > () $ %! ~ + ( ) Tyto znaky mají speciální úkoly i při používání ve skriptech, a proto se s nimi zachází trochu jinak. Proto je možná lepší používat je pouze tam, kde jsou k tomu určeny, a na jiných místech je nepoužívat. Pokud je potřebujete použít, uzavřete je například do jednoduchých uvozovek ' #' nebo použijte zpětného lomítka. Co to jsou bílé, prázdné znaky Znaky Enter, mezera a tabulátor mají také jiné účely, říká se jim bílé znaky. Využití symbolů *,?, [] Tyto symboly jsou v systémech typu Linux nepostradatelné. Možná jste použili někde dříve znak * a znak?. Tak jen pro zopakování Znak * znamená: všechny ostatní znaky. Tedy například dop* představuje například dopis, dopisnice, dopisovaný a podobně.

159 Úvod do skriptování 157 Znak? nahrazuje pouze jeden znak. Například?opis znamená například dopis, popis a podobně. Nyní se ještě podívejte na další symboly, a sice hranaté závorky. Pomocí hranatých závorek můžete nadefinovat rozsah toho, s čím se bude pracovat. Máte například soubory dopis1, dopis2, dopis3, dopis4, dopis_stary, dopis_novy. Potřebujete pracovat jen se soubory dopis1-4. Jedním způsobem je vypsat všechny soubory, druhým způsobem by mohlo být použití hvězdičky. To ještě pořád není úplně ono. $ ls -al dopis[1234] -rw-r--r-- 1 pavel users dub dopis1 -rw-r--r-- 1 pavel users dub dopis2 -rw-r--r-- 1 pavel users dub dopis3 -rw-r--r-- 1 pavel users dub dopis4 Na této ukázce se můžete přesvědčit o schopnosti hranatých závorek. Do hranatých závorek prostě uzavřete výčet toho, co má následovat. Výčet může být ve tvaru [1234] nebo ve tvaru [1 4]. Pokud máte mimo čísel i písmeno, potom můžete použít něco takového [1-4P]. Další možností je použití výčtu ve tvaru: $ ls -al dopis[a-za-z] -rw-r--r-- 1 pavel users dub dopiso -rw-r--r-- 1 pavel users dub dopisp Zde jsme použili jakýkoliv zástupný znak malé anebo velké abecedy. Dokonce můžete dávat závorky za sebe, třeba: $ ls -al dopis[a-za-z][a-za-z] -rw-r--r-- 1 pavel users dub dopisov Máte spoustu možností, jak nakombinovat symboly, abyste dostali výčet, který potřebujete. Na závěr ještě jedna ukázka: $ ls -al *pi?[1-4] -rw-r--r-- 1 pavel users dub dopis1 -rw-r--r-- 1 pavel users dub dopis2 -rw-r--r-- 1 pavel users dub dopis3 -rw-r--r-- 1 pavel users dub dopis4 Myslím, že využití zástupných symbolů je zřejmé. Nyní se podívejte na dva případy, které vypadají téměř stejně... $ ls -al?ralik -rwxr--r-- 1 pavel users dub kralik Zde vše proběhne jak má a dostanete výpis, jaký požadujete. $ ls -al \?ralik ls: nelze přistoupit k?ralik: Adresář nebo soubor neexistuje

160 158 Kapitola 7: Práce se skripty Zde můžete vidět, že přidáním zpětného lomítka před zástupný znak není brán jakýkoliv znak, ale je zde hledán znak?. Jak zjistit nastavené cesty Cesty jsou nastaveny v proměnné PATH. Obsah této proměnné zjistíte takto: $ echo $PATH /home/pavel/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/x11: /usr/x11r6/bin:/usr/games:/opt/kde3/bin: /usr/lib/jvm/jre/bin:/usr/lib/mit/bin:/usr/lib/mit/sbin:. Podobným způsobem můžete vypsat obsah všech proměnných, například $USER, $LANG a další. Jak vytvořit vlastní dočasnou proměnnou Vlastní proměnné si můžete vytvořit jednoduchým způsobem $ jmeno=pavel a následně se přesvědčíte $ echo $jmeno $ pavel První jednoduchý skript Zkuste si v nějakém textovém editoru napsat jednoduchý skript. Váš první skript nebude dělat nic úžasného. Spíš se jedná o seznámení a uvedení do problematiky, jak postupovat při tvoření skriptů. $ cat > skript1 date echo "kdo je aktualne pripojeny?" w Protože se nejedná o nic světoborného, lze vytvořit dokument tím nejjednodušším způsobem, například pomocí cat. Úkolem tohoto skriptu je vypsat aktuální datum a následně vypsat všechny připojené uživatele. $ skript1 bash:./skript1: Operace zamítnuta Pokud se pokusíte soubor ihned spustit, nepodaří se vám to. Nyní musíte soubor udělat spustitelným. $ chmod 777 skript1 $ ls -al skript1 -rwxrwxrwx 1 pavel users dub skript1 Můžete se přesvědčit, že je nastaveno správně. $ skript1 Čt dub 29 21:08:31 CEST 2010 kdo je aktualne pripojeny? 21:08:31 up 34 min, 3 users, load average: 0,02, 0,04, 0,14 USER TTY LOGIN@ IDLE JCPU PCPU WHAT pavel tty7 20:35? 45.72s 0.12s /bin/sh /usr/ pavel pts/1 20:35 33: s 0.73s kdeinit4: kde pavel pts/3 20: s 0.06s 0.00s /bin/sh./skr

161 Úvod do skriptování 159 Skript provede příkazy, jak jsou uvedené za sebou, a skončí. Pokud se vám i po nastavení oprávnění nepodaří soubor spustit, shell není nastavený, aby hledal spustitelné soubory v aktuálním, pracovním adresáři. V tomto případě musíte skript spustit příkazem $./skript1 Definujeme shell Potřebujete-li zajistit, aby se skript spouštěl ve vašem shellu, na který jste zvyklí, uvedete v úvodu každého vašeho skriptu definici shellu. #!/bin/bash nebo třeba #!/bin/sh Důvod, proč je dobré v záhlaví uvádět, ve kterém shellu se má skript provádět, je jednoduchý: shellu je více druhů a vy nevíte, který je zrovna spuštěný. U každého shellu se může provádění některých operací lišit. Zadáte-li, že se má skript spouštět v prostředí, které máte odzkoušené, vyhnete se problémům a chybným výstupům. Jak označit komentář Komentář je důležitým článkem skriptů, protože to, co tvoříte a dobře znáte dnes, za půl roku úspěšně zapomenete. Pak se dostáváte do situace, že nejprve louskáte půl hodiny skript, abyste vůbec pochopili o co jde... Používejte komentáře, opravdu vám při složitějších skriptech ušetří spoustu času. Komentář zadáváte pomocí # na začátku řádku. Tento řádek bude ignorován, můžete napsat cokoliv. Oddělení příkazů K oddělení příkazů vám slouží znak ;. Jedná se o to, že pokud napíšete na řádek více příkazů oddělených znakem ;, příkazy se vykonají postupně jeden po druhém. Podívejte: ls ; w ;ps? Dokumenty dopis2 Hudba Plocha Šablony a dopiso dopis3 kniha public_html tabulka bin dopisov dopis4 kralik skript1 Veřejné Documents dopisp dopis5 mtab skript2 Videa dokument dopis1 fstab Obrázky Stažené 21:46:47 up 1:12, 3 users, load average: 0,04, 0,03, 0,05 USER TTY LOGIN@ IDLE JCPU PCPU WHAT pavel tty7 20:35? 1: s /bin/sh /usr/ pavel pts/1 20:35 1:11m 0.00s 1.33s kdeinit4: kde pavel pts/0 21: s 0.01s 0.00s w PID TTY TIME CMD pts/0 00:00:00 bash pts/0 00:00:00 ps Nejprve se spustí první příkaz (ls), po jeho ukončení proběhne druhý příkaz (w) a po jeho skončení ještě příkaz (ps).

162 160 Kapitola 7: Práce se skripty Větvení skritpů Důležitou součástí skriptů jsou rozhodovací struktury, podmínky, cykly... Podívejte se na snad nejfrekventovanější. Větvení skriptu pomocí if.. then. Syntaxe je jednoduchá, používá se ve tvaru: if podmínka then podmínka pravdivá potom něco else podminka nepravdiva potom neco fi provede se vzdy Jednoduchá ukázka skriptu nazvaneho if1: echo -n "zadej cislo: " read cislo1 echo -n "zadej cislo: " read cislo2 if test $cislo1 = $cislo2 then echo "Cisla jsou stejna. " else echo "Cisla stejna nejsou " fi echo "End" Skript uložíte do souboru if1, změníte oprávnění na spustitelný soubor a spustíte./ if1 Nejdříve je po vás žádáno číslo, to se uloží do proměnné cislo1. Následně je po vás žádáno druhé číslo, to se uloží do proměnné cislo2. Čísla jsou porovnána, a pokud jsou stejná, vypíše se text Cisla jsou stejna a také text End. Pokud podmínka splněna není, čísla stejná nejsou, provede se větev za else. Na závěr se provede to, co je za fi. Tohle se provede vždy. Někdy se může stát, že vám nebude stačit pouze if, then a else. V takovém případě můžete ještě použít elif. Elif je stejné jako else, rozdíl je v tom, že příkaz else musí být spárovaný s příkazem fi. Ke všem vnořeným elif stačí mít pouze jeden příkaz fi. Tip Pro jednoduchost jsem použil utilitku test, která je součástí Bourne Again Shellu. O této se můžete dočíst více, pokud zadáte $ info test nebo můžete zkusit $ type test echo if while fi then test je součást shellu echo je součást shellu if je klíčové slovo shellu while je klíčové slovo shellu fi je klíčové slovo shellu then je klíčové slovo shellu Takových utilitek a klíčových slov je v shellu více.

163 Větvení skritpů 161 Podívejte se na utilitku test: obsahuje ještě další volby parametry, dokáže pracovat se soubory a s adresáři, porovnává jejich velikost. Více informací naleznete v manuálových stránkách. Řídicí struktura for Tato řídicí struktura provádí opakovanou činnost až do určité doby. Nejprve opět syntaxe: for index-cyklu do vykonavej prikazy done Postupně se tedy přiřazují parametry příkazu a pro každý se provede činnost v sekci do. Pro každý parametr cyklu for se tedy jednou provedou příkazy v sekci do. Pokud už argumenty nejsou, cyklus skončí. Opět jednoduchý příklad: for arg do echo "$arg" done Opět musíte vytvořit soubor, změnit oprávnění souboru na spustitelný a následně jej spustit. Skript čeká na zadání argumentů a po zadání argumentů je vypíše jeden po druhém. Když žádný argument nedostane, nic neprovede. $./testfor Skript nedostal žádné argumenty a skončil. $./testfor kolo lod auto letadlo kolo lod auto letadlo V tomto případě se každý z argumentů objevil ve výpisu. Cyklus prováděný pomocí while Tento druh cyklu se provádí tak dlouho, pokud je podmínka platná. Podívejte se opět nejprve na syntaxi. While test do delej neco done Zkuste si jednoduchý příklad: #! /bin/bash cislo=0 while [ $cislo -lt 100 ] do echo \ "$cislo" cislo=$(expr $cislo + 10) done echo

164 162 Kapitola 7: Práce se skripty Nastavíme proměnnou cislo na nulu. Ono -lt provádí provádí numerické porovnávání, v tomto případě porovnává vaši proměnnou cislo, je-li menší než sto. Nejprve proměnnou cislo vypíše a následně, pokud není větší nebo rovna stu, zvýší její hodnotu o deset. Po uložení a nastavení souboru na spustitelný skript spusťte. $./vycet Ještě se podívejte na porovnání numerické hodnoty, kterou provádí opět utilitka test. Můžete také použít: -ne porovnává nerovnost -eq porovnává rovnost -lt menší než -le menší nebo roven -gt větší než -ge větší nebo roven = pomocí tohoto symbolu se porovnává rovnost řetězce!= nerovnost řetězce Řídicí struktura until Jako další si vyzkoušíte cyklus until. Je podobný jako již zmiňovaný while. Rozdíl je v tom, že u cyklu while se příkazy provádí, pokud je podmínka pravdivá, u cyklu until se příkazy provádí až do okamžiku, kdy je podmínka pravdivá. (Pravdivá nebyla a v okamžiku, kdy je pravdivá, končí.) A zase příklad, tentokrát se pokoušíte uhodnout hodnotu proměnné ovoce. Vytvořte soubor ovoce, změňte soubor na spustitelný a spusťte jej. #! /bin/bash ovoce=jahoda typ=zadne echo "Zkus uhadnout ovoce!" echo until [ "$typ" = "$ovoce" ] do echo \ "Tvuj typ " read typ done echo "Ano spravne! "

165 Větvení skritpů 163 Po spuštění skriptu se můžete přesvědčit, že dokud nezadáte správnou hodnotu proměnné ovoce, bude cyklus běžet. $./ ovoce Zkus uhadnout ovoce! Tvuj typ hruska Tvuj typ meloun Tvuj typ tresen Tvuj typ jahoda Ano spravne! Přerušení vykonávání příkazu pomocí Break a Continue Cykly jako for, while until budete někdy potřebovat přerušit. K tomuto účelu se používají příkazy Break. Příkazem break se vykonává až první příkaz za done a cyklus se ukončí. Při příkazu continue se opět řízení předá příkazu done, ale pokračuje se v cyklu. V této nepraktické ukázce se podívejte, jak tyto dva příkazy fungují. $ more preuseni #! /bin/bash #jednoduchy skript simulujici cinnost #prikazu break a continue for index in Do if [ $index -le 600 ] then echo "pokracuj..." continue fi # echo $index # if [ $index -ge 1000 ] then echo "prerus" break fi done Cyklus for má zadána čísla 100 až Pro tato čísla má vykonat činnost porovnává, je-li číslo menší nebo rovno číslu 600. Pokud je menší, vypíše se pokracuj... a cyklus pokracuje v testování dalších čísel, pokud má. Jakmile podmínka není splněná, tedy testované číslo je větší než 600, přejde se k druhé části skriptu za fi a číslo se vypíše, pokud není větší nebo rovno Když nalezne první číslo větší než číslo 1000, toto číslo vypíše a ukončí se. Že se ukončí, si můžete všimnout na ukázce; dalším číslům následujícím za číslem 1100 (to je první číslo větší nebo rovno číslu 1000) už se nevěnuje pozornost.

166 164 Kapitola 7: Práce se skripty Výpis po spuštění skriptu: $./preuseni pokracuj... pokracuj... pokracuj prerus Větvení skriptu pomocí Case Tento příkaz použijete v okamžiku, kdy se dostáváte k několika možnostem a pro každou z možností potřebujete vykonat určité příkazy. Syntaxe by vypadala nějak takto: case test-retezec mozny_vysledek1 prikazy mozny_vysledek2 prikazy mozny_vysledek3 prikazy... esac Opět se můžete podívat na ukázku. #! /bin/bash #ukazka vetveni echo / "Zadejte cislo od 1 do 4!" read cislo case "$cislo" in 1) echo "Napsali jste 1." ;; 2) echo "Napsali jste 2." ;; 3) echo "Napsali jste 3." ;; 4) echo Napsali jste 4. *) echo "Nenapsali jste pozadovane cislo!" ;; esac Činnost asi bude dostatečně zřejmá. Skript vás požádá o zadání čísla 1 4. Když zadáte jedno z těchto čísel, toto číslo se vypíše a skript se ukončí. Pokud zadáte cokoli jiného, než je požadováno, následují příkazy za *) a skript se také ukončí.

167 Větvení skritpů 165 Výpis při spuštění skriptu: $./vetveni / Zadejte cislo od 1 do 4! 1 Napsali jste 1. [pavel@xwcnly ~]$./vetveni / Zadejte cislo od 1 do 4! 4 Nenapsali jste pozadovane cislo! [pavel@xwcnly ~]$./vetveni / Zadejte cislo od 1 do 4! 1 Napsali jste 1. [pavel@xwcnly ~]$./vetveni / Zadejte cislo od 1 do 4! 3 Napsali jste 3. [pavel@xwcnly ~]$./vetveni / Zadejte cislo od 1 do 4! a Nenapsali jste pozadovane cislo! Vytvoření jednoduchého menu Podívejte se ještě na jednu jednoduchou ukázku vytvoření malého menu pomocí case. #!/bin/bash #ukazka 2 - vetveni case #jednoduche menu echo -e " \n Uzivatelske menu:\n" echo "a. Jaky pouzivate system" echo "b. Jake je dnes datum" echo "c. Je dostupny server echo "d. Kdo je prihlaseny" echo -n "Zadej a, b, c, d:" read odpoved echo case "$odpoved" in a) uname -a ;; b) date ;; c) ping -c 3 ;; d) who ;; *) echo "Vami zadana volba je mimo rozsah..." $odpoved echo "Zkuste to znovu!" ;; esac

168 166 Kapitola 7: Práce se skripty Opět je funkčnost dostatečně čitelná. Volíte mezi čtyřmi písmeny, pro každé písmeno je nastavena nějaká akce. Pokud zadáte špatný znak, budete na to upozorněni. $./menu Uzivatelske menu: a. Jaky pouzivate system b. Jake je dnes datum c. Je dostupny server d. Kdo je prihlaseny Zadej a, b, c, d:c PING c1.idnes.cz ( ) 56(84) bytes of data. 64 bytes from c1.idnes.cz ( ): icmp_seq=1 ttl=119 time=47.9 ms 64 bytes from c1.idnes.cz ( ): icmp_seq=2 ttl=119 time=46.9 ms 64 bytes from c1.idnes.cz ( ): icmp_seq=3 ttl=119 time=48.4 ms --- c1.idnes.cz ping statistics packets transmitted, 3 received, 0% packet loss, time 2051ms rtt min/avg/max/mdev = /47.787/48.474/0.690 ms Zde bych vás upozornil na příkaz echo -e \n. Tuto volbu jste použili pro zadání nového řádku před a za menu, tím se zvýší čitelnost menu a vypadá efektněji. Místo znaků \n můžete u příkazu echo použít ještě další možnosti: \a upozornění \b posun o znak zpět \n nový řádek \r return \t horizontální tabulátor \v vertikální tabulátor \\ obrácené lomítko S příkazem case lze provádět spoustu dalších věcí, stejně jako s cykly. Zkoušejte, zkoušejte, zkoušejte Řídicí struktura Select Snad nejnazornější bude opět ukázka: #!/bin/bash #ukazka jednoducheho skriptu - pouziti select PS3="Vyberte jedno z mest: " select mesto in Brno Olomouc Prostejov Ostrava Znojmo Kromeriz STOP do if [ $mesto = STOP ] then echo "Dekuji za vyber! " break fi

169 Větvení skritpů 167 echo "Vybral jste mesto $mesto. " echo "To je vyber cislo $REPLY. " echo done V úvodu skriptu si nadefinujete proměnnou, v tomto případě mesto, a seznam jejích hodnot. Následně si nadefinujete PS3, to je speciální výzva struktury select. Ve výchozím stavu bývá psána znaky?#; je možné nastavit i jinou hodnotu. Z menu si vyberete jednu hodnotu, tu zadáte pomocí čísla před volbou. Provedou se příkazy mezi do a done pro tuto volbu. Jestliže zvolíte číslo 7) STOP, skript se ukončí. Ukázka další jednoduchý telefonní seznam Jako ukázka dalšího jednoduchého skriptu nám poslouží jednoduchý telefonní seznam. Člověk je líný tvor, a tak vyhledává, jak si zjednodušit život. Já jsem zde použil seznam s telefonními čísly, ale úplně stejně se dá skript vytvořit pro data narození, pro nějaké kódy denně používané apod. Opět jen jednoduché nastínění: #!/bin/bash #skript - jednoduchy telefonni seznam #skript spociva v jednoduchem vyhledavani v tomto souboru grep -i "$1" <<+ Holy Petr Buk Jiri Hola Hana Kuchtova Jirina Bratr Petr Kolik Jiri Princip je založen na použití příkazu grep. V souboru máte uložena data, v kterých se vyhledává. Znaky <<+ a znak + na konci souboru musíte uvádět. Tyto znaky vymezují data, která jsou předávána příkazu grep ke zpracování. Poslední plus musí být na samostatném řádku. $./telefony Jiri Buk Jiri Kuchtova Jirina Kolik Jiri Nebo vyhledáváte podle části dat: $./telefony 8 Hola Hana Bratr Petr Kolik Jiri Tímto jste se seznámili se základními strukturami skriptů. Není to a ani nemůže být vyčerpávající výčet možností. Každý skript se odvíjí od toho, k čemu jej potřebujete. Nebojte se zkoušet a psát jednodušší skripty, až se dostanete ke složitějším. Usnadní vám život.

170 168 Kapitola 7: Práce se skripty Funkce Na konci kapitoly se ještě podívejte na pár řádek o funkcích. Je to další dobrá vlastnost Linuxu a Unixu. Funkce se hodně podobají skriptům. Obsahují posloupnost příkazů, ale jsou na rozdíl od skriptů uloženy v paměti počítače a v případě potřeby je používáte. Provádění funkcí je i rychlejší. Funkce můžete buď napsat do vašeho souboru.bash_profile, nebo je můžete umístit do skriptu anebo je můžete psát přímo na příkazovém řádku. Odstranit je můžete použitím příkazu: unset funkce Po odhlášení se z shellu se funkce také uvolní. Jednoduchá syntaxe funkce by mohla vypadat asi takhle: jmeno_funkce () ( prikazy... ) Opět jednoduchá ukázka: funkce () #nadefinovani funkce #ukazka funkce ( date echo "jaka je verze systemu? " uname -a echo "je dostupny server seznam.cz? " ping -c 3 echo "kdo je aktualne prihlaseny? " who ) Tuto funkci napíšete do souboru.bash_profile (tuto ne, ale vaši užitečnější...). Pomocí příkazu.bash_profile opět spustíte shell a nyní pokaždé, když zadáte funkce se vám provede kód funkce: $ funkce So kvě 29 22:10:49 CEST 2010 jaka je verze systemu? Linux XWCNLY fc12.i686 #1 SMP Fri Apr 30 20:34:53 UTC 2010 i686 i686 i386 GNU/Linux je dostupny server seznam.cz? PING ( ) 56(84) bytes of data. 64 bytes from ( ): icmp_seq=1 ttl=250 time=46.8 ms 64 bytes from ( ): icmp_seq=2 ttl=250 time=47.4 ms 64 bytes from ( ): icmp_seq=3 ttl=250 time=45.4 ms

171 Větvení skritpů ping statistics packets transmitted, 3 received, 0% packet loss, time 2048ms rtt min/avg/max/mdev = /46.609/47.463/0.850 ms kdo je aktualne prihlaseny? pavel tty :18 (:0) pavel pts/ :01 (:0.0) Funkce se píší dle syntaxe jazyka C. Jak se funkce zadávají přímo z klávesnice Funkce by neměly význam, pokud by neuměly číst argumenty. Podívejte se na nástin, jak se funkce zadává z příkazového řádku a jak čte parametry. $ funkce4 () ( > echo "zadal jsi $1 argument" > echo "jeste si zadal $2 argument" > ) Nejprve napíšete jméno funkce a závorky () a na konec řádku dáte (, tím začínáte tvořit funkci. Každá akce začíná >. Konec zadávání provedete závorkou ). Tím se dostanete z editačního režimu opět do normálního příkazového řádku. Nyní je funkce uložena v paměti a můžete ji používat až do ukončení shellu. Výsledek nové funkce nazvané funkce4 je uveden dále. $ funkce4 e t zadal jsi e argument jeste si zadal t argument

172

173 KAPITOLA 8 Když systém zlobí Startovací prostředí, zavaděč Grub V dnešních dobách je patrně více rozšířen zavaděč GRUB. Tento zavaděč je nainstalován při instalaci systému, a pokud vše funguje, jak má, už se do něj nemusí zasahovat. Ale jsou chvile, kdy je nezbytné se pustit i do opravy či rozšíření anebo změny. Jak změnit pořadí bootování Nejednodušší operací je patrně změna pořadí bootování. Patrně máte ve vašem počítači dva anebo i více operačních systémů. Jeden z nich potřebujete upřednostnit, aby startoval v případě, že nevyberete jiný. Pokud jste tohle neprovedli při instalaci, musíte editovat soubor uložený /boot/grub/menu.lst more /boot/grub/menu.lst timeout 10 color black/cyan yellow/cyan gfxmenu (hd0,4)/gfxmenu default 0

174 172 Kapitola 8: Když systém zlobí title windows root (hd0,0) chainloader +1 title linux kernel (hd0,4)/vmlinuz BOOT_IMAGE=linux root=uuid=f522eec0-9dd9-480e-8c84- -a35cc8700d0c vmal loc=256m resume=uuid=5bff0a29-ac aae c7be0 splash=silent vga=788 initrd (hd0,4)/initrd.img V úvodu souboru jsou obecná nastavení barev a podobně. Dále je soubor rozdělen do sekcí podle operačního systému. Nejednodušší variantou je přesunout sekci operační systému, který bude startovat jako první, na první místo v souboru, tedy hned za úvodní řádky. Druhou variantou je změnit parametr default v úvodu souboru a zde zadat číslo podle pořadí v souboru. timeout 10 color black/cyan yellow/cyan gfxmenu (hd0,4)/gfxmenu default 0 Zde změníte default na 1. Jako výchozí bude startovat po deseti vteřinách systém uvedený na druhém místě. Jak můžu obnovit grub po instalaci Windows? Tento problém spočívá v tom, že pokud nejprve nainstalujete Windows a následně Linux, Windows si nainstaluje svůj MBR. Po instalaci Linuxu a zaváděče Grub Linux najde Windows a přidá ho do svého zavaděče do menu. Vše funguje, jak má. V opačném případě nejprve nainstalujete Linux a následně Windows, potom si Windows vytvoří svůj zavaděč, zavaděč Linuxu ignoruje a odstraní jej. Existují návody, jak přidat startování Linuxu do MBR, ale jednoduší je použít Grub a nainstalovat jej, ten přidá i nabídku pro Windows. K tomu abyste znovu nainstalovali nebo opravili zavaděč Grub, musíte pomocí instalačního média nabootovat do záchraného režimu a následně zadat příkaz: grub-install /dev/sda Dále už stačí jen dvakrát použít klávesy Ctrl+D a po provedení restartu by se mělo normálně objevit prostředí zavaděče Grub. Jak můžu ovlivnit prodlevu před startem? Opět stačí pouze editovat úvod souboru a v řádku timeout opravíte číslo třeba na 3. Prodleva bude tři vteřiny. Nechci startovat do grafického prostředí Můžete změnit i úroveň běhu systému, pokud při zobrazení nabídky pro spuštění napíšete jako doplňující parametr 3 a potom stisknete klávesu Enter.

175 Startovací prostředí, zavaděč Lilo 173 Startovací prostředí, zavaděč Lilo U některých distribucí je nainstalován zavaděč Lilo. Opět se zavaděč nainstaluje při instalaci systému, kde provedete základní nastavení. Průběh zavádění Lilo se zavádí v několika krocích. Každé úspěšné ukončení je signalizováno písmenem. Žádné písmeno Lilo není nainstalován nebo je na nealtivní partition. Písmeno L Zavaděč je spuštěn, ale nemůže načíst nabídku systémů. Písmena LI Zavaděč nabídku nalezl, ale není schopen ji spustit. Písmena LIL Zavaděč nabídku spustil, ale není schopen přečíst zdrojový soubor s touto nabídkou (většinou /boot/map). LIL- Tabulka popisující zavaděč je poškozena. Jak editovat nabídku v Lilo Nabídka je uložena v /etc/lilo.conf a editovat lze oblíbeným editorem. Vypadat by měla přibližně takto: image = /boot/vmlinuz root = /dev/hda2 label = Slackware13.0 read-only other = /dev/hda5 label = MujLinux other = /dev/hda7 label = OpenSuse other = /dev/hda9 label = EvilEntity Opět můžete nabídky operačních systémů mezi sebou prohazovat. Jako první se bude spouštět ten, který je uveden jako první. Situace s Windows je stejná, Linux dokáže Windows najít a přidat do nabídky, opačně ne. Lilo i Grub lze vyšperkovat i graficky, ale je otázka, jestli námaha stojí za to. Výpis aktuálních procesů Výpis běžících procesů opět a jinak Tento úkol jste si vyzkoušeli v úvodu, nyní k němu ještě něco přidáte. Tak jen stručně pro zopakování. Pro výpis běžících procesů použijete příkaz ps. Pokud zadáte příkaz bez parametrů, dostanete výpis procesů spuštěných uživatelem z terminálu, kde spouští ps. Ve výpisu je pro vás důležité PID; pomocí tohoto čísla jste schopni případně proces ukončit nebo jinak dokončit. Ve sloupci TTY vidíte, na kterém terminálu byl proces spuštěn. Je-li místo čísla otazník, proces je spuštěn jiným způsobem, například systémem, spouštěčem apod.

176 174 Kapitola 8: Když systém zlobí Pokud zadáte i parametry ef, dostanete podrobný výpis o všech procesech. Pokud ještě pozměníme parametry a zadáme $ ps ex dostanete asi takovýto výpis: $ ps ax PID TTY STAT TIME COMMAND 1? Ss 0:01 /sbin/init 2? S 0:00 [kthreadd] 27? SN 0:00 [ksmd] 388? S<s 0:00 /sbin/udevd -d Objevil se zde další sloupec označený STAT a napoví vám hodně o stavu procesu. Proto není vhodné hovořit o výpisu běžících procesů. Jak vidíte v následujícím výčtu, některé procesy čekají, a tedy zrovna neběží, některé byly přerušeny a tak podobně. S proces spí čeká až mu bude přidělen procesor. W paměťový prostor vyhrazený danému procesu byl kompletně uložen na disk (odswapován). R proces zpracovává procesor. T proces byl pozastaven. D proces je v nepřerušitelném spánku (v tomto stavu jsou většinou procesy svázané s I/O operacemi). Z proces je proces, jehož rodičovský proces skončil (třeba díky nějaké závažné chybě sirotka; rodičem zombie procesu se stává Init). Tyto procesy vznikají v systému obvykle jako důsledek špatně napsaných programů. L proces má uzamknuté stránky v paměti. < proces s vysokou prioritou. N proces s nízkou prioritou. Proč se někde uvádí parametr a, někde parametr e Je tomu vskutku tak: oba parametry jsou správně a mají stejný význam. Parametr a se používal v operačních systémech BSD a parametr e v operčních systémech Linux. V současnosti si myslím, že by všechny Unix Linux systémy měly umět parametry oba. Vyzkoušejte si na vašem systému, co bude fungovat. Můžu si vypsat jen určité procesy? Můžete si také vypsat jen procesy, které vás zajímají. $ ps ef grep firefox pavel :27? 00:00:00 /bin/sh /usr/lib/firefox-3.5.8/run- -mozilla.sh /usr/lib/firefox-3.5.8/firefox pavel :27? pavel :33 pts/0 00:03:13 /usr/lib/firefox-3.5.8/firefox 00:00:00 grep firefox Pokud potřebujete ještě další informace a varianty tohoto příkazu, podívejte se do manuálových stránek. Voleb je pro tento příkaz opravdu dost.

177 Strom procesů 175 Vyhledávání procesů grep Jednodušší možností výpisu procesů je příkaz pgrep. Větší užití ale zřejmě najdete při vyhledávání procesů. Na následujícím výpisu se můžete podívat na hledání procesu kde: $pgrep -l kde startkde start_kdeinit kdeinit kded kdesud Objeví se vám zde číslo úlohy a název úlohy. Podobný úkol by se dal napsat i pomocí ps, ale příkaz by byl složitý. Bez parametru -l se ve výpisu objeví pouze PID procesů. Lze vyhledávat i podle skupiny Někdy můžete chtít vyhledávat procesy náležející určité skupině. V tomto případě použijete $pgrep -l -G users Vyhledávání i podle uživatele $pgrep -l -U pavel Funguje i vyhledávání všech procesů, kromě jména $pgrep -lv -u pavel V tomto případě dostanete výpis všech procesů, které nevlastní uživatel pavel. Strom procesů Který proces se kterým souvisí Občas potřebujete vyhledávat procesy související s jinými procesy. Může vám pomoci třeba tento příkaz: $ pstree init NetworkManager dhclient (NetworkManager) Thunar abrt-applet atd auditd audispd sedispatch (audispd) (auditd) Jak vidíte, procesy jsou seřazeny pole toho, jak který se kterým souvisí, jak který proces spouští další procesy. Jedná se tedy o strom procesů. Na vrcholu je proces init a pod ním se větví další a další procesy. Pokud chceme odříznout některou nefungující větev procesů, stačí ukončit proces nejvíce

178 176 Kapitola 8: Když systém zlobí vlevo rodičovský proces. Pokud byste chtěli zrušit proces init, který spouští všechny ostatní procesy (větve), zastavíte celý systém. Samozřejmě k tomuto přehlednému výpisu ještě potřebujete PID a PUD (čísla procesů). V tomto případě použijete parametry k příkazu: pstree -pu Ve výpisu v závorce se vám objeví PID číslo procesu nebo UID vlastníka procesu. Pro porovnání pstree -p ~~ wpa_supplicant(1076) xfce4-power-man(1656) xfce4-settings-(1659) xfconfd(1635) xfrun4(2121) xfsettingsd(1640) xinetd(1300) pstree -pu ~~ wpa_supplicant(1076) xfce4-power-man(1656,pavel) xfce4-settings-(1659,pavel) xfconfd(1635,pavel) xfrun4(2121,pavel) xfsettingsd(1640,pavel) xinetd(1300) Co nejvíce zatěžuje procesor Často se dostanete do problému, že je systém pomalý, a potřebujete zjistit, co nejvíce zatěžuje procesor. Jednou z variant, jak to zjistit, je použití příkazu top. Stačí tedy, pokud napíšete: # top Uvidíte podobný výpis jako na obrázku 8.1. Nad tabulkou s jednotlivým procesy se můžete dočíst o využití procesoru, obsazení paměti, využití swapu odkládacího prostoru. Zjistíte, kolik procesů běží, kolik spí, kolik je zombie procesů a kolik je zastavených. V tabulce níž vidíte seřazené procesy od těch, které zabírají nejvíce času procesoru, až po ty na čas nejméně náročné. Zobrazení se neustále obnovuje v pravidelných intervalech, takže máte přehled, kdy a jak vyletí zatížení procesoru. Můžete také vysledovat, jak běží proces dlouho a další informace. Výpis ukončíte napsáním písmena q. Co se týká dalších parametrů u tohoto příkazu, mohou se vám hodit kupříkladu: -c má za úkol vypisovat celou příkazovou řádku, tedy včetně cesty ke spouštěným procesům. V normální výpisu se zobrazuje pouze jméno příkazu. -d tímto parametrem jste schopni ovlivnit a nastavit čas v sekundách, kdy se bude obnovovat výpis. top -d 20 výpis se bude obnovovat po dvaceti vteřinách.

179 Strom procesů 177 Obrázek 8.1: Co zatěžuje procesor Zajímavý může být parametr -u pavel. Zadáním tohoto parametru a jména uživatele budete zkoumat procesy spouštěné konkrétním uživatelem. Můžete také využít PID procesu nebo procesů a vypisovat si jen konkrétní procesy: top -p 2334 anebo pro více procesů: top -p 2334,2331,2333 S tímto příkazem si lze i pohrát, protože umožňuje i interaktivní zobrazení a přepínání, přidávání a odebírání sloupců. Podívejte se na některé z těchto možností. Nápovědu získáte, pokud při spuštěném příkazu top stisknete klávesu H. Ve stručné nápovědě si můžete vybrat, které sloupce se budou zobrazovat, můžete si navolit barvy. Tak jen na ukázku. Pokud tedy máte spuštěný výpis procesů pomocí příkazu top, zkuste stisknout klávesu I, následně opět stiskněte I. Přepínáte se mezi zobrazením nečinných nebo zombie procesů. Teď pro změnu stiskněte klávesu C a opět klávesu C. To se přepínáte mezi výpisy buď jen jména příkazu, anebo celého příkazového řádku. A ještě si zkuste jeden příklad. Stiskněte klávesu F, poté stiskněte například klávesy D a F, nakonec klávesou Enter provedete výběr sloupců. Výběr funguje tak, že sloupce, které máte ve výpisu, jsou s hvězdičkou. Sloupce, které hodláte vybírat, mají různá písmena. Stiskněte klávesu s písmenem. Jestliže jste stiskli písmeno s hvězdičkou, hvězdička zmizí a ve výpisu sloupec nebude. Naopak pokud jste stiskli písmeno, kde hvězdička nebyla, hvězdička se objeví a sloupec bude ve výpisu.

180 178 Kapitola 8: Když systém zlobí V poslední ukázce jste stisknutím písmen D a F přidali do výpisu uživatelské ID a jméno skupiny, kam uživatel patří. Jak ukončit proces Občas se najde nějaký proces, který neprobíhá a nevykonává to, co potřebujete. Potřebujete jej tedy ukončit násilím. Jednou variantou je zjistit, jak se proces jmenuje a jaké má číslo PID. Následně pomocí příkazu kill -9 PID tento proces ukončíte. Tuto variantu jste zkoušeli v první kapitole. Varianta za použití příkazu killall Existuje i jiná varianta: jestliže nechcete hledat, pod jakým PID je proces spuštěn, a víte, jak se špatný proces jmenuje, použijte příkaz: killall xterm Zkuste si například několikrát spustit třeba jinou variantu terminálu na pozadí xterm & xterm & xterm & a následně je všechny ukončíte použitím příkazu killall xterm Všechny instance xterm budou uzavřeny. Bude to fungovat i tehdy, když spustíte několikrát xterm a z posledního terminálu opět spustíte xterm. Po zadání příkazu killall se všechny instance xterm uzavřou. Nezáleží tedy na tom, z kterého terminálu byl příkaz spuštěn. Prostě se ukončí všechny instance daného procesu. Pokud chcete informace o tom, co bylo ukončeno, použijte parametr -v: $ killall -v xterm Killed xterm(2860) with signal 15 Killed xterm(2878) with signal 15 Killed xterm(2896) with signal 15 Samozřejmě můžete poslat i jiný signál než ukončení. Signály, které můžete poslat, zjistíte zadáním parametru -l: killall -l HUP INT QUIT ILL TRAP ABRT IOT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH IO PWR SYS A následně si vyberete jeden z možných signálů a pošlete jej. Například: killall -QUIT -v xterm Killed xterm(3064) with signal 3 Můžete ještě použít parametr -i; ten po vás bude vyžadovat potvrzení, jestli opravdu chcete provést operaci s procesem. $ killall -QUIT -v -i xterm Signal xterm(3123)? (y/n) y Killed xterm(3123) with signal 3

181 Strom procesů 179 Jak je to s úrovněmi běhu Další výhodou u linuxových distribucí je práce v různých úrovních, v takzvaných run levelech. Systém může pracovat v těchto run levelech: 0 halt vypnutí 1 single user jednouživatelské prostředí pro údržbu a opravu systému 2 5 multi user mnohouživatelské prostředí 2 bez podpory sítě 3 většinou textové prostředí, například pro servery, nebo v případě řešení problémů 4 nemusí být v distribuci 5 grafické prostředí 6 reboot restart systému Jak se můžu přepnout Přepínání se provádí příkazem init cislo_levelu tedy init 5 pro grafické prostředí. Kdo byl naposled přihlášený Občas se může hodit příkaz na zjištění, kdo kdy byl přihlášený. K tomuto účelu se velice dobře hodí last anebo pokud hledáte konkrétního uživatele last uzivatel například: $last kmp kmp tty3 Fri Apr 30 10:55 - down (02:55) kmp tty2 Sun Apr 25 21:42 - down (00:17) Zobrazuje se v chronologickém pořadí od nejnovějšího příhlášení. Nezobrazí se vám aktivita roota. Systémové logy Systém si žije svým životem, a pokud je vše v pořádku, nevíte o žádných problémech, nic vám nechybí. Jednou ale narazíte na problémy a budete potřebovat lokalizovat závadu; k tomu vám mohou posloužit systémové logy. Existuje několik možností, jak si tyto záznamy z různých aplikací nebo z jádra číst. První možností je procházet jednotlivé soubory logy, které jsou umístěné vesměs v adresáři /var/log. Tento adresář obsahuje spoustu různých souborů a podadresářů s dalšími soubory. Podívejte se například na soubor /var/log/messages. Zde se zaznamenávají události jádra a systému.

182 180 Kapitola 8: Když systém zlobí Obrázek 8.2: Výpis souboru /var/log/messages Na obrázku vidíte, že soubor je rozdělen do několika sloupců a vcelku přehledně se v něm dá orientovat. V prvních několika sloupcích vidíte datum a čas. Dále následuje, čeho se problém týká i s krátkým popisem. Z dalších souborů s událostmi bych jmenoval: /var/log/mailxxx logy týkající se pošty /var/log/secure logy týkající se bezpečnosti systému, přihlašování, autentizace /var/log/samba logy týkající se Samby /var/log/firewall logy týkající se firewallu /var/log/xorgxxx logy týkajíce Xorg /var/log/bootxx logy týkající se startu systému Procházení jednotlivých logů může být samozřejmě velmi zdlouhavé; existují různé grafické nadstavby, které vám přehledně zobrazují tyto události podle jednotlivých kategorii. Těm se ale věnovat zatím nebudete, protože to není obsahem této knihy. Existuje i nástroj pro příkazovou řádku, který pracuje i bez grafické nadstavby. Jedná se o nástroj syslogd anebo novější syslog-ng. Tento nástroj si musíte doinstalovat, není standartně součástí všech systémů.

183 Strom procesů 181 Před spuštěním ještě musíte nastavit konfigurační soubor, kde zadáte, co a kam se má zapisovat. Podívejte se na konfigurační soubor: $ less /etc/sys # /etc/syslog.conf - Configuration file for syslogd(8) # # For info about the format of this file, see "man syslog.conf". kern.warning;*.err;authpriv.none /dev/tty10 kern.warning;*.err;authpriv.none /dev/xconsole *.emerg * # enable this, if you want that root is informed # immediately, e.g. of logins #*.alert root # all -messages in one file # mail.* -/var/log/mail mail.info -/var/log/mail.info mail.warning -/var/log/mail.warn mail.err /var/log/mail.err # Warnings in one file # *.=warning;*.=err *.crit -/var/log/warn /var/log/warn Zde vidíte jen část konfiguračního souboru. Řádky jsou rozděleny na takzvané selektory a akce. Selektor definuje původce zprávy a akce definuje, jak se má zpracovat. Která zařízení používá syslogd? auth autentizační a bezpečnostní systémy authpriv stejné jako auth, ale se záznamem informací na bezpečné místo cron události služby cron daemon systémové a síťové služby kern jádro systému lpr tiskový podsystém mail elektronická pošta news síťové zprávy A mohou být i další. V dalším výčtu se podívejte, jakou prioritu mohou mít zprávy: debug ladicí informace info informativní zprávy notice upozornění

184 182 Kapitola 8: Když systém zlobí warning varování err error, chyba crit kritické stavy (havárie, selhání hardwaru) alert výstrahy, nutno okamžitě řešit emerg havárie Pomocí těchto výčtů můžete už jednoduše dešifrovat konfigurační soubor a případně jej nastavit k obrazu svému. V některých okamžicích se vám může hodit, když všechny události přesměrujete na konzolu číslo dvanáct. Potom se přepnete pomocí kláves Ctrl+Alt+F12 na konzolu a vidíte aktuálně všechny události. Stačí, pokud na konec souboru dopíšete: *.* /dev/tty12 Podobně je v některých systémech nastaven výpis varovných informací jádra na konzolu 10. Vyzkoušejte si to, v případě nutnosti se vám to bude určitě hodit. Služby běží, nebo ne Šikovnou pomůckou na některých systémech může být příkaz service. Tímto příkazem spustíte skript, který buď oznamuje stav systémové služby, anebo tento stav může měnit. Vyzkoušejte si: #service -s Checking the status of SuSEfirewall2 Checking the status of SuSEfirewall2 Checking for service AppArmor Event daemon: Checking for service acpid ALSA sound driver loaded. Checking for service auditd Checking for service automount Checking for Avahi daemon: Checking for Avahi DNS Configuration daemon:... running running unused running running running unused running dead Použijete-li parametr -s, vypíše se vám aktuální stav všech služeb. (Ukázka obsahuje jen část výpisu.) Se službami můžete samozřejmě manipulovat, startovat, vypínat a restartovat. #/sbin/service sshd stop Shutting down SSH daemon Opětovné nastartování #/sbin/service sshd start Starting SSH daemon A nebo můžete provést restart. #/sbin/service sshd --full-restart Shutting down SSH daemon Starting SSH daemon done done done done

185 Strom procesů 183 Které služby se spouští a kdy Určitě budete potřebovat mít přehled, které služby se v které úrovni běhu spouští. Příkaz, o kterém bude řeč, je chkconfig. Začnete tím, že potřebujete výpis všech služeb: #chkconfig --list SuSEfirewall2_init 0:off 1:off 2:off 3:on 4:on 5:on 6:off SuSEfirewall2_setup 0:off 1:off 2:off 3:on 4:on 5:on 6:off aaeventd 0:off 1:off 2:off 3:off 4:off 5:off 6:off acpid 0:off 1:off 2:on 3:on 4:off 5:on 6:off alsasound 0:off 1:off 2:on 3:on 4:off 5:on 6:off auditd 0:off 1:off 2:off 3:on 4:off 5:on 6:off autofs 0:off 1:off 2:off 3:off 4:off 5:off 6:off autoyast 0:off 1:off 2:off 3:off 4:off 5:off 6:off.. xinetd based services: chargen: off chargen-udp: off cups-lpd: off daytime: off.. Na výpisu je jen začátek všech služeb. Zde si můžete najít, jak je která služba nastavena a v kterých úrovních běhu je spouštěna. Každá služba je obsluhována samostatným démonem. V závěru výpisu vidíte služby závislé na démonu xinetd a jejich stav. Další možností je vypsat si jen službu, která vás zajímá. #chkconfig --list xdm xdm 0:off 1:off 2:off 3:off 4:off 5:on 6:off Nyní si zkuste něco nastavit. Příkazem #chkconfig --level 2345 smb on zapnete službu, v tomto případě smb, v úrovních běhu 2, 3, 4, 5 a přesvědčíte se, že je tomu opravdu tak. #chkconfig --list smb smb 0:off 1:off 2:on 3:on 4:on 5:on 6:off Vypnutí provádíte obdobně: #chkconfig --level 2345 smb off #chkconfig --list smb smb 0:off 1:off 2:off 3:off 4:off 5:off 6:off Jelikož se jedná o zásah do fungování systému, veškeré tyto operace můžete provádět pouze jako superuživatel root.

186 184 Kapitola 8: Když systém zlobí Službu jsem nastavil, ale běží nyní? Jedním ze způsobů, jak ověřit, zda služba běží, je například použití příkazu: #/sbin/service smb status Checking for Samba SMB daemon Čtení informací o startu systému dmesg unused Při řešení problémů je důležité vědět, zda při startu systému nedošlo k nějaké nemilé události nebo třeba k chybě méně závažné. K těmto účelům použijte příkaz dmesg. Výstup tohoto příkazu můžete směrovat do textového souboru a následně vyhodnotiti, porovnat # dmesg Případně využijte v kombinaci s grep. # dmesg grep eth0 eth0: Tigon3 [partno(none) rev b002] (PCI Express) MAC address 00:26:55:c1:20:4b eth0: attached PHY is 5787 (10/100/1000Base-T Ethernet) (WireSpeed[1]) eth0: RXcsums[1] LinkChgREG[0] MIirq[0] ASF[0] TSOcap[1] eth0: dma_rwctrl[ ] dma_mask[64-bit] ADDRCONF(NETDEV_UP): eth0: link is not ready Dostanete řídící informace systému od posledního restartu. Pokud hledáte další informace, lze použít # less /var/log/dmesg

187 KAPITOLA 9 Něco o oknech Jak na grafické prostředí Jak spustit grafické prostředí Grafické prostředí se spouští ve většině případů automaticky. Nastaví se v souboru /etc/inittab. V tomto souboru hledejte řádky vypadající asi takto: # The default runlevel is defined here id:5:initdefault: Tímto řádkem dáváte příkaz, že systém bude automaticky startovat do úrovně běhu číslo 5, což je grafické prostředí. Pokud máte systém nastaven jinak a grafické prostředí automaticky nestartuje, spustíte jej příkazem startx Jak mám grafické prostředí ukončit Pokud máte problémy s grafickou nadstavbou a potřebujete ji ukončit, máte několik možností. První možností je přihlásit se jako root a příkazem telinit 3 anebo init 3 změnit úroveň běhu. Tento způsob je korektní, ukončí korektně i všechny grafické aplikace.

188 186 Kapitola 9: Něco o oknech Dalším ze způsobů je pomocí příkazu kill a procesu grafického manažeru tento ukončit. Třetím způsobem je použití kombinace kláves Ctrl+Alt+Backspace. Tyto dva způsoby nemusí vždy proběhnout korektně, a proto byste je měli volit jako poslední východisko. Například pokud používáte prostředí KDE, můžete jej ukončit pomocí příkazu: $kill Procesem 2233 je startkde. Můžu ukončit jen jedno mrtvé okno? Někdy se vám stane, že nějaká aplikace v okně zamrzne a nejde s ní nic udělat. V tomto případě se vám může hodit utilitka xkill. Pokud ji spustíte, objeví se vám krásná ikonka, se kterou najedete na mrtvé okno pomocí myši a stisknete tlačítko. Okno ukončíte. Jak lze identifikovat displej? K tomuto účelu se používá proměnná DISPLAY. Výpis obsahu této proměnné: $echo $DISPLAY :0.0 Zde je v rámci lokálního systému nastaven jednoznačný řetězec, který udává číslo displeje. Kompletní tvar tohoto řetězce je: jmeno_pc:cislo_displeje.cislo_obrazovky Zde je jméno počítače, na kterém běží X server. Číslo displeje je 0, pokud se nepoužívá virtuální server. Číslo obrazovky je také nula, pokud se nepoužívá více displejů. Jak můžu spustit aplikaci na lokálním počítači s displejem systému X Window na vzdáleném počítači Postup je jednoduchý: $export DISPLAY=PC:0.0 $xcalc & Prvním příkazem nastavíte displej na počítač PC (většinou jméno počítače nebo IP adresa), kde se nachází X server. Druhým příkazem spustíte aplikaci na pozadí. Tento případ by byl pro všechny nyní spouštěné aplikace. Můžete ale zadat jen jedné aplikaci pokyn $xcalc -display PC:0.0 & Tímto spouštíte jen tuto jednu aplikaci. Objeví se mi chyba autorizace Jestliže se při otevírání okna na vzdáleném displeji objeví tato chyba, je třeba na vzdáleném displeji zadat příkaz: $xhost +

189 Jak na grafické prostředí 187 pro všechny uživatele. Anebo $xhost +pavel pokud potřebuje povolit spouštění oken uživatele pavel na svém displeji. Jak je to s konfigurací prostředí Ve většině případů se dnes používá Xorg. O tom, zda i váš systém používá Xorg, se můžete přesvědčit buď při instalaci, nebo na stránkách poskytovatele distribuce anebo zkuste například pomocí příkazu uvedeného dále zkusit, jestli vám běží: $ ps -ef grep Xorg root :18 tty1 00:05:29 /usr/bin/xorg :0 -nr -verbose -auth /var/run/gdm/auth-for-gdm-orxdfc/database -nolisten tcp vt1 pavel :51 pts/0 00:00:00 grep Xorg Nebo se také můžete přesvědčit o verzi vašeho Xorg. Jakou mám verzi Xorg Nejprve pro doplnění, co to ono Xorg vlastně je. Podle encyklopedie: Xorg je veřejná open-source implementace systému X window verze 11. Mezi uživateli Linuxu je nejrozšířenější. Verzi zjistíte takto: # Xorg -version X.Org X Server Release Date: X Protocol Version 11, Revision 0 Build Operating System: Linux_ pclos2 PCLinuxOS Current Operating System: Linux localhost.localdomain pclos1.bfs #1 SMP PREEMPT Sun May 30 02:37:14 CDT 2010 i686 Build Date: 22 January :01:40AM Before reporting problems, check to make sure that you have the latest version. O dalším možnostech a parametrech se přesvědčte pomocí: $ Xorg -h Jak se toto prostředí nastavuje Nastavení tohoto X11 prostředí se provádí v souboru /etc/x11/xorg.conf. V některých systémech se může provádět i ve více souborech. Soubor je rozdělen do sekcí a každá sekce je určena pro něco jiného. Podívejte se na ukázku souboru xorg.conf. # Xorg configuration created by system-config-display Section "InputDevice"

190 188 Kapitola 9: Něco o oknech # keyboard added by system-config-display Identifier "Keyboard0" Driver "kbd" Option "XkbModel" "pc105" Option "XkbLayout" "cz" Option "XkbVariant" "qwerty" EndSection Section "Monitor" Identifier "Monitor0" ModelName "LCD Panel 1600x1200" HorizSync Sekce jsou od sebe odděleny, soubor je tedy dobře čitelný. Pokud do tohoto souboru budete zasahovat, proveďte si nejprve zálohu. V případě neúspěšného nastavení přepíšete xorg.conf původním a vše máte opět ve stavu, v jakém jste začínali s nastaveními. Po ukončení editace musíte restartovat grafické prostředí, aby změny proběhly. V tomto souboru nenastavujete jen grafickou kartu a monitor, ale také myš a klávesnici. Více se o nastavení můžete dozvědět na manuálových stránkách. Podívejte se, jak lze s tímto souborem pracovat. Chcete si změnit rozložení a přepínání klávesnice. V souboru xorg.conf si najdete sekci věnovanou klávesnici a podíváte se na nastavení, případně upravíte, aby vypadalo nějak takhle: Section "InputDevice" Driver "kbd" Identifier "Keyboard[0]" Option "Protocol" "Standard" Option "XkbLayout" "us,cz_qwerty" Option "XkbModel" "pc105" Option "XkbRules" "xfree86" Option "XkbOptions" "grp:switch,grp:shift_toggle" EndSection Většinou se sem dopisuje rozložení klávesnice: Option "XkbLayout" "us,cz_qwerty" A potom také přepínání mezi rozložením: Option "XkbOptions" "grp:switch,grp:shift_toggle" Takhle máte nastaveno rozložení us a cz_qwerty a přepínáte se mezi rozložením pomocí obou kláves Shift. Můžu klávesnici přepínat i ručně? Jestliže se vám nedaří nastavit přepínání klávesnice v grafickém prostředí, můžete použít příkaz setxkbmap. K tomuto účelu se hodí v grafickém prostředí nastavení klávesnice pomocí příkazu: $ setxkbmap cz $ setxkbmap cz_qwerty $ setxkbmap us

191 Jak na grafické prostředí 189 Ale pozor! Pokud máte v grafickém prostředí nadefinováno přepínání jiným způsobem a použijete tyto příkazy, přepínání pomocí kláves už vám nemusí fungovat až do restartu grafického prostředí. Více informací o X serveru a jeho nastavení si můžete přečíst v manuálových stránkách. man Xserver Jinou možností je využití příkazu Xorg -configure pouze v případě, že už vám Xorg neběží. Pomocí manuálových stránek anebo jen pomocí Xorg --help se můžete přesvědčit o možnostech nastavení. Jak je to s chybami Xorg Nelze nabídnou vzor, jak postupovat při odstraňování závad a chyb. Jsou to specifické chyby a je třeba je řešit případ od případu. Pokud Xorg zhavaruje, vždy uvede chybu, proč se tak stalo, přímo na obrazovku, podobným způsobem jako v další ukázce: (EE) Failed to load module "type1" (module does not exist, 0) - -record fglrx- - (EE) No drivers available. Fatal server error: no screens found INIT: cannot execute "/usr/bin/xdm" 5x- - INIT: Id "x" respawing too fast: disabled for 5 minutes giving up. xinit: No such file or directory (errno 2): unable to connect to X server xinit: No such process (errno 3): Server error Zde vás zajímají řádky začínající (EE) toto musíte řešit. V tomto případě to mohou být špatné ovladače grafické karty anebo jen špatně nastavené Xorg. Další informace můžete získat z logu, a tak problém omezit. Snad nejrychlejším řešením je zkusit projít internetové diskuze a rady ve většině případů už podobný problém někdo řešil. Každá distribuce má své fórum, kde se probírají všechny možné problémy. Nebo zkuste portál: Zde najdete obrovskou studnici informací, počínaje novinkami přes různé zajímavé články, návody a rady až po řešení, a v drtivé většině případů i vyřešení problémů. Co to je grafická nadstavba Grafická nadstavba je vlastně to, co vám umožňuje používat grafická okna. O tohle se stará takzvaný Window Manager. Window managerů je samozřejmě několik druhů. Na prvním místě je třeba zmínit Gnome a KDE (bráno podle abecedy, ne podle oblíbenosti, úspěšnosti, spolehlivosti). Lze také zmínit Xfce, WindowMaker, BlackBox, FluxBox, Enlightenment a další. Určitě sami víte, který používáte vy. Každý z těchto Window Managerů má své ovládání, své možnosti a své konfigurační soubory.

192

193 KAPITOLA 10 Další užitečné příkazy Internet z příkazové řádky Jak pomocí příkazového řádku na Internet I pro příkazový řádek existují aplikace pro čtení stránek. Nemůžete očekávat obdobný komfort jako při spuštění vašeho oblíbeného prohlížeče. Začněme například u textového prohlížeče Internetu Lynx. Používání tohoto prohlížeče je velice jednoduché, stačí napsat: $ lynx Po stránce se pohybujete šipkami nahoru dolů a další možné pohybování a příkazy uvidíte stručné nápovědě úplně dole. Jakmile si zkusíte procházení, zjistíte, že prohlížení Internetu není nijak složité. Můžete se pohybovat v historii příkazů, dělat si záložky a obdobně, jako jste zvyklí z jiných prohlížečů. Náhled na nápovědu při pohybu po stránkách: Šipky: Nahoru/Dolů pro pohyb. Vpravo následuje odkaz; vlevo se vrátí zpět. H>Nápověda Vo)lby P>Tisk G>Jdi M>Hlavní obrazovka /=hledej [delete]=historie

194 192 Kapitola 10: Další užitečné příkazy Jinou variantou může být prohlížeč links Další z prohlížečů spouštěných z příkazového řádku je links. Spustíte jej, pokud ho váš systém nepostrádá, opět jednoduše: $ links Je to varianta, která už má i své menu, podporuje rámce i standard HTML4. Snadno se v něm orientujete a velice rychle si na něj zvyknete. I obyčejný uživatel si na něj dokáže zvyknout a používat jej. Pomocí klávesy Esc se v horní části objeví české menu se spoustou funkcí. Zobrazit si můžete i HTML kód stránky. Vyzkoušejte si jej a určitě se vám někdy bude hodit. Links podporuje i barvy. I prohlížeč lynx dokáže pracovat s barvami, ale jen co se týká textu, zvýraznění, odkazů a podobně. Hledání příkazu Hledáte příkaz Může vám pomoci příkaz: apropos retezec Program hledá v hlavičkách manuálových stránek a výsledky vypisuje: $ apropos who at.allow [at] at.deny [at] jwhois w who who whoami (5) - determine who can submit jobs via at or batch (5) - determine who can submit jobs via at or batch (1) - client for the whois service (1) - Show who is logged on and what they are doing (1) - show who is logged on (1p) - display who is on the system (1) - print effective userid Video a mplayer Pokud se mluví o Linuxu a videu, nemůžeme začít jinak než s mplayerem. Tento program byl navržen proto, aby byl spouštěn z terminálu, neklade si žádné velké nároky a přehraje téměř vše. Nepotřebuje žádné kodeky, většinu jich obsahuje samotná instalace. Není součástí každé distribuce, a proto je ve většině případů potřeba jej doinstalovat. Existuje k němu několik grafických nadstaveb, ale mplayer funguje bez problémů i bez nich. Rozhodně nečekejte úplný návod a všechny možné volby, ke konkrétním případům a nápadům vám bude plně k dispozici $ man mplayer. Jak spustím videosoubor Videosoubor spustíme jednoduše příkazem $ mplayer soubor1

195 Video a mplayer 193 Pokud máte v adresáři více souborů po sobě následujících, poslouží vám * jako zástupný znak pro všechny soubory v aktuálním adresáři. $ mplayer * Jak přehrát film s titulky Jestliže máte videosoubor i titulky v jednom adresáři, použijete: $ mplayer videooubor1 titulky.srt Titulky musí být ve správném formátu, jinak se nespustí. Když máte titulky někde jinde na disku, musíte použít: $ mplayer videooubor -sub /cesta/k/titulkum Přidáním parametru -sub můžete zadat úplnou cestu k souboru s titulky. Umí mplayer přehrávat i písničky? Umí, provedete úplně stejný postup. Mplayer v konkrétním adresáři přehrává všechny známé formáty. Když máte adresář a v něm videosoubory i písničky, musíte výběr provést například maskou. $ mplayer *.mp3 Nyní bude mplayer přehrávat mp3 soubory. Kde jsou uloženy konfigurační soubory Konfigurační soubory jsou uloženy v adresáři /etc/mplayer. (Soubor /etc/mplayer/example.conf můžete zkopírovat do domovského adresáře do ~/.mplayer a pojmenovat config.conf.) Pro každého uživatele jsou uživatelská nastavení v adresáři ~/.mplayer/. S těmito soubory můžete experimentovat, nejprve si ale udělejte zálohu funkčních souborů. Jedná se o soubory: $ ls.mplayer/ config input.conf menu.conf mplayer.conf Seznam dostupných funkčních kláves vašeho uživatelského nastavení zjistíte jednoduše: $ mplayer -input keylist SPACE SHARP ENTER TAB CTRL BS DEL INS HOME END...

196 194 Kapitola 10: Další užitečné příkazy Tímto příkazem zjistíte úplný seznam dostupných příkazů: $ mplayer -input cmdlist seek Float [Integer] edl_mark audio_delay Float [Integer] speed_incr Float speed_mult Float speed_set Float quit [Integer] stop Konfigurační soubory mají spoustu možností pro nastavení. Sami můžete nastavit to, co vám bude vyhovovat. Jestliže vám výpis neukáže nic, je někde chyba, patrně chybí konfigurační soubory. Jaké mohou být funkční klávesy? Podíváme se jen na některé ze základních: šipka vlevo a vpravo posun zpět/vpřed o 10 sekund šipka dolů a nahoru posun zpět/vpřed o 1 minutu Page Down a Page Up posun zpět/vpřed o 10 minut p nebo mezerník pauza (další stisk konec pauzy) q nebo Esc konec přehrávání + a - zpoždění zvuku po +/ 0,1 sekundy * a / ztlumení/zesílení hlasitosti m vypnutí zvuku f režim celé obrazovky v vypnutí/zapnutí titulků g a y nastavení zpoždění titulků po +/ 0,1 sekundy Někde se klávesy mohou mírně odlišovat, ale každopádně si je můžete sami nastavit k obrazu svému. ## ## ovládání programu Mplayer ## RIGHT seek +10 LEFT seek audio_delay audio_delay q quit > pt_step 1 < pt_step -1 ENTER pt_step Tak by mohla vypadat část konfiguračního souboru input.conf.

197 Instalace softwaru 195 Jak nastavit přehrávání v mplayeru Po normální instalaci není třeba pokud vše funguje editovat konfigurační soubor, ale podívejte se na některé parametry. Tyto parametry můžete zadávat z příkazové řádky anebo uložit do konfiguračního souboru. Videosoubor můžete například spouštět takto: $ mplayer /home/pavel/filmy/medove.avi vo=gl =ao=alsa K některým parametrům: vo=gl gl nastaví zobrazování filmů pomocí OpenGL výstupu; vaše grafická karta musí podporovat OpenGL. Jinak použijte video výstup XV parametr xv. ao=esd esd znamená, že jako audiovýstup je použit alsa. cache=8192 nastavení cache je výhodné při přehrávání streamovaných videí či videí z DVD nebo CD (nedochází k přerušení přehrávání, film je čten z cache paměti). Číslo udává velikost dopředu načítaných dat. subfont-osd-scale=4.4 velikost fontu OSD menu. subfont-text-scale=2.5 velikost fontu titulků. subpos=98 nastavení pozice titulků (najděte číslo, které vám bude nejvíce vyhovovat). spuaa=4 vyhlazování titulků (4 nejlepší; 0 žádné). subfont-outline=2.0 tloušťka orámování titulků černou linkou. subfont-blur=2.0 nastavení rozostření fontu titulků. alang=cz,en,eng,hun výběr jazykových audiostop; vybere se vždy první odpovídající v seznamu. Hodí se u DVD s více jazykovými stopami, v tomto případě se začne přehrávat v češtině, pokud není, tak v angličtině slang=cz,cr,en totéž co předešlé, ale s jazykem titulků. subcp='windows-1250' kódování souboru s titulky. Pozor, zde bude chyba při chybném zobrazení češtiny, bude-li však soubor s titulky v jiném kódování, musíte hodnotu opět změnit na jinou. subfont-encoding=unicode kódování fontu titulků. double=yes aktivuje doublebuffering. stop-xscreensaver=yes deaktivuje šetřič obrazovky během přehrávání. geometry=50%:50% umisťuje nově otevřené okno na střed obrazovky. monitoraspect=16:10 určuje poměr stran monitoru. Raději nastavte v souboru mplayer.conf. font='dejavu Sans' použitý font je Dejavu Sans. Instalace softwaru Pojďte se alespoň zběžně podívat na instalaci softwaru. Jedná se o dost specifickou činnost odvíjející se od typu vaší distribuce. Já se zaměřím na nejčastěji používané: především balíčkovací systém (pomocí balíčků rpm a apt), a ještě se částečně zmíním o instalaci ze zdrojových kódů. Začnu s balíčky typu rpm. Každá distribuce má grafickou nadstavbu, nějaký softwarový manager. Poku opravdu chcete vědět, co se v systému děje, nespoléhejte na něj. Tento program uprostřed instalace zhavaruje a nevíte, ani proč spadl, ani co už nainstaloval. Seznamte se s instalací z příkazového řádku a začněte ji používat. V dnešní době je systém opravdu tak propracovaný, že se není čeho bát.

198 196 Kapitola 10: Další užitečné příkazy Instalace pomocí yum Tento správce balíčků je využívaný v operačních systémech Fedora. Jeho používání je více než jednoduché. Pomocí tohoto správce můžete přidávat a odebírat software, provádět aktualizace. Můžete vyhledávat software. Nejprve je třeba mít nastavené repozitáře Pokud začnete pracovat se správcem balíčků, musíte mít buď přístup k Internetu a nastaveny adresy s rpm balíčky, repozitáře. Druhou variantou je, že instalujete bez sítě, a v tomto případě musíte do repozitářů nastavit jiné médium, třeba CD nebo DVD. Repozitáře se ukládají do adresáře: /etc/yum.repos.d Každý repozitář zde má vytvořený soubor. Tento soubor buď vytvoříte ručně, anebo najdete odkaz na Internetu, jak máte repozitář přidat. Opět vás musím varovat: Nepřidávejte bezmyšlenkovitě všechny možné repozitáře vystavujete se problémům se závislostmi, padajícími aplikacemi a podobně. Každý z repozitářů je určený k něčemu jinému. Přidávejte jen ověřené. Jestliže instalaci provádíte z CD nebo DVD, bez Internetu v adresáři /etc/yum/ budete mít v souboru fedora.repo něco podobného jako v následující ukázce: # less /etc/yum.repos.d/fedora.repo [fedora] name=fedora $releasever - $basearch failovermethod=priority baseurl=file:///mnt/dvd/ #baseurl= Everything/$basearch/os/ #mirrorlist= enabled=1 Zde si musíte dát pozor na správně zadanou cestu k médiu DVD. Další důležitou věcí je enabled=1 Pokud zde máte napsánu 0, tento zdroj nebude při aktualizacích prohledáván. Jak se přidá repozitář Repozitář přidáváte pomocí příkazu ve tvaru: rpm -Uvh noarch.rpm rpm -Uvh -stable.noarch.rpm Nejprve zadáte příkaz rp s parametry -Uvh a cestu.

199 Instalace pomocí yum 197 Jak zkontroluji aktualizace Při aktualizaci systému pomocí yum zadáte jednoduše: # yum update Zavedeny zásuvné moduly: refresh-packagekit Uspořádává se průběh aktualizace Řeší se závislosti Spouští se kontrola transakce Balíček java openjdk.i686 1: b18.fc12 nastaven k aktualizaci Balíček java openjdk-plugin.i686 1: b18.fc12 nastaven k aktualizaci Řešení závislostí dokončeno Závislosti vyřešeny ================================================================================ Balíček Arch Verze Repozitář Vel. ================================================================================ Aktualizuje se: java openjdk i686 1: b18.fc12 updates 26 M java openjdk-plugin i686 1: b18.fc12 updates 97 k Shrnutí transakce ================================================================================ Instalace 0 balíčku/ů Aktualizace 2 balíčku/ů Celková velikost stahování: 26 M V pořádku [a/n]: Yum překontroluje aktualizace dle nastavení repozitářů, navrhne dostupné aktualizace a čeká na potvrzení. Pomocí klávesy A aktualizace zahájíte. Pomocí N instalaci aktualizací zrušíte. Jak nainstaluji aplikaci pomocí yum Instalaci provedete příkazem: yum install aplikace Musíte vědět přesný název aplikace, kterou hodláte nainstalovat. Pokud vám yum odpoví, že # yum install aplikace Zavedeny zásuvné moduly: refresh-packagekit Uspořádává se průběh instalace Balíček aplikace není dostupný. Není co dělat buď aplikace není pro systém Fedora, anebo máte špatný či neúplný název. Jak najdu aplikaci? Opět stačí napsat jednoduše: yum search aplikace

200 198 Kapitola 10: Další užitečné příkazy nebo můžete použít přesnější hledání: yum search kde grep plasma # yum search kde grep utils kdesdk-utils.i686 : Text utilities from kdesdk kdeutils.i686 : KDE Utilities kdeutils-libs.i686 : Runtime libraries for kdeutils kdeutils-printer-applet.i686 : KDE printer applet amarok-utils.i686 : Amarok standalone utilities desktop-file-utils.i686 : Nástroje pro práci se soubory.desktop Po zadání příkazu se vám objeví výpis i s krátkým popisem. Jak zjistím další informace o balíčku? Pokud potřebujete další informace o konkrétním balíčku, použijte příkaz ve formátu: yum info balicek # yum info yum Zavedeny zásuvné moduly: refresh-packagekit Nainstalované balíčky Jméno : yum Arch : noarch Verze : Vydání : 3.fc12 Velikost : 3.8 M Repo : installed Z repa : updates Souhrn : Nástroj pro automatickou instalaci a aktualizaci RPM balíčků. URL : License : GPLv2+ Popis : Yum is a utility that can check for and automatically download and : install updated RPM packages. Dependencies are obtained and : downloaded automatically prompting the user as necessary. Hledání balíčků podruhé Přesnější hledání včetně informace o tom, je-li již aplikace nainstalována, provedete pomocí parametru list. Podívejte se na porovnání: # yum list *krusa* Zavedeny zásuvné moduly: refresh-packagekit Dostupné balíčky krusader.i fc12 fedora Zde naleznete nejen dostupné programy, ale také zdroj, odkud se bude instalovat. Ještě jeden příklad: # yum list *kdeutils* Zavedeny zásuvné moduly: refresh-packagekit Nainstalované balíčky kdeutils.i686 kdeutils-libs.i686 Dostupné balíčky kdeutils-printer-applet.i686 6: fc12.1 updates-testing

201 Instalace pomocí yum 199 Můžete se podívat, že nejprve jsou vypisovány balíky v části Nainstalované balíčky a v druhé části máte Dostupné balíčky tedy to, co můžete instalovat. Provedete vyhledávání pomocí search: # yum search *krusa* Zavedeny zásuvné moduly: refresh-packagekit Varování: Žádný balíček odpovídající: *krusa* Nebyla nalezena shoda Při použití vyhledávání pomocí search nelze využívat zástupné znaky. Jestliže ale zkusíte # yum search krusa Zavedeny zásuvné moduly: refresh-packagekit ================================ Matched: krusa ================================ krusader.i586 : An advanced twin-panel (commander-style) file-manager for KDE výsledek dostanete také, ale už nevidíte, je-li nainstalován. Lze pracovat i se skupinami programů Jak jistě víte programy jsou rozděleny do skupin. Musíte nejprve skupinu vyhledat. Pokud nevíte, jak se jmenuje, # yum grouplist "Hry a zábava" Zavedeny zásuvné moduly: refresh-packagekit Uspořádává se zpracování skupiny Naintalované skupiny: Hry a zábava Dokončeno Pokud skupinu naleznete a chcete z ní vše instalovat, použijete příkaz ve tvaru: yum groupinstall skupina Poznámka Pokud má skupina více slov, píšete ji do uvozovek. Tak například můžete nainstalovat všechny programy a související soubory ve skupině Hry a zábava. yum groupinstall "Hry a zábava" Zavedeny zásuvné moduly: refresh-packagekit Uspořádává se zpracování skupiny Balíček joystick fc12.i686 je již nainstalován a v poslední verzi Balíček 1:gnome-games fc12.i686 je již nainstalován a v poslední verzi Balíček 1:gnome-games-help fc12.noarch je již nainstalován a v poslední verzi V žádné z požadovaných skupin nejsou balíčky k instalaci nebo aktualizaci V tomto případě je již vše ze skupiny nainstalováno a není co přidávat.

202 200 Kapitola 10: Další užitečné příkazy Jak nainstaluji balíček z lokálního zdroje? Balíček máte uložený na disku a potřebujete jej nainstalovat: yum localinstall /home/pavel/download/balicek.rpm Můžu zjistit nainstalované balíčky? # yum list installed grep mplayer mplayer.i686 mplayer-common.i686 Potřebujete-li zjistit nainstalované balíčky, můžete si vypsat všechny balíčky anebo konkrétní balíčky pomocí vyhledávání. V předchozím případě vyhledáváte všechny balíčky týkající se aplikace mplayer. Jak aplikaci odinstaluji #yum remove # yum remove kdeutils Zavedeny zásuvné moduly: refresh-packagekit Uspořádává se průběh odstranění Řeší se závislosti Spouští se kontrola transakce Balíček kdeutils.i686 6: fc12 nastaven k smazání Zpracování závislosti: kdeutils = 6: fc12 pro balíček: 6:kdeutils-libs fc12.i686 Spouští se kontrola transakce Balíček kdeutils-libs.i686 6: fc12 nastaven k smazání Řešení závislostí dokončeno Závislosti vyřešeny ==================================================================== Balíček Arch Verze Repozitář Vel. ==================================================================== Odstraňuje se: kdeutils i M Odstraňuje se kvůli závislostem: kdeutils-libs i M Shrnutí transakce ==================================================================== Odstranění 2 balíčku/ů Reinstalace 0 balíčku/ů Snížení verze 0 balíčku/ů V pořádku [a/n]: Jak vidíte, yum najde konkrétní aplikaci nebo knihovnu, kterou hodláte odinstalovat, a provede kontrolu závislostí. Navrhne vám, co se odstraní společně s tím, co hodláte odstranit. Na závěr se vás zeptá, jestli s tím souhlasíte. Zde opět musím varovat: Při odstraňování bezvýznamné knihovny se vám může nabídnout k odinstalování spousta dalších balíčků a mezi nimi i ty, které používáte. Proto si pozorně přečtěte, co se bude odebírat. Nakonec potvrdíte volbu pomocí klávesy A, nebo zrušíte pomocí klávesy N.

203 Instalace pomocí apt 201 Instalace pomocí apt Tuto metodu využijete u systémů založených na Debianu. Ale i jiné distribuce mohou tento balíčkovací program používat po doinstalování potřebného. Zkuste si to ověřit u vaší distribuce. Kde jsou uloženy repozitáře Zdroje softwaru najdete v adresáři /etc/apt/sources.list. Tento soubor můžete editovat, jednotlivé položky zakazovat pomocí # nebo povolovat odstraníte #. Položky můžete přepisovat, dopisovat a také mazat. Jak přidám repozitáře Další zdroj softwaru přidáte pomocí příkazu: deb-src ftp://ftp.cz.debian.org/debian/ stable main contrib Ono deb-src v úvodu řádku značí, zda se jedná o zdrojové balíčky. Pokud máte v úvodu řádku napsáno deb, jedná se o zdroj s předkompilovanými balíčky. Je-li napsáno deb-src, jedná se o zdroj se zdrojovými balíčky. Jak aktualizovat pomocí apt Aktualizaci instalačních zdrojů provedete takto: # apt-get update Jak provedete aktualizaci nainstalovaných balíčků Aktualizace nainstalovaných balíčků provedete jednoduše: # apt-get upgrade Aktualizace celé distribuce Tato varianta se používá stejně jako předešlá varianta, ale lépe řeší závislosti. #apt-get dist-upgrade Instalace nového balíčku Nejprve proveďte aktualizaci zdrojů pomocí apt-get update. Nový balíček doinstalujete: # apt-get install nazev-baliku Odinstalování balíčku # apt-get remove nazev-baliku Jak odstranit balíček včetně konfiguračních souborů # apt-get purge nazev-balicku

204 202 Kapitola 10: Další užitečné příkazy Jak odstranit automaticky nainstalované balíčky, které už nejsou potřeba # apt-get autoremove Jak mám balíček vyhledat Vyhledávání a pomocným informacím o balíčcích se věnuje příkaz apt-cache. Pokud tedy chcete vyhledat nějaký balíček, zadejte příkaz ve tvaru: #apt-cache search text Vyhledány budou všechny balíčky obsahující v popisu vámi zadaný text. Co je to za balíček? Dotázat se můžete i na podrobné informace o balíčku. Podívejte se na detail týkající se balíčku skype. $ apt-cache show skype Package: skype Section: Applications/Internet Installed Size: Packager: Version: suse111 Pre-Depends: /bin/sh, /bin/sh Depends: config(skype) = suse111, qt >= 4.2 Provides: config(skype) = suse111, skype = suse111 Architecture: i586 Size: 1 MD5Sum: Filename: Summary: Skype is free Internet telephony that just works Description: Skype Skype is a little piece of software that lets you make free calls to anyone else on Skype, anywhere in the world. And even though the calls are free, they are really excellent quality. * Make free Skype-to-Skype calls to anyone else, anywhere in the world. * Call phones and mobiles at pretty cheap rates per minute. * Group chat with up to 100 people or conference call with up to nine others. * See who you are talking to with free video calls. * Free to download. Instalace pomocí Aptitude Další variantou, kterou můžet použít, je aplikace aptitude. Tato aplikace už se ovládá pomocí menu a máte možnost navolit více balíčů naráz a instalaci spustit po ukončení výběru. Jak obnovit intalační zdroje # aptitude update

205 Instalace pomocí Aptitude 203 Jak provést upgrade nainstalovaných balíčků # aptitude upgrade Instalace nového balíčku # aptitude install nazev-balicku Odinstalace baličku # aptitude remove nazev-baliku odstranění pouze balíku Odstranění balíčku včetně konfiguračních souborů # aptitude purge nazev-balicku Spuštění rozhraní: # aptitude Některé z klávesových zkratek: Ctrl+T hlavní menu / vyhledávání N další balíček Enter podrobnosti o balíčku, výběr závislostí + instalovat odstranit Obrázek 10.1: aptitude install

206 204 Kapitola 10: Další užitečné příkazy _ kompletně odstranit G zobrazit instalované balíky, instalovat Q ukončit Balíčkovací program YAST Další z rodiny balíčkovacích programů je YAST, používaný v systémech například OpenSuse. Jak nainstaluji balíček # yast -i acroread Takto by vypadal příkaz pro doinstalování programu Acrobat Reader. Pokud yast zná program, instalace proběhne, pokud nezná, skončí chybou. Balíček se bude instalovat s kontrolou závislostí. Jak balíček odinstaluji Obdobně pro odinstalování použijete příkaz ve tvaru: #yast -r acroread Jak instalovat z lokálního adresáře Příkaz spustíte se zadáním cesty k balíčku. Pozor, pokud spustíte yast tímto způsobem, nainstaluje se balíček bez kontroly závislostí. # yast -i /home/pavel/balicek.rpm Ruční instalace balíčků rpm a deb Jak nainstalovat rpm balíček bez správce balíčků Nejprve si zkuste napsat samostatný příkaz rpm a uvidíte, kolik možností máte; zde se podívejte opět jen na některé. rpm má několik režimů: pro instalaci, odinstalaci, dotazy, sestavování a některé další. Napište si příkaz s nápovědou rpm help a uvidíte mnohem více možností i s krátkým popisem. instalační mód rpm -i odinstalační mód rpm -e upgrade rpm -U dotazovací mód rpm -q Každá z těchto variant má ještě další rozšiřující parametry. Nejjednodušší variantou je instalace balíčku rpm -i balicek.rpm Samozřejmě balicek.rpm můžete zadávat i s celou cestou. Jak lze provést upgrade určitého balíku Jestliže hodláte instalovat novou verzi balíčku a současně odstranit starou verzi, použijte příkaz ve tvaru:

207 Ruční instalace balíčků rpm a deb 205 rpm -U balicek.rpm Anebo můžete provézt upgrade balíčku například z FTP serveru: rpm -U ftp://cesta/pub/balicek i386.rpm Další variantou pro vás může být provést upgrade pouze instalovaných balíčků pomocí volby rpm -F *.rpm Jak vyhledat konkrétní balíček a jeho verzi Pokud se potřebujete dostat do dotazovacího režimu, píšete příkaz ve tvaru: # rpm -q kdebase kdebase fc12.1.i686 Příkaz vám vyhledá, kterou verzi máte nainstalovánu. Potřebuji více informací o balíčku # rpm -qi mc Name : mc Relocations: (not relocatable) Version : Vendor: Fedora Project Release : 2.fc12 Build Date: Čt 18. březen 2010, 15:26:26 CET Install Date: Po 10. květen 2010, 21:28:26 CEST Build Host: xb-01.phx2.fedoraproject.org Group : System Environment/Shells Source RPM: mc fc12.src.rpm Size : License: GPLv2 Signature : RSA/8, Čt 18. březen 2010, 16:09:08 CET, Key ID 9d1cc34857bbccba Packager : Fedora Project URL : Summary : User-friendly text console file manager and visual shell Description : Midnight Commander je vizuální shell dost podobný správci souborů, jen s daleko více funkcemi. Pracuje v textovém režimu, ale obsahuje i podporu myši. K jeho nejlepším vlastnostem patří schopnost používat FTP, zobrazit obsah souborů tar i zip a získávat konkrétní soubory z balíčků RPM. Jak vidíte, rozšířením příkazu o parametr -i dostanete spoustu dalších informací. Balíčky.deb Informace o použití příkazu určeného k rozbalování balíčku dostanete po zadání # dpkg - help případně #dpkg-deb help Jen ve stručnosti nastíním některé základní varianty. Instalace: #dpkg -i balicek.deb #dpkg install balicek.deb

208 206 Kapitola 10: Další užitečné příkazy Obě varianty lze používat. Vyhledávání: # dpkg search balicek.deb #dpkg -s balicek.deb Stav balíčku zda je instalován, popis, do které patří skupiny: dpkg --status Odinstalování: # dpkg remove balicek # dpkg -r balicek Výpis všech balíčků v systému: # dpkg --list # dpkg l Balíčkovací systém u distribucí založených na Slackware Systémy založené na Slackware mají svůj balíčkovací nástroj nazvaný pkgtool. Po spuštění tohoto nástroje se vám objeví jednoduché menu. Z tohoto menu si vyberete operaci, kterou hodláte provádět. Tato balíčkovací utilitka vše provede za vás. V menu se můžete pohybovat jednak myší, ale daleko elegantnější je pohyb pomocí kláves, šipek, tabulátoru a klávesy Enter. Rozebírat jednotlivé menu nemá smysl, nabídka je jednoduchá i pro naprostého laika alespoň trochu ovládajícího technickou angličtinu. Pokud si spustíte výběr balíčků pro odinstalaci nebo instalaci, nemusíte rolovat v seznamu všech balíčků, ale použijte přechod podle písmen. Stisknete F a přejdete na první balíček začínající písmenem F. Instalace jednotlivých balíčků Balíčky pro Slackware mohou mít jednu z těchto přípon:.tgz,.tbz,.tlz,.txz. K instalaci těchto balíčků můžete také použít příkaz ve tvaru: # installpkg package_name Tento příkaz má i některé další parametry, které si zobrazíte spuštěním samostatného příkazu. Zajímavou je určitě volba installpkg --warn balicek. Pomocí této volby se vám zobrazí, co by se stalo, pokud byste nainstalovali zvolený balíček. Odstranění jednotlivých balíčků K odinstalaci můžete použít příkaz removepkg. Pokud napíšete samostatný příkaz, opět dostanete nabídku, jak tento příkaz použít. Jak zjistím seznam balíčků obsažených v systémů Všechny nainstalované balíčky najdete například v adresáři /log/var/packages. Samozřejmě můžete použít příkaz grep, pokud nevíte, jak se konkrétní balíček jmenuje.

209 Balíčkovací systém u distribucí založených na Slackware 207 # ls /var/log/packages/ grep MP A dostanete například výpis: MPlayer i486-1 Nyní si můžete také vyzkoušet: # removepkg -warn MPlayer i486-1 Jako odpověď dostanete výpis, co se kde odstraní v případě, že balíček odinstalujete. Jinou, a rychlejší, variantou, pokud hledáte balíček a víte, jak se jmenuje, může být použití tabulátoru. Stačí pokud budete psát: # removepkg -warn M a stisknutím tabulátoru se vám buď balíček sám doplní, anebo se vám ukáže seznam balíčků, stejně jako u doplňování adresářů apod. Pozor, záleží na malých a velkých písmenech. Jak na upgrade balíčků Upgrade balíčku provedete příkazem upgradepkg. Opět platí, že pokud napíšete příkaz bez parametrů, dostanete stručnou nápovědu, jak příkaz použít. Jak ve Slackware na balíčky RPM Spousta balíčků je ve formátu rpm. Někdy můžete potřebovat zkonvertovat tento balíček do balíčku pro Slackware, což je asi lepší cesta, než se spoléhat na balíček rpm. K těmto účelům slouží dvě utilitky: rpm2tgz a rpm2targz. Následně při použití příkazu explodepkg můžete extrahovat balíčky do dočasného adresáře a vyzkoušet obsah. Program rpm2tgz vytvoří balíček s koncovkou.tgz a program rpm2targz vytvoří archiv s koncovkou.tar.gz. Explodepkg ještě jednou K příkazu explodepkg ještě jednou. Funguje zhruba stejně jako installpkg, rozbalí balíček, ale ten neinstaluje a neprovede záznamy v databázi balíčků. Pouze tedy balíčky rozbalí do zadaného adresáře. Jak vytvořím balíček K vytvoření vlastního balíčku můžete použít příkaz: makepkg Tento příkaz sbalí aktuální adresář do Slackware balíčku, prohledá jej, jestli zde nejsou symbolické linky, a přidá vytvářecí blok do instalačního skriptu, který tyto linky vytvoří během instalace balíčku.

210 208 Kapitola 10: Další užitečné příkazy Balíčkovací systém Pacman ArchLinux Dalším balíčkovacím systémem je Pacman. Využívá jej hlavně distribuce Archlinux, která vyniká svou jednoduchostí a rychlostí. Tento balíčkovací systém funguje bezvadně a na použití není nijak náročný, jak uvidíte dále. Opět se zde neobjeví opis manuálových stránek, ale zkusím nastínit jen některé možnosti použití. Pacman je založen na použití binárního formátu balíčků se systémem pro jednoduché použití. Cílem Pacmana je jednoduché použití pro instalaci buď ze známých repozitářů, anebo z repozitářů sestavených přímo uživateli. Konfigurační soubor naleznete na adrese /etc/pacman.conf. Ve výpisu dále v textu vidíte ukázku tohoto souboru: [core] # Add your preferred servers here, they will be used first Include = /etc/pacman.d/mirrorlist [extra] # Add your preferred servers here, they will be used first Include = /etc/pacman.d/mirrorlist [community] # Add your preferred servers here, they will be used first Include = /etc/pacman.d/mirrorlist #Yaourt [archlinuxfr] Server = Pokud instalujete tuto distribuci pomocí sítě, budete mít tento soubor s největší pravděpodobností nastaven. Soubor je rozdělen do sekcí. Pokud potřebujete do tohoto souboru výrazněji zasahovat, nejprve se seznamte na manuálových stránkách s možnostmi. A také není na škodu si původní soubor zazálohovat. Jak tedy instalovat balíček Instalaci jednoho nebo i více balíčků spustíte pomocí příkazu: # pacman -S prvni_balicek druhy_balicek Občas se můžete setkat s tím, že je k dispozici více balíčků, například existují repozitáře extra a testing. Vy chcete nainstalovat balíček z repozitáře testing, použijte proto příkaz: # pacman -S testing/balicek V případě instalace z repozitáře extra namísto testing zadáte extra.

211 Balíčkovací systém Pacman ArchLinux 209 Jak můžu balíček odinstalovat Balíček odinstalujete tím, že změníte parametry: # pacman -R balicek Tímto způsobem pouze odinstalujete pouze konkrétní balíček, ale neřešíte závislosti. Po čase by se vám mohlo stát, že máte systém zaplněný nepotřebnými balíčky a knihovnami. Pro odinstalování balíčků včetně závislostí přidáte k parametru R ještě malé s. # pacman -Rs balicek Jak je to s aktualizací Pacman je schopen provést synchronizaci a aktualizaci vašeho systému pomocí příkazu: # pacman -Syu V některých případech může tato aktualizace trvat déle. Nejprve se synchronizují databáze repozitářů a následně balíčky v systému. Potřebuji také vyhledávat V lokální databázi balíčků můžete vyhledávat pomocí příkazu: $ pacman -Q balicek Uvedete-li volbu -S, hledáte v databázi synchronizovaných serverů: $ pacman -S balicek Pokud potřebujete hledat balíčky nejen podle jmen, ale také podle popisů balíčků, použijete: $ pacman -Ss balicek V balíčcích již naistalovaných: $ pacman -Qs balicek Někdy se mohou hodit podrobnější informace o balíčku. $ pacman -Si balicek Obdobně pro lokálně nainstalované balíčky: $ pacman -Qi balicek Zajímavá je určitě volba pro dotaz na seznam souborů nainstalovaných některým balíčkem: $ pacman -Ql balicek Dotaz lze provézt i v okamžiku, kdy hledáte, k jakému balíčku patří určitý soubor. $ pacman -Qo /ulozeny/soubor

212 210 Kapitola 10: Další užitečné příkazy Výpis balíčků, které již patrně nejsou potřebné (pozůstatky po odinstalování některých balíčků), provedete: $ pacman -Qdt Balíček lze stáhnout, ale zatím bez instalace: # pacman -Sw balíček Důležitou variantou je instalace z lokálního souboru. # pacman -U /balicek/ulozeny/jmeno.pkg.tar.gz Instalace vzdáleného balíčku (taktéž nepocházejícího z repozitáře): # pacman -U Balíčkovací systém Portage systémy založené na Gentoo Nesmíme zapomenout ani na distribuce postavené na Gentoo. Svého času jsem zkoušel i distribuci Sabayon, založenou právě na Gentoo. Nejdůležitějším nástrojem je emerge. Jak aktualizovat Portage # emerge --sync Toto je nejednodušší způsob, jak aktualizovat strom Portage. Portage je aktualizovaný pomocí rsync. V některých případech můžete mít na firewallu blokované rsync. Existuje i další varianta: # emerge-webrsync Jak můžu vyhledat balíček Vyhledávání je opět jednoduché, použijte příkaz ve tvaru: # emerge -search player Odpovědí vám bude výpis balíčků obsahujících v názvu player. Pokud chcete vyhledávat i v popisech balíčků, rozšíříte příkaz a použijete jej ve tvaru: # emerge searchdesc player Jak balíček nainstaluji Pokud najdete balíček, který vám vyhovuje, můžete jej nainstalovat. Opět pomocí příkazu emerge jednoduše napíšete: # emerge kmplayer Portage si řeší závislosti samo; pokud je potřeba doinstalovat i některé další aplikace a knihovny, provede to automaticky.

213 Vlastní kompilace 211 V některých situacích se vám může hodit i sledování toho, co se bude instalovat. Příkaz emerge rozšíříte o parametr --pretend. # emerge -pretend kmplayer Balíčky chci jen stáhnout a zatím neinstalovat V tomto případě k příkazu emerge přidáte parametr fetchonly. # emerge --fetchonly gnumeric Balíček se pouze stáhne a uloží do adresáře /usr/portage/distfiles. Aplikaci chci odinstalovat K odinstalaci opět použijete příkaz emerge a tentokrát přidáte parametr unmerge. # emerge --unmerge kmplayer Odinstalování neřeší závislosti, proto je dobré čas od času spustit příkaz na zjištění již nepotřebných balíčků opět pomocí příkazu emerge, tentokrát s parametrem depclean. # emerge --depclean Jak provést aktualizaci systému Nejprve provedete aktualizaci vašeho Portage stromu pomocí příkazu: # emerge --update A následně rozšíříte příkaz na tvar: # emerge --update --ask world a tímto příkazem aktualizaci rozšíříte na zbytek vašeho systému. Pomocí parametru ask přikážete systému, aby vypsal aktualizované balíčky a vyžádal si váš souhlas s další operací. Opět se neřeší závislosti, museli byste příkaz rozšířit ještě o parametr deep. # emerge --update --deep world Příkaz emerge má ještě některé další možnosti, ale to už vás odkážu na manuálové stránky, případně na Internet na stránky věnované Gentoo. Vlastní kompilace Silná trojka příkazů configure make make install S takovouto instalací se v dnešních dobách příliš nesetkáváte. Důležité aplikace jsou již připraveny v balíčcích. Vždy je lepší a jednodušší zkusit, jestli neexistuje správný balíček pro můj operační systém. Instalace ze zdrojového kódu obchází balíčkovací systémy a můžete si způsobit menší nebo větší problémy. V některých situacích to jinak ale nejde.

214 212 Kapitola 10: Další užitečné příkazy Krok číslo jedna Jako první musíte sehnat zdrojový kód. Ten si většinou stáhnete z Internetu nebo dostanete na mediu. Krok číslo dva Soubory dostanete většinou zabalené některým z archivačních programů. Musíte archiv rozbalit, dle druhu archivu. Krok třetí Soubory by měly být umístěny v adresáři nazývajícím se podle programu. V tomto adresáři by měl být i soubor readme; ten popisuje instalaci a většinou i známé problémy. V tomto adresáři by měl být i soubor configure, nemusí zde však být vždy. Krok čtvrtý Pokud adresář obsahuje soubor configure, spustíte přípravu instalace příkazem./configure. Sledujte výpis v konzole, protože se zde objevují důležité informace, které vám mohou pomoci při řešení problémů. Kontrolují se zde verze knihoven, systémové informace, aplikace potřebné pro správnou činnost programu apod. Výpis nesmí končit chybou. Před pokračováním je třeba nejprve chybu vyřešit. Krok pátý Tip Pokud ve stažené složce nemáte příkaz configure, můžete zkusit přímo příkaz make. Jestliže příkaz./configure úspěšně proběhl a žádná chyba se neobjevila, použitím příkazu make budete pokračovat v instalaci. Opět sledujte výpis na kozole a v případě problému musíte nejprve problém řešit. Pokud se chyba objeví, je třeba ji nejprve odstranit a následně zkusit znovu. Krok šestý V poslední kroku už musíte s právy root provést samotnou instalaci aplikace pomocí příkazu # make install. Jestliže instalace proběhla, můžete se pokusit nově přidanou aplikace spustit.

215 KAPITOLA 11 Zkuste Emulaci Emulace Emulace operačního systému, to je další téma na samostatnou knihu. Existuje spousta variant, ať už komerčních, nebo volných. Emulace virtuální prostředí, se vždy hodí, pokud potřebujete něco nového vyzkoušet nebo potřebujete jiné prostředí na některý druh činnosti. Podívejte se na jednu z jednodušších variant. Emulace pomocí qemu Samozřejmě nejprve potřebujete mít Qemu nainstalované, buď je součástí distribuce anebo si je budete muset doinstalovat některým z uvedených postupů, případně postupem dle vašeho systému. Emulovat můžete několik archtektur, například x86, SPARC, ARM, PPC. Musíte si uvědomit, že nemá cenu spouštět emulaci, pokud nemáte dostatečně výkoný počítač. Emulaci jednoduše spustíte příkazem: qemu -boot d -m 400 -cdrom '/home/pavel/stažené/slax iso' -net nic,vlan=0 -net user,vlan=0 -localtime &

216 214 Kapitola 11: Zkuste Emulaci Parametry, které jste zadávali: -boot d boot bude probíhat Cdrom (pokud zadáte -c bude probíhat z disku) -m 400 udává, jakou paměť přidělíte virtuálnímu počítači Zajímavým a důležitým parametrem ještě bude -hda virtual.iso. Tímto parametrem zadáváte, že se bude používat virtuální disk virtual.iso. Jak si vytvořím virtuální disk $ dd if=/dev/zero of=virtual.iso ibs=1024 count= vstoupivších záznamů vystoupivších záznamů bajtů (1,1 GB) zkopírováno, 25,452 s, 42,2 MB/s $ ls -al drwxr-xr-x. 2 pavel pavel kvě drwx pavel pavel kvě rw-rw-r--. 1 pavel pavel kvě slax iso -rw-rw-r--. 1 pavel pavel kvě virtual.iso A máte vytvořený virtuální disk virtual.iso; ten si můžete naformátovat například pomocí vfat. $ /sbin/mkfs mkfs mkfs.ext2 mkfs.ext4 mkfs.msdos mkfs.vfat mkfs.cramfs mkfs.ext3 mkfs.ext4dev mkfs.ntfs mkfs.xfs $ /sbin/mkfs.vfat virtual.iso Obrázek 11.1: Virtuální disk

217 Emulace 215 Následně při spouštění qemu musíte ještě přidat virtuální disk. $ qemu -boot d -m 400 -cdrom '/home/pavel/stažené/slax iso' -hda virtual.iso -net nic,vlan=0 -net user,vlan=0 -localtime & Po spuštění qemu a po nabootování do textového režimu se můžete přesvědčit, že disk o velikosti 1GB je přítomen. Po spuštění qemu se přepínáte mezi oknem qemu a vašim prostředím pomocí kláves Ctrl+Alt+1 a Ctrl+Alt+2. Qemu ukončíte, pokud ukončíte virtuální systém. Obrázek 11.2: Slax spuštěný v Qemu

218 216 Kapitola 11: Zkuste Emulaci Tento další obrázek berte jako ilustrativní, patrně nikdo nebude spouštět čtyři operační systémy na jednodm počítači. Operační systémy jsou spouštěny z Windows pomocí nástroje Virtual Box. Lze i to Obrázek 11.3: Virtuální operační systém pro nadšence

Úvod Kapitola 1 Začínáme... 21

Úvod Kapitola 1 Začínáme... 21 Obsah Úvod... 17 Co je obsahem knihy...17 Komu je kniha určena...18 Jak tuto knihu číst...18 Co budete dále potřebovat...18 Na jakých systémech jsou jednotlivé ukázky otestovány...18 Zpětná vazba od čtenářů...19

Více

Pavel Kameník. Příkazový řádek v Linuxu Praktická řešení

Pavel Kameník. Příkazový řádek v Linuxu Praktická řešení Pavel Kameník Příkazový řádek v Linuxu Praktická řešení Computer Press Brno 2012 Příkazový řádek v Linuxu Praktická řešení Pavel Kameník Obálka: Martin Sodomka Odpovědný redaktor: Martin Herodek Technický

Více

Linux-příkazový řádek

Linux-příkazový řádek Linux-příkazový řádek Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Libor Otáhalík. Dostupné z Metodického portálu www.rvp.cz, ISSN: 1802-4785. Provozuje Národní ústav pro vzdělávání,

Více

Úvod do Unixu. man: příkaz pro zobrazení nápovědy k danému příkazu, programu (pokud je k dispozici), např. man cp. pwd: vypíše cestu k aktuální pozici

Úvod do Unixu. man: příkaz pro zobrazení nápovědy k danému příkazu, programu (pokud je k dispozici), např. man cp. pwd: vypíše cestu k aktuální pozici Základní příkazy Úvod do Unixu man: příkaz pro zobrazení nápovědy k danému příkazu, programu (pokud je k dispozici), např. man cp vypíše nápovědu o příkazu cp, manuálová stránka se ukončí stisknutím klávesy

Více

Cvičení 2. Přesměrování vstupu a výstupu. Posloupnost příkazů. Příkazy pro informaci o uživatelích

Cvičení 2. Přesměrování vstupu a výstupu. Posloupnost příkazů. Příkazy pro informaci o uživatelích Cvičení 2 Přesměrování vstupu a výstupu Příkaz > abc výstup příkazu jde do souboru abc. Pokud soubor neexistuje je vytvořen. Pokud existuje je přepsán. Příkaz >> abc výstup příkazu jde do souboru abc.

Více

Základní příkazy UNIXu (Linuxu)

Základní příkazy UNIXu (Linuxu) Základní příkazy UNIXu (Linuxu) Ostatní clear smazání obrazovky man nápověda k příkazům (zkus man man) Ovládání příkazu man PgUp, b stránka vzhůru PgDn, mezerník stránka dolů šipky nahoru a dolů pohyb

Více

Téma 4: Práce s CentOS. Instalace softwarových balíčků pomocí yum

Téma 4: Práce s CentOS. Instalace softwarových balíčků pomocí yum Téma 4: Práce s CentOS Instalace softwarových balíčků pomocí yum 1 Teoretické znalosti V této kapitole zjistíte, jak probíhá v prostředí CentOS instalace nových programů, co to jsou balíčky, a jak pracovat

Více

Základní příkazy OS UNIX

Základní příkazy OS UNIX 1 Základní příkazy OS UNIX Výpis obsahu adresáře ls [přepínače] [soubor]! výpis informací o zadaných souborech! pokud zadáme jméno adresáře, je vypsán obsah adresáře (seznam souborů, které jsou v adresáři

Více

Instalace a první spuštění Programu Job Abacus Pro

Instalace a první spuštění Programu Job Abacus Pro Instalace a první spuštění Programu Job Abacus Pro Pro chod programu je nutné mít nainstalované databázové úložiště, které je připraveno v instalačním balíčku GAMP, který si stáhnete z našich webových

Více

UŽIVATEL, SKUPINA, PROCES

UŽIVATEL, SKUPINA, PROCES UŽIVATEL, SKUPINA, PROCES Systém bez uživatele je jedině Matrix? Uživatelé se seskupují a řídí práci. Group = skupina uživatelů Trocha teorie: LINUX je systémem víceuživatelským. Tzn. Že k dané instanci

Více

LINUX přesměrování a roury

LINUX přesměrování a roury LINUX přesměrování a roury Trocha teorie: Veškerá komunikace uživatelů a jednotlivých procesů v LINUXu probíhá přes vstupně/výstupní (I/O) kanály. STDIN - standardní vstup (klávesnice) STDOUT - standardní

Více

Téma 5: Práce s CentOS II. Správa RPM balíčků

Téma 5: Práce s CentOS II. Správa RPM balíčků Téma 5: Práce s CentOS II Správa RPM balíčků 1 Teoretické znalosti V této kapitole zjistíte, co to jsou RPM balíčky, jak funguje Upgrading, Freshening, Removing a Queying rpm balíčků. Dále jak probíhá

Více

Téma 1: Práce s Desktop. Téma 1: Práce s Desktop

Téma 1: Práce s Desktop. Téma 1: Práce s Desktop Téma 1: Práce s Desktop 1 Teoretické znalosti V této kapitole zjistíte, co skrývají pojmy jako Desktop, GNOME, KDE, Metacity Window Manager, Nautilus a Konqueror. Desktop neboli pracovní plocha patří mezi

Více

Instalace programu ProVIS

Instalace programu ProVIS Instalace programu ProVIS Tento program umožňuje instalovat program ProVIS. Umožňuje vybrat, kam se bude instalovat, a jednotlivé součásti instalace. Instalace probíhá v několika krocích. Každý krok má

Více

PŘÍKAZOVÝ ŘÁDEK ZÍSKÁVÁNÍ NÁPOVĚDY

PŘÍKAZOVÝ ŘÁDEK ZÍSKÁVÁNÍ NÁPOVĚDY PŘÍKAZOVÝ ŘÁDEK ZÍSKÁVÁNÍ NÁPOVĚDY Název školy Obchodní akademie, Vyšší odborná škola a Jazyková škola s právem státní jazykové zkoušky Uherské Hradiště Název DUMu Příkazový řádek získávání nápovědy Autor

Více

Stručná instalační příručka SUSE Linux Enterprise Server 11

Stručná instalační příručka SUSE Linux Enterprise Server 11 Stručná instalační příručka SUSE Linux Enterprise Server 11 RYCHLÝ ÚVODNÍ LIST NOVELL Při instalaci nové verze systému SUSE Linux Enterprise 11 postupujte podle následujících pokynů. Tento dokument obsahuje

Více

Tiskový manažer Printman (Tiskový manažer verze 1.58 a novější)

Tiskový manažer Printman (Tiskový manažer verze 1.58 a novější) Tiskový manažer Printman (Tiskový manažer verze 1.58 a novější) Tiskový manažer je program, který je součástí programu Praktik. Používá se pokud máte připojenou tiskárnu přes USB port. (Pokud je tiskárna

Více

NÁVOD NA INSTALACI KARTY PCTV DELUXE

NÁVOD NA INSTALACI KARTY PCTV DELUXE NÁVOD NA INSTALACI KARTY PCTV DELUXE INSTALACE PCTV DELUXE Tato část popisuje, jak nainstalovat PCTV Deluxe po hardwarové i softwarové stránce. Během instalace bude vytvořena programová skupina PCTV Deluxe

Více

http://www.zlinskedumy.cz

http://www.zlinskedumy.cz Číslo projektu Číslo a název šablony klíčové aktivity Tematická oblast Autor Ročník 1 Obor CZ.1.07/1.5.00/34.0514 III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Operační systém a textový editor,

Více

Obsah. Úvodem 9 Zpětná vazba od čtenářů 10 Zdrojové kódy ke knize 10 Errata 10

Obsah. Úvodem 9 Zpětná vazba od čtenářů 10 Zdrojové kódy ke knize 10 Errata 10 Obsah Úvodem 9 Zpětná vazba od čtenářů 10 Zdrojové kódy ke knize 10 Errata 10 KAPITOLA 1 Co budeme potřebovat 11 Co knihovna jquery nabízí 11 Editor zdrojového kódu 12 Webový server 12 Software pro ladění

Více

PŘÍKAZY OVLÁDÁNÍ SHELLU

PŘÍKAZY OVLÁDÁNÍ SHELLU PŘÍKAZY OVLÁDÁNÍ SHELLU Název školy Obchodní akademie, Vyšší odborná škola a Jazyková škola s právem státní jazykové zkoušky Uherské Hradiště Název DUMu Příkazy ovládání shellu Autor Martin Šimůnek Datum

Více

Unix je víceuživatelský a víceúlohový OS

Unix je víceuživatelský a víceúlohový OS Unix je víceuživatelský a víceúlohový OS Mezi základní úkoly každého OS patří: - Správa hardwareových prostředků - Správa souborového systému - Správa procesů - U víceuživatelských systémů rovněž řízení

Více

Před instalací 25 Minimální požadavky na systém Linux a Windows na jednom disku Zrušení instalace Mandriva Linuxu...

Před instalací 25 Minimální požadavky na systém Linux a Windows na jednom disku Zrušení instalace Mandriva Linuxu... Obsah Úvodem 9 Typografické konvence.............................. 10 Změny oproti předchozím verzím......................... 11 Změny v českém vydání.............................. 18 Informace o aktualizaci

Více

IFTER-EQU Instalační manuál

IFTER-EQU Instalační manuál IFTER-EQU Instalační manuál Revize: Únor 2016 1 / 30 Obsah: 1 IFTER EQU Instalace softwaru 1.1 Rychlá instalace 1.1.1 Instalace na jeden počítač 1.1.2 Instalace na více počítačů 1.2 Pokročilá instalace

Více

Connection Manager - Uživatelská příručka

Connection Manager - Uživatelská příručka Connection Manager - Uživatelská příručka 1.0. vydání 2 Obsah Aplikace Správce připojení 3 Začínáme 3 Spuštění Správce připojení 3 Zobrazení stavu aktuálního připojení 3 Připojení k internetu 3 Připojení

Více

Zálohování v MS Windows 10

Zálohování v MS Windows 10 Zálohování v MS Windows 10 Historie souborů Způsob zálohování jako v MS Windows 8.1 Nastavení Aktualizace a zabezpečení Zálohování nebo Ovládací panely Systém a zabezpečení - Historie souborů Přidat jednotku

Více

LINUX ADRESÁŘOVÁ STRUKTURA. Co to, hrome, je? V této lekci se budeme brouzdat adresáři. SPŠ Teplice - 3.V

LINUX ADRESÁŘOVÁ STRUKTURA. Co to, hrome, je? V této lekci se budeme brouzdat adresáři. SPŠ Teplice - 3.V LINUX ADRESÁŘOVÁ STRUKTURA Co to, hrome, je? V této lekci se budeme brouzdat adresáři. KOŘENOVÝ ADRESÁŘ kořen = root tak se mu říká Ve skutečnosti se jmenuje / (lomítko, slash). Vše ostatní je v ubuntu

Více

Operační systémy. Cvičení 1: Seznámení s prostředím

Operační systémy. Cvičení 1: Seznámení s prostředím Operační systémy Cvičení 1: Seznámení s prostředím 1 Obsah cvičení Organizace cvičení Učebna K311 Unixová učebna K327 (Solárium) Přihlášení do Unixu Spouštění vzorových příkladů vzdáleně (Unix) lokálně

Více

X10 Uživatelský manuál na webové rozhraní (ver0.9)

X10 Uživatelský manuál na webové rozhraní (ver0.9) X10 Uživatelský manuál na webové rozhraní (ver0.9) UPOZORNĚNÍ: Prosím přesvěčte se, že k použití webového rozhraní máte na Vašem X10 nainstalovaný upgrade R1644 nebo vyšší. 1. Jak provést nastavení k možnosti

Více

Používání u a Internetu

Používání  u a Internetu Používání e-mailu a Internetu Je pro vás systém Windows 7 nový? I když má tento systém mnoho společného s verzí systému Windows, kterou jste používali dříve, můžete potřebovat pomoc, než se v něm zorientujete.

Více

BM Software, Databáze Docházky 3000 na NAS serveru (pro MySQL) Němčičky 84, 69107 Němčičky u Břeclavi. Úvodní informace:

BM Software, Databáze Docházky 3000 na NAS serveru (pro MySQL) Němčičky 84, 69107 Němčičky u Břeclavi. Úvodní informace: BM Software, Němčičky 84, 69107 Němčičky u Břeclavi Vývoj, výroba, prodej a montáž docházkových a identifikačních systémů Tel: 519 430 765, Mobil: 608 447 546 e-mail: bmsoft@seznam.cz web: http://www.dochazka.eu

Více

THEOPHILOS. (návod k použití)

THEOPHILOS. (návod k použití) THEOPHILOS (návod k použití) Nejprve si z internetových stránek www.theophilos.com (nebo www.theophilos.sk) stáhněte všechny soubory, které Vás zajímají a nainstalujte je (podrobný návod na instalaci programu

Více

POZOR!!! INSTALACE POD WINDOWS 200 / XP / VISTA PROBÍHÁ VE DVOU ETAPÁCH A JE NUTNÉ DOKON

POZOR!!! INSTALACE POD WINDOWS 200 / XP / VISTA PROBÍHÁ VE DVOU ETAPÁCH A JE NUTNÉ DOKON Program SK2 Připojení adaptérusk2 k počítači Propojte svůj počítač pomocí přiloženého propojovacího USB kabelu s adaptérem SK2. SK2 v prostředí Windows 2000 - XP - Vista - po propojení počítače s adaptérem

Více

Mobilní aplikace. Uživatelský manuál

Mobilní aplikace. Uživatelský manuál Uživatelský manuál Obsah Základní informace a nastavení... 3 Nastavení přístupu... 4 Registrace docházky... 5 Editace vlastní docházky... 5 Ovládaní z mobilní aplikace... 6 Konfigurace mobilní aplikace...

Více

Téma 8: Konfigurace počítačů se systémem Windows 7 IV

Téma 8: Konfigurace počítačů se systémem Windows 7 IV Téma 8: Konfigurace počítačů se systémem Windows 7 IV 1 Teoretické znalosti V tomto cvičení budete pracovat se správou vlastností systému, postupně projdete všechny karty tohoto nastavení a vyzkoušíte

Více

Nápověda pro ovládání automaticky čtené učebnice

Nápověda pro ovládání automaticky čtené učebnice Speciální vzdělávací pomůcky k podpoře výuky slabozrakých žáků Nápověda pro ovládání automaticky čtené učebnice Požadavky na počítač Pro používání čtených pomůcek Vám postačí běžný osobní počítač, reproduktory

Více

iviewer pro iphone & ipad & ipod touch Rychlý uživatelský návod

iviewer pro iphone & ipad & ipod touch Rychlý uživatelský návod iviewer pro iphone & ipad & ipod touch Rychlý uživatelský návod iviewer lze použít na iphone a ipad pro zobrazení živého obrazu z DVR vzdálený server. I. Použití iphone pro přístup ke vzdálenému DVR Použití

Více

Použití Office 365 na iphonu nebo ipadu

Použití Office 365 na iphonu nebo ipadu Použití Office 365 na iphonu nebo ipadu Úvodní příručka Kontrola e-mailů iphone nebo ipad si můžete nastavit tak, aby odesílal a přijímal poštu z vašeho účtu Office 365. Kontrola kalendáře z libovolného

Více

Manuál k programu KaraokeEditor

Manuál k programu KaraokeEditor Manuál k programu KaraokeEditor Co je KaraokeEditor? Program slouží pro editaci tagů v hudebních souborech formátu mp3. Tagy jsou doprovodné informace o písni, uložené přímo v mp3. Aplikace umí pracovat

Více

Tomáš Borland Valenta

Tomáš Borland Valenta Architektura GNU/Linuxu Tomáš Borland Valenta Přehled stavebních prvků operačního systému GNU/Linux aneb od základů až po okna... Základní rozdělení Hardware Software Hardware Základní deska CPU Paměť

Více

Uživatelský manuál - základ PiPO U2

Uživatelský manuál - základ PiPO U2 Uživatelský manuál - základ PiPO U2 Vítejte Děkujeme za koupi tohoto tabletu. Tablet běží na systému Android 4.1 a má dvoujádrový 1,6GHz procesor. Před použitím si prosím přečtěte tento manuál. Klávesy

Více

Instalace Dosemu na Linux Ubuntu 12.04

Instalace Dosemu na Linux Ubuntu 12.04 Instalace Dosemu na Linux Ubuntu 12.04 do hledacího okénka napsat dosemu Objeví se hledaný SW. 1 z 18 Ťuknutím na SW se zvýrazní vybraný SW a objeví se tlačítko Nainstalovat, pokud ještě není nainstalován.

Více

VoiceOver v ios s QWERTY klávesnicí

VoiceOver v ios s QWERTY klávesnicí VoiceOver v ios s QWERTY klávesnicí Poslední aktualizace článku: 18/11/2015 Tento článek přináší přehled klávesových zkratek, které můžete z QWERTY klávesnice při práci s odečítačem VoiceOver v systému

Více

PRACUJEME S TSRM. Modul Samoobsluha

PRACUJEME S TSRM. Modul Samoobsluha PRACUJEME S TSRM Modul Samoobsluha V této kapitole Tato kapitola obsahuje následující témata: Téma Na straně Přehled kapitoly 6-1 Užití modulu Samoobsluha 6-2 Přihlášení k systému 6-3 Hlavní nabídka TSRM

Více

Uživatelský manuál - základ PiPO P1

Uživatelský manuál - základ PiPO P1 Uživatelský manuál - základ PiPO P1 Vítejte Děkujeme za koupi tohoto tabletu. Tablet běží na systému Android 4.4 a má čtyřjádrový 1,8GHz procesor. Před použitím si prosím přečtěte tento manuál. Klávesy

Více

Supernova 16 Ovládací zkratky. Akce Funkce Stolní počítač Přenosný počítač Automatické popisování grafických objektů LEVÝ CONTROL + PRAVÁ HRANATÁ

Supernova 16 Ovládací zkratky. Akce Funkce Stolní počítač Přenosný počítač Automatické popisování grafických objektů LEVÝ CONTROL + PRAVÁ HRANATÁ Supernova 16 Ovládací zkratky Akce Funkce Stolní počítač Přenosný počítač Automatické popisování grafických objektů PRAVÁ HRANATÁ G Otevřít kontextové menu ovládacího panelu ZÁVORKA MEZERNÍK Předčítací

Více

Kompletní manuál programu HiddenSMS Lite

Kompletní manuál programu HiddenSMS Lite v1.1001 Kompletní manuál programu HiddenSMS Lite Poslední aktualizace: 27. 8. 2009 HiddenSMS Lite software pro mobilní telefony s operačním systémem Windows Mobile, určený pro skrytí Vašich soukromých

Více

Manuál QPos Pokladna V1.18.1

Manuál QPos Pokladna V1.18.1 Manuál QPos Pokladna V1.18.1 OBSAH Obsah 1. QPOS dotyková pokladna... 3 2. Jak číst tento manuál... 4 2.1. Čím začít?... 4 2.2. Členění kapitol... 4 2.3. Speciální text... 4 3. První spuštění... 5 3.1.

Více

Postup přechodu na podporované prostředí. Přechod aplikace BankKlient na nový operační systém formou reinstalace ze zálohy

Postup přechodu na podporované prostředí. Přechod aplikace BankKlient na nový operační systém formou reinstalace ze zálohy Postup přechodu na podporované prostředí Přechod aplikace BankKlient na nový operační systém formou reinstalace ze zálohy Obsah Zálohování BankKlienta... 3 Přihlášení do BankKlienta... 3 Kontrola verze

Více

Uživatelský manuál - základ PiPO M6

Uživatelský manuál - základ PiPO M6 Uživatelský manuál - základ PiPO M6 Vítejte Děkujeme za koupi tohoto tabletu. Tablet běží na systému Android 4.2 a má čtyřjádrový 1,6GHz procesor. Před použitím si prosím přečtěte tento manuál. Klávesy

Více

Návod k obsluze IP kamery Zoneway. IP kamery jsou určené pro odbornou montáž.

Návod k obsluze IP kamery Zoneway. IP kamery jsou určené pro odbornou montáž. Návod k obsluze IP kamery Zoneway. IP kamery jsou určené pro odbornou montáž. Obsah 1 Úvod... 1 2 Návod pro připojení do webového rozhraní... 1 2.1 Připojení kamery k WiFi síti... 4 2.2 Postup nastavení

Více

Instalace webové služby Mydlinka

Instalace webové služby Mydlinka Instalace webové služby Mydlinka Aktualizace dokumentu: 21.10.2014 Obsah 1 Co je to webová služba Mydlinka 2 Požadavky na instalaci a provoz 2.1 SAS 2.2 Databáze 2.3 Operační systém 2.4 Softwarové vybavení

Více

Mobilní aplikace. Uživatelský manuál

Mobilní aplikace. Uživatelský manuál Uživatelský manuál Obsah Základní informace a nastavení... 3 Nastavení přístupu... 4 Registrace docházky... 5 Editace vlastní docházky... 5 Ovládaní z mobilní aplikace... 6 Konfigurace mobilní aplikace...

Více

Možnosti programu. KAPITOLA 5 Možnosti

Možnosti programu. KAPITOLA 5 Možnosti KAPITOLA 5 Možnosti Nastavení v možnostech programu a uživatelského rozhraní určují, jak se ZoomText spouští, ukončuje a indikuje na ploše systému. Můžete si také aktivovat automatickou aktualizaci, kdy

Více

LAN se používá k prvnímu nastavení Vašeho DVR a když potřebujete nastavit síť na Vašem DVR pro používání po internetu.

LAN se používá k prvnímu nastavení Vašeho DVR a když potřebujete nastavit síť na Vašem DVR pro používání po internetu. Návod Video Viewer 1.9.9 1 Dodávaný licencovaný software Následující stránky popisují nejpoužívanější funkce software Video Viewer. Podrobnosti o softwaru a jeho nastavení, najdete v rozšířené příručce,

Více

PREMIER E Agent. Jak to funguje?

PREMIER E Agent. Jak to funguje? PREMIER E Agent PREMIER E Agent je samostatná aplikace, která slouží jako doplněk k informačnímu systému PREMIER. Je dostupná jako samostatná instalace a její používání je vázáno na jakoukoli licenci k

Více

ADMINISTRACE UNIXU A SÍTÍ - AUS Metodický list č. 1

ADMINISTRACE UNIXU A SÍTÍ - AUS Metodický list č. 1 Metodický list č. 1 Cílem předmětu je seznámit posluchače s problematikou správy systémů typu UNIX a základním nastavením počítačových sítí. Zaměření kurzu je především na získání celkového přehledu a

Více

STRUč Ná Př íruč KA pro Windows Vista

STRUč Ná Př íruč KA pro Windows Vista STRUč Ná Př íruč KA pro Windows Vista OBSAH Kapitola 1: SYSTéMOVé POžADAVKY...1 Kapitola 2: INSTALACE SOFTWARU TISKáRNY V SYSTéMU WINDOWS...2 Instalace softwaru pro lokální tisk... 2 Instalace softwaru

Více

Uživatelský manuál - základ PiPO U6

Uživatelský manuál - základ PiPO U6 Uživatelský manuál - základ PiPO U6 Vítejte Děkujeme za koupi tohoto tabletu. Tablet běží na systému Android 4.2 a má čtyřjádobrý 1,6GHz procesor. Před použitím si prosím přečtěte tento manuál. Klávesy

Více

DLS V v1.2. Nové funkce. Používání programu DLS V

DLS V v1.2. Nové funkce. Používání programu DLS V DLS V v1.2 Nové funkce Nahrazuje SW DLS IV stáhne se sám přes DLS IV Updater, nebo ho lze nainstalovat ručně Existuje DLS V pro instalační firmy a DLS V SA pro uživatele Databáze místo MS SQL serveru se

Více

Workmonitor. Servisní návod. 24. června 2014 w w w. p a p o u c h. c o m

Workmonitor. Servisní návod. 24. června 2014 w w w. p a p o u c h. c o m Servisní návod 24. června 2014 w w w. p a p o u c h. c o m Workmonitor Katalogový list Vytvořen: 18.5.2009 Poslední aktualizace: 24.6 2014 09:20 Počet stran: 11 2014 Adresa: Strašnická 3164/1a 102 00 Praha

Více

Návod pro používání Automaticky Čtených Učebních Pomůcek vytvořených v rámci projektu ARET

Návod pro používání Automaticky Čtených Učebních Pomůcek vytvořených v rámci projektu ARET Návod pro používání Automaticky Čtených Učebních Pomůcek vytvořených v rámci projektu ARET Tato nápověda slouží k vysvětlení správného používání automaticky čtených učebních pomůcek dostupných na internetové

Více

Použití Office 365 na telefonu s Androidem

Použití Office 365 na telefonu s Androidem Použití Office 365 na telefonu s Androidem Úvodní příručka Kontrola e-mailů Telefon s Androidem si můžete nastavit tak, aby odesílal a přijímal poštu z vašeho účtu Office 365. Kontrola kalendáře z libovolného

Více

CMS. Centrální monitorovací systém. Manuál

CMS. Centrální monitorovací systém. Manuál Centrální Monitorovací Systém manuál CMS Centrální monitorovací systém Manuál VARIANT plus, spol. s.r.o., U Obůrky 5, 674 01 TŘEBÍČ, tel.: 565 659 600 technická linka 565 659 630 (pracovní doba 8.00 16:30)

Více

MHD v mobilu. Instalace a spuštění. Co to umí

MHD v mobilu. Instalace a spuštění. Co to umí MHD v mobilu Aplikace MHD v mobilu umí zobrazovat offline (bez nutnosti připojení) jízdní řády MHD na obrazovce mobilního telefonu. Aplikaci pro konkrétní město je možné stáhnout z našich stránek zdarma.

Více

PSK3-7. Plánované spouštění programů a správce sezení. Skupiny procesů

PSK3-7. Plánované spouštění programů a správce sezení. Skupiny procesů Název školy: Autor: Anotace: Vzdělávací oblast: Předmět: PSK3-7 Vyšší odborná škola a Střední průmyslová škola, Božetěchova 3 Ing. Marek Nožka Správa sezení a plánované spouštění procesů Informační a komunikační

Více

ÚVOD DO UNIXU. Metodický list č. 1

ÚVOD DO UNIXU. Metodický list č. 1 ÚVOD DO UNIXU Metodický list č. 1 Účelem tohoto předmětu je naučit studenty pracovat s operačním systémem typu UNIX (orientováno hlavně na příkazovou řádku a shell) a porozumět jeho filosofii. Libovolnou

Více

aneb velice zjednodušené vysvětlení základních funkcí a možností systému Vypracoval: Tomáš Dluhoš E-mail: tomas.d@centrum.cz

aneb velice zjednodušené vysvětlení základních funkcí a možností systému Vypracoval: Tomáš Dluhoš E-mail: tomas.d@centrum.cz aneb velice zjednodušené vysvětlení základních funkcí a možností systému Vypracoval: Tomáš Dluhoš E-mail: tomas.d@centrum.cz Operační systém Windows - první operační systém Windows byl představen v roce

Více

Windows 7 instalace krok za krokem

Windows 7 instalace krok za krokem Windows 7 instalace krok za krokem Než začneme instalovat Než vložíme instalační DVD do mechaniky, měli bychom se prvně přesvědčit, zda máme jako první bootovací mechaniku právě DVD-ROMku a ne např. hard

Více

Manuál QPOS Pokladna V 2.0

Manuál QPOS Pokladna V 2.0 Manuál QPOS Pokladna V 2.0 OBSAH Obsah 1. QPOS dotyková pokladna... 3 2. Jak číst tento manuál... 4 2.1. Čím začít?... 4 2.2. Členění kapitol... 4 2.3. Speciální text... 4 3. První spuštění... 5 3.1. Spuštění...

Více

Minimální požadavky na systém... 21 Linux a Windows na jednom disku... 22 Zrušení instalace Mandriva Linuxu... 23

Minimální požadavky na systém... 21 Linux a Windows na jednom disku... 22 Zrušení instalace Mandriva Linuxu... 23 Obsah Úvodem 9 Typografické konvence.............................. 10 Změny oproti předchozí verzi Mandriva Linuxu.................. 11 Informace o aktualizaci z verze 2006....................... 17 Poděkování....................................

Více

ČSOB Business Connector instalační příručka

ČSOB Business Connector instalační příručka ČSOB Business Connector instalační příručka Obsah 1 Úvod... 2 2 Získání komerčního serverového certifikátu... 2 2.1 Vytvoření žádosti o certifikát v počítači... 2 2.2 Instalace certifikátu na počítač...

Více

IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ

IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ Identifikační údaje školy Číslo projektu Název projektu Číslo a název šablony Autor Tematická oblast Číslo a název materiálu Anotace Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace

Více

Windows XP. Operační systém Windows: Uložen na C:\Windows Důležité adresáře:

Windows XP. Operační systém Windows: Uložen na C:\Windows Důležité adresáře: Windows XP Operační systém Windows: Uložen na C:\Windows Důležité adresáře: Program Files nainstalované aplikace, hry apod Documents and Settings (Vista, 7 Users) Data a nastavení jednotlivých uživatelů

Více

Řešení chybových hlášek. Verze: 2.11 (17. 7. 2015) Jméno souboru:

Řešení chybových hlášek. Verze: 2.11 (17. 7. 2015) Jméno souboru: Řešení chybových hlášek Verze: 2.11 (17. 7. 2015) Vlastník: CEN7350_03 Jméno souboru: FAQ 1 Obsah Obsah... 2 1. Úvod... 3 1.1. Důležité... 3 1.2. Aktuální informace čtěte... 3 2. Přihlášení jednorázovým

Více

Připojení do PC aplikace Camera Live

Připojení do PC aplikace Camera Live Návod na připojení a zprovoznění IP kamera Anbash. Postup popsaný v tomto návodu není jedinou cestou ke zprovoznění kamery, představuje doporučený postup. V návodu je popsáno základní připojení kamery

Více

Průvodce instalací modulu Offline VetShop verze 3.4

Průvodce instalací modulu Offline VetShop verze 3.4 Průvodce instalací modulu Offline VetShop verze 3.4 Úvod k instalaci Tato instalační příručka je určena uživatelům objednávkového modulu Offline VetShop verze 3.4. Obsah 1. Instalace modulu Offline VetShop...

Více

Tabletová aplikace. Uživatelský manuál

Tabletová aplikace. Uživatelský manuál Uživatelský manuál Obsah Základní informace... 4 Instalace a přihlášení... 5 Verze CLOUD... 5 Verze SERVER... 8 Verze DEMO... 10 Nastavení displeje, tlačítek... 11 Obecná konfigurace... 11 GPS pozice...

Více

Návod pro připojení k síti VŠPJ prostřednictvím VPN Vysoká škola polytechnická Jihlava

Návod pro připojení k síti VŠPJ prostřednictvím VPN Vysoká škola polytechnická Jihlava Návod pro připojení k síti VŠPJ prostřednictvím VPN Vysoká škola polytechnická Jihlava autor: OIKT 2015 Obsah Návod pro instalaci VPN... 3 Důležité upozornění... 3 Příprava na instalaci - stažení souborů...

Více

Část první: Tipy a triky pro práci se systémem 17

Část první: Tipy a triky pro práci se systémem 17 Obsah Část první: Tipy a triky pro práci se systémem 17 Efektivní práce s příkazovou řádkou 17 1. Vyhledávání správných programů k danému účelu 17 2. Základní informace o programu 17 3. Vyhledání cesty

Více

Gymnázium Ostrava Hrabůvka, příspěvková organizace Františka Hajdy 34, Ostrava Hrabůvka

Gymnázium Ostrava Hrabůvka, příspěvková organizace Františka Hajdy 34, Ostrava Hrabůvka Gymnázium Ostrava Hrabůvka, příspěvková organizace Františka Hajdy 34, Ostrava Hrabůvka Projekt Využití ICT ve výuce na gymnáziích, registrační číslo projektu CZ.1.07/1.1.07/02.0030 MS Power Point Metodický

Více

EVIDENCE DOCHÁZKY SE ČTEČKOU INTAGRAL. příručka uživatele

EVIDENCE DOCHÁZKY SE ČTEČKOU INTAGRAL. příručka uživatele EVIDENCE DOCHÁZKY SE ČTEČKOU INTAGRAL příručka uživatele Obsah 1. Úvod 2. Instalace čtečky 3. Instalace programu 4. Nastavení programu 4.1. Nastavení směny 4.2. Nastavení přesčasů 4.3. Nastavení výjimek

Více

První kroky po instalaci programu. Nastavení údajů k provozovně

První kroky po instalaci programu. Nastavení údajů k provozovně První kroky po instalaci programu Po instalaci programu je potřeba stáhnout ceník. Stahování ceníku vyvoláte kliknutím na tlačítko Stáhnout ceník", nebo stiskem kláves Alt + S - je samozřejmě potřeba,

Více

Fides Software Storage Administrator

Fides Software Storage Administrator Trade FIDES, a.s. Fides Software Storage Administrator 1.0.2.0 (aktualizace - 7/2014) Popis programu Manuál správce systému 2 Fides Software Storage Administrator manuál správce Obsah 1 Úvod... 3 1.1 Popis

Více

AIDA64 Extreme. Příručka k nastavení. v 1.1 30. 07. 2014.

AIDA64 Extreme. Příručka k nastavení. v 1.1 30. 07. 2014. Příručka k nastavení v 1.1 30. 07. 2014. je vyvíjen společností FinalWire s.r.o. Copyright 1995-2014 FinalWire s.r.o. Tento dokument byl vytvořen společností ABSEIRA s.r.o. Všechna práva vyhrazena. Copyright

Více

Téma 12: Správa diskových jednotek a system souborů. Téma 12: Správa diskových jednotek a systémů souborů

Téma 12: Správa diskových jednotek a system souborů. Téma 12: Správa diskových jednotek a systémů souborů Téma 12: Správa diskových jednotek a systémů souborů 1 Teoretické znalosti V tomto cvičení se podíváte na práci s diskovými jednotkami. Naučíte se používat nástroj správy disků, který se poprvé objevil

Více

WinFAS. 5 účto. Praktický úvod do WinFASu Prohlížení knih

WinFAS. 5 účto. Praktický úvod do WinFASu Prohlížení knih 5 účto Praktický úvod do WinFASu Prohlížení knih verze z 30.3.2005 Zadání WinFAS K čemu slouží aplikace *1018 Prohlížení knih Aplikace slouží pro zobrazení podrobných informací o dokladech uložených v

Více

Archiv elektronických dokumentů Zela

Archiv elektronických dokumentů Zela Archiv elektronických dokumentů Zela Instalace po rozbalení servisního balíčku 38 se automaticky spustí instalační program, který nainstaluje potřebné moduly pro provoz archivu dokumentů. Tyto moduly je

Více

Aktualizace softwaru Uživatelská příručka

Aktualizace softwaru Uživatelská příručka Aktualizace softwaru Uživatelská příručka Copyright 2008, 2009 Hewlett-Packard Development Company, L.P. Windows je registrovaná ochranná známka společnosti Microsoft Corporation v USA. Informace uvedené

Více

PSK3-11. Instalace software a nastavení sítě. Instalace software

PSK3-11. Instalace software a nastavení sítě. Instalace software PSK3-11 Název školy: Autor: Anotace: Vzdělávací oblast: Předmět: Tematická oblast: Výsledky vzdělávání: Vyšší odborná škola a Střední průmyslová škola, Božetěchova 3 Ing. Marek Nožka První kroky v OS Debian

Více

Windows 8.1 (5. třída)

Windows 8.1 (5. třída) Windows 8.1 (5. třída) Pracovní plocha: takto vypadá Pracovní plocha u nás ve škole - pozadí Pracovní plochy - ikony na pracovní ploše - Hlavní panel - ikony na Hlavním panelu (zvýrazněná ikona spuštěné

Více

Vzorce. Suma. Tvorba vzorce napsáním. Tvorba vzorců průvodcem

Vzorce. Suma. Tvorba vzorce napsáním. Tvorba vzorců průvodcem Vzorce Vzorce v Excelu lze zadávat dvěma způsoby. Buď známe přesný zápis vzorce a přímo ho do buňky napíšeme, nebo použijeme takzvaného průvodce při tvorbě vzorce (zejména u složitějších funkcí). Tvorba

Více

Migrace na aplikaci Outlook 2010

Migrace na aplikaci Outlook 2010 V tomto průvodci Microsoft Aplikace Microsoft Outlook 2010 vypadá velmi odlišně od aplikace Outlook 2003, a proto jsme vytvořili tohoto průvodce, který vám pomůže se s ní rychle seznámit. Dozvíte se o

Více

Návod na použití portálu 802

Návod na použití portálu 802 Návod na použití portálu 802 Použití nápovědy Nápovědu aktivujete stiskem zeleného tlačítka v dolní části ovladače (Aplikace) a zeleného tlačítka (Help). Rolování v textu provedete pomocí rolovacích tlačítek.

Více

Nastroje na zpracovani textu:

Nastroje na zpracovani textu: Nastroje na zpracovani textu: head - vypise prvnich x radku, standartne x=10 tail vypise poslednich x radku, standartne x=10 nl vypise a ocisluje radky v souboru a vysledek posle na STDOUT, soubor se nemeni

Více

Návod k aplikaci DPH Kontrol

Návod k aplikaci DPH Kontrol Návod k aplikaci DPH Kontrol Obsah I. O aplikaci... 2 II. Jak používat DPH Kontrol... 3 1. Kontrola spolehlivosti plátců DPH... 3 2. Kontrola zveřejněných účtů... 5 III. Další práce s databází záznamů...

Více

ABRA Software a.s. ABRA on- line

ABRA Software a.s. ABRA on- line ABRA Software a.s. ABRA online ÚVOD 2 2.1 ABRA on-line - úvod 1 ČÁST 1 2 1.1 ABRA on-line - připojení do vzdálené aplikace z prostředí OS MS Windows 1 ČÁST 2 11 2.1 ABRA on-line - připojení do vzdálené

Více

HELIOS - Zálohování BüroKomplet, s.r.o.

HELIOS - Zálohování BüroKomplet, s.r.o. HELIOS - Zálohování 2017 BüroKomplet, s.r.o. Obsah Záloha... 3 Přehled záloh... 3 Typ zálohy... 3 Adresář... 4 Nový... 4 Obnova... 6 2 Záloha V přehledu lze provádět zálohy dat jednotlivých firem a v případě

Více

INSTALAČNÍ POSTUP PRO APLIKACI ELIŠKA 4

INSTALAČNÍ POSTUP PRO APLIKACI ELIŠKA 4 INSTALAČNÍ POSTUP PRO APLIKACI ELIŠKA 4 1. Dříve než spustíte instalaci Vítáme Vás při instalaci nové verze aplikace eliška. Před samotnou instalací, prosím, ověřte, že jsou splněné následující podmínky:

Více

Obsah. Úvod. Kapitola 1. Kapitola 2. Co budete potřebovat 11 Rozlišení sítí podle přenosového média 12 Kabelová síť 13 Bezdrátová síť 14

Obsah. Úvod. Kapitola 1. Kapitola 2. Co budete potřebovat 11 Rozlišení sítí podle přenosového média 12 Kabelová síť 13 Bezdrátová síť 14 Obsah Úvod Proč počítačovou síť 7 Co v knize najdete 7 Zpětná vazba od čtenářů 10 Dotazy 10 Errata 10 Kapitola 1 Co budete potřebovat 11 Rozlišení sítí podle přenosového média 12 Kabelová síť 13 Bezdrátová

Více