GNU/Linux

V dávné době, kdy se příkazy počítači psaly velkými písmeny se zrodil systém pro sdílení strojového času UNIX. Od té doby uplynulo mnoho cyklů během nichž se původní UNIX vyvinul v dnešní Linux. Samotný Linux tvoří jádro operačního systému, neboli kernel. Spolu s volně dostupnými programy z rodiny GNU ho získáš v praktickém balení, doslova na stříbrném podnose, jako takzvanou distribuci.

Jednotlivé distribuce se navzájem liší jen v detailech. Ve výchozím grafickém prostředí. Ve verzích obsažených programů. Způsobu konfigurace systému a správy balíčků s programy. V každé distribuci ale najdeš program, který emuluje Terminál. Tak si teď pojďme projít několik základních příkazů.

Příkaz se skládá z názvu programu, za kterým mohou následovat přepínače ovlivňující jeho chování a parametry, jako například jména souborů, které má program pro tebe zpracovat. Přepínače programů mívají zpravidla dvě varianty a mohou mít i vlastní parametry.

  • Krátká varianta přepínače uvozena jednou pomlčkou je tvořena zpavidla jen jedním písmenem. Parametry se od nich oddělují mezerou. Více krátkých přepínačů bez parametrů můžeš spojit dohromady, a když chceš být extrémně líná, můžeš někdy vynechat i tu pomlčku a ušetřit si tak pár úhozů na klávesnici.

  • Dlouhá varianta přepínače uvozena dvěma pomlčkami je srozumitelnější a tak i vhodnější pro použití ve skriptech. Případné parametry se k němu připojují pomoci znaku rovnítko =.

  • Speciální přepínač -- ukončuje část příkazu s přepínači a značí, že za ním následují už jenom parametry pro samotný program.

Symbolicky zapsáno může příkaz vypadat například nějak takto

$ program -xy -z on --prepinac=off -- parametr1 parametr2

Hledání nápovědy

Většina programů akceptuje přepínač -h nebo --help pro zobrazení základní nápovědy o jeho použití

$ python --help

Podrobnější informace nalezneš v manuálových stránkách k jednotlivým programům

$ man python

Prohlížeč manuálových stránek ukončíš stiskem klávesy q a nápovědu k němu získáš klávesou h. Struktura manuálových stránek je popsána v manuálové stránce k programu MAN(1). Když nevíš kterou konkrétní zobrazit, můžeš vyhledat všechny na dané téma

$ apropos python

Pokud tě jenom zajímá co daný program dělá, není nic snazšího než zkusit

$ whatis python

Jako čtení na dlouhé zimní večery ti mohu doporučit Info stránky, které obsahuji nepřeberné množství informací. Dostaneš se k nim snadno

$ info

Veškeré instrukce potřebné k jejich prohlížení se dočteš už v prvním odstavci.

Řešení problémů

Pokud se ti bude zdát, že se právě běžící program zasekl, můžeš zkusit opakovaně stisknout kombinaci kláves Ctrl+C a tím jeho běh ukončit. Pro sledování využití prostředků počítače, slouží program TOP.

$ top

Úlohy se v něm dají řadit podle vytížení procesoru klávesovou zkratkou Shift+P nebo podle množství konzumované paměti pomoci Shift+M. Ukončuje se klávesou q a nápověda se zobrazí po stisknutí h.

Občas se může stát, že se některý program prostě zblázní a přestane odpovídat. Pak nezbývá nic jiného než ho bez milosti zabít. Pojďme si cvičně takovou situaci nasimulovat. Začni tím, že v Terminálu spustíš program YES, který neděla nic jiného, než pořád dokola vypisuje text, který mu předáš jako parametr.

$ yes "All work and no play makes Jack a dull boy"

Použitím klávesové zkratky Ctrl+Z jeho běh pozastavíš. Podívej se na výpis všech svých spuštěných programů, ten získáš pomocí příkazu

$ ps x

Vidíš toho šílence jen pár řádek před koncem výpisu? To je on. Zachovej klid a nepropadej panice! Nezbedný program ukončíš tak, že mu zašleš speciální signál

$ kill -9 ####

Za znaky #### dosaď správný PID, tedy to číslo z prvního sloupce, ale dej si dobrý pozor, aby jsi ho opsala ze správného řádku. Jistější přeci jen bude ho zkopírovat a vložit.

Přesměrování

Počítač s tebou komunikuje pomocí takzvaného standardního vstupu, výstupu a chybového výstupu. Vstup představuje klávesnice, pomocí které zadáváš příkazy a výstupem je obrazovka, na které se vše zobrazuje. Vstup může být přesměrován ze souboru, ve kterém jsou zapsány instrukce, které by jsi jinak musela zadávat ručně

$ program < vstup.in

Stejně tak i výstup programu můžeš přesměrovat do souboru

$ program > vystup.out

Chybový výstup můžeš buď přesměrovat zvlášť pomocí 2> nebo můžeš oba výstupy přesměrovat najednou použitím &>. Pokud se má výstup jednoho programu stát zároveň i vstupem pro druhý program, použij takzvanou roupu, neboli PIPE(7)

$ program1 | program2

Chceš-li použít standardní vstup nebo výstup v místě, kde program očekává název souboru, napiš místo něj pomlčku -. Pokud budeš chtít, aby program zapisoval zároveň na standardní výstup i do souboru, použij program TEE(1).

Černá díra

V Linuxu existuje speciální soubor /dev/null, kam můžeš přesměrovat výstup programu, pokud tě vůbec nezajímá co vypisuje. A ani se nemusíš obávat, že by se někdy zaplnil, je to zkrátka prostě nemožné.

Spouštění úloh na pozadí

Spuštěný program po dobu svého běhu blokuje Terminál pro další použití. To můžeš obejít tak, že danou úlohu spustíš na pozadí přidáním znaku ampersand & na konec příkazu

$ program &

Potřebuješ-li do pozadí přenést již běžící program, napřed ho pozastavíš pomocí klávesové zkratky Ctrl+Z a následně použiješ příkaz bg. Naproti tomu příkaz fg přepne program zpátky do popředí.

Všechny tyto techniky se dají kombinovat tak, že za chvíli budeš naprosto s přehledem používat i složitější konstrukce příkazů

$ program1 < vstup.in | program2 | program3 > vystup.out &

V tuto chvíle se z tebe stala vážně nebezpečná hackerka ;-)

Vzdálené přihlášení

Další předností Linuxu je, že prostřednictvím jednoho počítače můžeš ovládat druhý, klidně až na opačné straně Zeměkoule, aniž by ses musela zvednout z pohodlí své pohovky. Program pro přihlášení ke vzdálenému počítači se jmenuje SSH(1) a používá se následovně

$ ssh -X uživatel@počítač

Toto je taky důvod, proč počítače dostávají smysluplná jména, která se objevují v jejich adrese. Přepínač -X přesměruje grafický výstup ze vzdáleného na tvůj počítač. A tak, i když spouštíš programy na vzdáleném počítači, jejich výstup se zobrazuje na tvém vlastním.

Vzdálené odhlášení

Na co by sis měla dát pozor je, že při ukončení spojení se vzdáleným počítačem se automaticky ukončí i všechny tvoje úlohy běžící na pozadí. Proto je třeba abys byla prozíravá a myslela na to, ještě dřív než je spustíš. Jednou z možností je použití příkazu NOHUP(1) spolu se spuštěním programu na pozadí.

$ nohup ... &

Druhou možností je použití programu SCREEN(1), který ti vytvoří virtuální obrazovku, od které se můžeš bez obav odpojit a posléze se k ní znovu připojit.

$ screen

Teď můžeš spustit nějaký program, třeba známý TOP a pomoci kombinace kláves Ctrl+A Ctrl+D se od screenu odpojit. Program v něm bude běžet dál i po odhlášení ze vzdáleného počítače. Znovu se k němu připojíš zadáním

$ screen -r

Pokud screen už dále nepotřebuješ, ukonči ho jak jsi zvyklá, buď klávesovou zkratkou Ctrl+D nebo příkazem exit.

Podmíněné spuštění

Někdy se může stát, že budeš chtít spustit nějaký příkaz, jen pokud předchozí příkaz skončil úspěšně. Takovou typickou situací je kompilace a instalace programů. Standardní postup vypadá následovně

$ ./configure
$ make
$ sudo make install

Než čekat až některý krok doběhne do konce, můžeš mezi příkazy použít logický operátor &&. Předchozí tři příkazy se pomocí něj dají přepsat v jeden

$ ./configure && make && sudo make install

Jako protiklad existuje logický operátor ||, který následující příkaz vykoná jen v případě neúspěchu prvního příkazu. Pokud chceš, aby se všechny příkazy vykonaly postupně bez ohledu na jejich výsledek, prostě je odděl středníkem ;.

results matching ""

    No results matching ""