PRACUJEME S SHELLEM Ať žije BASH. V této lekci nakoukneme do základů shellu Bash.
Trocha nudné teorie. Název je akronym pro Bourne again shell, což poukazuje na jeho základ v dříve nejpoužívanějším unixovém shellu Bourne shell (sh). Někdy se tento název také uvádí jako slovní hříčka odkazující na křesťanské znovuzrození (anglicky born again) nebo jako stlučení (anglicky bashing) všech výhod sh, csh and ksh.
Prompt (Výzva) První čím nás shell po přihlášení přivítá je skupina znaků, za kterou bliká kurzor. Nazývá se výzva nebo anglicky prompt. V našem případě je to přihlášený_uživatel@jméno_počítače:~$ Prompt může vypadat různě, je upravitelný. Jak to udělat se dovíme o par snímků dále.
Jak zjistím, že používám BASH? Nejjednodušeji asi výpisem systémové proměnné SHELL: echo $SHELL Pozor! Linux je case sensitive, tzn. že shell není to samé jako SHELL! Já vím, opět předbíháme, ale jak příkaz echo, tak proměnné už brzy přijdou.
Elementární doplňování BASHe? Kouzelná klávesa TAB Bash za nás umí doplnit název příkazu, adresáře a dokonce i názvu souboru, pokud napíšeme jeho začátek a stiskneme klávesu TAB. Ovšem to platí pouze pokud je část názvu jednoznačná. V opačném případě se nestane nic. Po opakovaném stisku klávesy TAB shell vypíše návrhy možných příkazů (souborů ) Např.: Místo příkazu výpisu domovského adresáře uživatele host ls /home/host zadáme ls /htab /htab
Finty aneb jak ovládat BASH BASH netrpí ztrátou paměti! BASH si totiž pamatuje vámi zadané příkazy a to i po vypnutí počítače. Stačí stisknout šipku nahoru (poté i dolů) a to i opakovaně. BASH lze ovládat klávesovými zkratkami. Následuje stručný přehled. Ve skutečnosti je jich mnohem více. ESC b - posun o jedno slovo zpět ESC f - posun o jedno slovo vzad ESC d - smazání následujícího slova CTRL+Y - vložení naposledy smazané položky CTRL+K - smazání textu do konce řádku CTRL+R - postupné vyhledávání v historii příkazů ESC < - posun na první řádek historie příkazů TAB - pokus o obecné doplnění textu TAB TAB - jestliže existuje více možností doplnění, vypíše je ESC ~ - pokus o doplnění jména uživatele CTRL+X ~ - vypíše možné alternativy doplnění jména uživatele CTRL+X $ - vypíše možné alternativy doplnění jména proměnné CTRL+X @ - vypíše možné alternativy doplnění jména počítače ESC TAB - pokusí se doplnit text z předchozích příkazů v historii
Echo je nejen ozvěna, ale i příkaz shellu echo. Ale echo může být pouhou ozvěnou: Příkaz echo Halooooo nevypíše nic jiného než Halooooo. Syntaxe: echo argument popř. echo argument popř. echo argument Rozdíl mezi uvozovkami a apostrofem uvidíme později. Přepínače a argumenty. Přepínač e způsobí, že echo bude rozumět skupinám speciálních znaků, naopak přepínač E způsoví přesný opak. Vyzkoušejte: echo -E "Kernel\tVerze\nLinux\t2.6.8" echo -e "Kernel\tVerze\nLinux\t2.6.8" echo -e Kernel\tVerze\nLinux\t2.6.8
Echo skupiny speciálních znaků \a - výstraha (zvonek) \b - zpětné mazání \c - potlačit přebývající konec řádku \e - znak escape \f - nová stránka (FF) \n - nový řádek \r - návrat vozíku (CR) \t - horizontální tab \v - vertikální tab \\ - obrácené lomítko \0nnn - znak zadaný osmibitovou hodnotou nnn v osmičkové soustavě (nula až tři osmičkové číslice) \xhh - znak zadaný osmibitovou hodnotou HH v šestnáctkové soustavě (jedna nebo dvě šestnáctkové číslice) I echo má různé verze, pokud něco nefunguje navštivte manuál: man echo.
Proměnné Deklarace V bashi se proměnná deklaruje snadno. V podstatě se deklaruje použitím. Usus Názvy proměnných jsou většinou tvořeny velkými písmeny bez diakritiky. Ale můžete použit i malá písmena. Pozor i proměnné jsou case sensitivní. PROMENNA Promenna Příklady MOJEPROMENNA = 5 MOJEPROMENNA2 = Nazdar
Proměnné Výpis obsahu proměnné Použijeme příkaz echo. Proměnnou je třeba psát s $ na začátku. Příklad echo $PROMENNA
Systémové proměnné BASH_VERSION = verze interpretru Bash GROUPS = seznam skupin, jichž je současný uživatel členem HISTSIZE = počet zadaných příkazů, které si Bash pamatuje HOME = domovský adresář HOSTNAME = jméno počítače HOSTTYPE = typ počítače MAIL = soubor s lokální schránkou OLDPWD = předchozí pracovní adresář OSTYPE = typ operačního systému PWD = aktuální pracovní adresář PATH = vyhledávací cesta pro příkazy bez adresáře RANDOM = náhodné číslo do 0 do 32767 SECONDS = počet sekund od startu shellu SHELL = určuje výchozí interpretr TMP = dočasný adresář USER = jméno uživatele
Podle slibu zpátky k promptu aneb systémová proměnná PS1 Příklad: PS1= Zadej Prikaz: Příklad 2: PS1="\d, \A \u@\h \w > " Tato změna je dočasná, abyste změnili prompt natrvalo musíte jej upravit v souboru.bashrc, který najdete ve svém domovském adresáři. Ale o tom příště při povídání o souborovém systému.
A TO JE PRO DNEŠEK KONEC!