Obsah

Bash úvod

Bash je součástí Linuxu a jeho používání Vám značně usnadní Vaši práci v Linuxu. Při programování v jazyce Bash vytváříte vlastní skripty, které pak vykonávají nějakou akci. Tyto skripty se dají psát v libovolném textovém editoru v Linuxu, doporučuji používat Geany. Ve skriptu se používají buď již Vámi vytvořené skripty, nebo nástroje, které poskytuje přímo Linux.

Výstupy

Každý program nebo skript vypisuje výsledky konání na výstup. V Linuxu rozlišujeme dva výstupy stdout - standardní výstup a stderr - chybový výstup. Tyto výstupy jsou očíslovány 1 standartní výstup a 2 chybový výstup. Pokud nám program v konzoli vypíše svůj výstup, tak se může zdát že to vypisuje stále stejně. To ovšem není pravda, program ls v konzoli vypíše seznam souborů do standardního výstupu, ale program strace ls ho vypíše do chybového výstupu, nicméně v konzole se zobrazí oba stejně. Proto je potřeba si uvědomit s kterým výstupem pracujeme.

Přesměrování

Každý výstup programu se dá také přesměrovat do souboru. Máme několik typů přesměrování:\

Příklady:\

Výpis programu ls přesměrujeme do nově vytvořeného souboru pokus:

ls > pokus

Máme soubor pokus a tento soubor pošleme příkazu nl:

nl < pokus

Na konec souboru pokus přidáme volání strace ls:

strace ls 2>> pokus

Zkuste si změnit > na » abyste lépe pochopili k čemu se přesměrování používá.

Roura

Roura je speciální typ souboru v Linuxu. Slouží k přesměrování výstupu jednoho programu na vstup druhého programu. V Linuxu se značí znakem |.\ Roura implicitně přesměrovává standardní výstup (1) na standardní vstup.\ Konstrukce:

standartníVýstup | standartníVstup

Příklad:

ls | wc -l

Roura nemusí být jenom jedna, může jich být několik (doporučuje se používat max. 7):

ls | nl | wc -l

Pokud chceme přesměrovat chybový výstup (2) na standardní vstup použijeme následující konstrukci:

chybovýVýstup 2>&1 | standartníVstup

A pro pochopení na příkladu:

strace ls 2>&1 | wc -l

Kombinace:

strace ls 2>&1 | nl | wc -l

Zacyklení / Program neodpovídá

Jakýkoliv program se může zacyklit (neustále provádí výpočty a nikdy se neukončí) nebo může dojít k jeho pádu a program pak neodpovídá. Pokud pracujeme v konzoli a zdá se nám že výpočet trvá příliš dlouho, můžeme jej usmrtit. K tomu v Linuxu slouží klávesa Ctrl+C.

Spuštění programu na pozadí

Pokud chcete spustí program na pozadí, tak se to provádí takto:\

program & nebo ./program &

musíte dát za název spuštěného programu mezeru a znak &.

Toto se používá např. u toho, že si spustíte přes terminál program geany. Program se Vám spustí, ale nedá se pracovat v terminálu až do té doby, než program geany ukončíte. Pokud ho ovšem spustíte na pozadí, s konzolí můžete pracovat souběžně s geany.\

Takto spuštěný proces Vám může ubírat výkon, nenechávejte takto běžet procesy, které nic nedělají. Jak ukončit proces se dozvíte v sekci ps.

Pokud nějaký proces spustíte bez & na konci a náhle ho potřebujete přesunout na pozadí dělá se to stisknutím kláves Ctrl+z. Tím příkaz „zmrazíte“ a získáte možnost zadat do konzole další příkaz. Zmrazený příkaz čeká na pozadí na vaše další pokyny.\ Na příkladu níže vidíte dlouhotrvající příkaz který zapisuje ping na seznam.cz do souboru odezvy.txt.

bfu@lynx:~$ ping seznam.cz > odezvy.txt

Zmáčknu klávesy Ctrl+z a terminál mi napíše: \

[1]+  Pozastavena             ping seznam.cz > odezvy.txt
bfu@lynx:~$

Pokud chci, aby příkaz rozmrznul a dále pracoval, udělám to příkazem bg, kterému jako parametr předám číslo v hranatých závorkách.\

bfu@lynx:~$ bg 1

Nyní můžu zadávat další příkazy. Seznam všech příkazů si vypíšu příkazem jobs:\

bfu@lynx:~$ jobs
[1]   Běží                 ping seznam.cz > odezvy.txt &
[2]-  Běží                 ping google.com > odezvy-google.txt &
[3]+  Běží                 ping volny.cz > odezvy-volny.txt &

Na pozadí běžící příkaz ping volny.cz > odezvy-volny.txt přesunu do popředí , když do terminálu napíšu :-\2

bfu@lynx:~$ fg 3

Nástroje linuxu

Všechny programy mají naprogramované dva přepínače pro zobrazení nápovědy a to -h nebo –help. Např. program ls byste pro výpis nápovědy zavolali jako ls -h nebo ls –help.

Všechny následující programy se dají zkoušet a používat pouze v terminálu !

ls

Slouží k zobrazení souborů aktuálního adresáře.

Použití:

ls -al

echo

Slouží k výpisu textu na obrazovku.

escape sekvence neboli znaky, které formátují obrazovku. Jejich krátký přehled:

Použití:

echo -e -n 'Hello world ! \nTest echa !'

nl

Očísluje standardní vstup a na standardní výstup vypíše výsledek.

Použití:

ls | nl

clear

Smaže obrazovku terminálu.

Použití:

clear

wc

Vypíše počet znaků, slov a řádků standardního vstupu na standardní výstup.

Použití:

ls | wc

df

Vypíše počet volného místa na všech discích.

Použití:

df

rm

Odstranění souborů na disku.

Použití:

rm -fr nepotrebnaSlozka/

cal

Zobrazí kalendář a tučně zvýrazní aktuální datum.

Použití:

cal

date

Vypíše aktuální datum.

Použití:

date

shutdown

Provádí operace vypnutí, restartování, odhlášení nad počítačem. Je nutné používat sudo !.

Použití:

sudo shutdown -r 0

ping

Zobrazí odezvu na zadaný server.

Použití:

ping www.seznam.cz -c 4

touch

Změní čas posledního přístupu k souboru. V případě, že soubor neexistuje, vytvoří ho.

Použití:

touch soubor

mkdir

Vytvoří prázdnou složku.

Použití:

mkdir slozka/

rmdir

Odstraní zvolenou složku, ale tato složka musí být prázdná !

Použití:

rmdir slozka/

ps

Zobrazí seznam spuštěných procesů.

Použití:

ps -A

U každého procesu je vlevo napsáno číslo, toto číslo označuje aktuální číslo procesu. Přes toto číslo se nejčastěji používá ukončení zvoleného programu. To provedete takto:

kill -9 čísloProcesu

Např. chci ukončit proces firefox a ten má číslo procesu 4098:

kill -9 4098

Textové editory

Pro zpracování textu má Linux tři výborné programy:

Shrnutí

Tento návod co jsem napsal tak doufám že Vám pomůže v začátcích používání konzole. Není úplný, protože celkový počet programů či nástrojů co nabízí linux je spoustu a jejich celkové rozebrání by zabralo spoustu času. Nejlépe se s těmito nástroji naučíte dělat až při psaní vlastních skriptů. Doporučuji Vám projít celou kategorii Bash a skripty, hlavně pak část s skripty a to Vás naučí příkazovou řádku perfektně ovládat a psát vlastní užitečné skripty. Hodně zdaru při zkoušení a programování přeje Roman Makudera.

Odkazy