Rozdíly
Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
Obě strany předchozí revize Předchozí verze | |||
bash_úvod [2012/07/18 18:18] – ubuntu | bash_úvod [2019/02/25 17:21] (aktuální) – upraveno mimo DokuWiki 127.0.0.1 | ||
---|---|---|---|
Řádek 1: | Řádek 1: | ||
+ | ====== 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|Geany]]. Ve skriptu se používají buď již Vámi vytvořené skripty, nebo nástroje, které poskytuje přímo Linux. | ||
+ | |||
+ | ====== Výstupy ====== | ||
+ | {{.: | ||
+ | |||
+ | ====== 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í: | ||
+ | * **standartníVýstup > soubor** - standardní výstup programuje přesměruje do souboru. Pokud soubor neexistuje, tak se vytvoří a naplní daty, pokud existuje tak se přepíše novými daty. | ||
+ | * **standartníVýstup >> soubor** - stejné jako v předchozím případě, ale pokud existuje soubor **nepřepíše** se, ale data jsou přidána na konec souboru | ||
+ | * **chybovýVýstup 2> soubor** totožné s předchozími body, ale do souboru se nahraje chybový výstup místo standardního | ||
+ | * **chybovýVýstup 2>> soubor** totožné s předchozími body, ale do souboru se nahraje chybový výstup místo standardního | ||
+ | * kostrukce: **odkud** > **kam** nebo **kam** < **odkud**, neplést si s **rourou** ! | ||
+ | * obdobně tedy fungují všechny příkazy pokud se použije **>** místo **<** a musí se samozřejmě prohodit strany | ||
+ | |||
+ | **Příklady: | ||
+ | |||
+ | Výpis programu ls přesměrujeme do nově vytvořeného souboru pokus: | ||
+ | < | ||
+ | ls > pokus | ||
+ | </ | ||
+ | < | ||
+ | nl < pokus | ||
+ | </ | ||
+ | < | ||
+ | strace ls 2>> pokus | ||
+ | </ | ||
+ | |||
+ | ====== 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 '' | ||
+ | Konstrukce: | ||
+ | < | ||
+ | standartníVýstup | standartníVstup | ||
+ | </ | ||
+ | < | ||
+ | ls | wc -l | ||
+ | </ | ||
+ | < | ||
+ | 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 | ||
+ | </ | ||
+ | < | ||
+ | strace ls 2>&1 | wc -l | ||
+ | </ | ||
+ | < | ||
+ | strace ls 2>&1 | nl | wc -l | ||
+ | </ | ||
+ | ====== Zacyklení / Program neodpovídá ====== | ||
+ | {{.: | ||
+ | |||
+ | ====== Spuštění programu na pozadí ====== | ||
+ | {{.: | ||
+ | < | ||
+ | program & nebo ./program & | ||
+ | </ | ||
+ | |||
+ | 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**.\ | ||
+ | |||
+ | {{.: | ||
+ | |||
+ | 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 " | ||
+ | Na příkladu níže vidíte dlouhotrvající příkaz který zapisuje '' | ||
+ | < | ||
+ | bfu@lynx:~$ ping seznam.cz > odezvy.txt | ||
+ | </ | ||
+ | < | ||
+ | [1]+ Pozastavena | ||
+ | bfu@lynx:~$ | ||
+ | </ | ||
+ | < | ||
+ | bfu@lynx:~$ bg 1 | ||
+ | </ | ||
+ | < | ||
+ | bfu@lynx:~$ jobs | ||
+ | [1] | ||
+ | [2]- Běží | ||
+ | [3]+ Běží | ||
+ | </ | ||
+ | < | ||
+ | bfu@lynx:~$ fg 3 | ||
+ | </ | ||
+ | ====== Nástroje linuxu ====== | ||
+ | |||
+ | {{.: | ||
+ | |||
+ | {{.: | ||
+ | |||
+ | ===== ls ===== | ||
+ | Slouží k zobrazení souborů aktuálního adresáře. | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | Použití: | ||
+ | < | ||
+ | ls -al | ||
+ | </ | ||
+ | ===== echo ===== | ||
+ | Slouží k výpisu textu na obrazovku. | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * pro výpis textu se dají použít jak jednoduché tak složené apostrofy | ||
+ | |||
+ | **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í, | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | 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 | ||
+ | </ | ||
+ | {{.: | ||
+ | procesu. Přes toto číslo se nejčastěji používá ukončení zvoleného programu. To provedete takto: | ||
+ | < | ||
+ | kill -9 čísloProcesu | ||
+ | </ | ||
+ | < | ||
+ | kill -9 4098 | ||
+ | </ | ||
+ | ===== Textové editory ===== | ||
+ | Pro zpracování textu má Linux tři výborné programy: | ||
+ | * [[Grep]] - vybírá řádek podle zadané předlohy | ||
+ | * [[Sed]] - zpracování souborů a standardního výstupu | ||
+ | * [[Awk]] - obdobně jako Sed, ale má víc možností | ||
+ | |||
+ | ====== 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 ====== | ||
+ | |||