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 ====== | ||
| + | |||