Pokud používáme jakýkoli hlavní operační systém, nepřímo interagujeme s skořápka . Při spuštění Ubuntu, Linux Mint nebo jakékoli jiné distribuce Linuxu komunikujeme s shellem pomocí terminálu. V tomto článku probereme linuxové shelly a shell skriptování, takže než pochopíme shell skriptování, musíme se seznámit s následující terminologií:
- Jádro
- Shell
- Terminál
Obsah
- Co je to jádro?
- Co je Shell?
- Shell příkazového řádku
- Grafické shelly
- Co je to terminál?
- Shell skriptování
Co je to jádro?
Jádro je počítačový program, který je jádrem operačního systému počítače, s úplnou kontrolou nad vším v systému. Spravuje následující prostředky systému Linux –
- Správa souborů
- Řízení procesu
- I/O management
- Správa paměti
- Správa zařízení atd.
Často se mýlí, že Linus Torvalds vyvinul OS Linux, ale ve skutečnosti je zodpovědný pouze za vývoj linuxového jádra.
Kompletní systém Linux = Kernel + GNU systémové utility a knihovny + další skripty pro správu + instalační skripty.
Co je Shell?
Shell je speciální uživatelský program, který poskytuje uživateli rozhraní pro používání služeb operačního systému. Shell přijímá od uživatelů příkazy čitelné pro člověka a převádí je na něco, čemu jádro rozumí. Jedná se o interpret příkazového jazyka, který provádí příkazy čtené ze vstupních zařízení, jako jsou klávesnice nebo ze souborů. Shell se spustí, když se uživatel přihlásí nebo spustí terminál.
c++ dělicí řetězec

Linux Shell
Shell je obecně rozdělen do dvou kategorií –
- Shell příkazového řádku
- Grafický shell
Shell příkazového řádku
K prostředí Shell mohou uživatelé přistupovat pomocí rozhraní příkazového řádku. Speciální program nazvaný Terminál v Linuxu/macOS nebo Příkazový řádek v OS Windows slouží k zadání pro člověka čitelných příkazů, jako je cat, ls atd., a poté se spustí. Výsledek se poté zobrazí na terminálu uživateli. Terminál v systému Ubuntu 16.4 vypadá takto –

linuxový příkazový řádek
Na výše uvedeném snímku obrazovky ls příkaz s -l volba je provedena. Zobrazí seznam všech souborů v aktuálním pracovním adresáři ve formátu dlouhého výpisu.
Práce s shellem příkazového řádku je pro začátečníky trochu obtížná, protože je těžké si zapamatovat tolik příkazů. Je velmi silný; umožňuje uživatelům ukládat příkazy do souboru a provádět je společně. Tímto způsobem lze snadno automatizovat jakýkoli opakující se úkol. Tyto soubory se ve Windows obvykle nazývají dávkové soubory a Shell Skripty v systémech Linux/macOS.
Grafické shelly
Grafické shelly poskytují prostředky pro manipulaci s programy založenými na grafickém uživatelském rozhraní (GUI) tím, že umožňují operace, jako je otevírání, zavírání, přesouvání a změna velikosti oken, stejně jako přepínání fokusu mezi okny. Windows OS nebo Ubuntu OS lze považovat za dobrý příklad, který poskytuje GUI uživateli pro interakci s programem. Uživatelé nemusí zadávat příkazy pro každou akci. Typické GUI v systému Ubuntu –

GUI Shell
seznam písem v gimpu
Pro systémy Linux je k dispozici několik shellů, jako např.
- BASH (Bourne Again SHell) – Jedná se o nejpoužívanější shell v systémech Linux. Používá se jako výchozí přihlašovací prostředí v systémech Linux a v macOS. Lze jej nainstalovat i na OS Windows.
- CSH (C SHell) – Syntaxe C shellu a jeho použití jsou velmi podobné programovacímu jazyku C.
- KSH (Korn SHell) – Korn Shell byl také základem pro standardní specifikace POSIX Shell atd.
Každý shell dělá stejnou práci, ale rozumí různým příkazům a poskytuje různé vestavěné funkce.
Co je to terminál?
Program, který je zodpovědný za poskytování rozhraní uživateli, aby mohl přistupovat k shellu. V zásadě umožňuje uživatelům zadávat příkazy a zobrazovat výstup těchto příkazů v textovém rozhraní. V terminálu se spouštějí velké skripty, které jsou napsány za účelem automatizace a provádění složitých úkolů.
Pro přístup k terminálu jednoduše vyhledejte v terminálu vyhledávacího pole a dvakrát na něj klikněte.
otevřený terminál
alya manasa
Zde se můžete podívat, jak vypadá terminál Red Hat Linuxu.
terminál
Shell skriptování
Shelly jsou obvykle interaktivní, což znamená, že přijímají příkazy jako vstup od uživatelů a spouštějí je. Někdy však chceme provádět hromadu příkazů rutinně, takže musíme pokaždé zadat všechny příkazy do terminálu.
Protože shell může také přijímat příkazy jako vstup ze souboru, můžeme tyto příkazy zapsat do souboru a spustit je v shellu, abychom se vyhnuli této opakované práci. Tyto soubory se nazývají Shell skripty nebo Shell programy . Skripty prostředí jsou podobné dávkovému souboru v systému MS-DOS. Každý skript shellu je uložen s `.sh` přípona souboru, např. myscript.sh.
Skript shellu má syntaxi stejně jako jakýkoli jiný programovací jazyk. Pokud máte nějaké předchozí zkušenosti s jakýmkoli programovacím jazykem, jako je Python, C/C++ atd. Bylo by velmi snadné s ním začít.
Skript shellu obsahuje následující prvky –
- Klíčová slova Shell – if, else, break atd.
- Shell příkazy – cd, ls, echo, pwd, touch atd.
- Funkce
- Kontrolní tok – if..then..else, case and shell loops etc.
Proč potřebujeme shell skripty?
Existuje mnoho důvodů, proč psát skripty shellu:
- Aby se zabránilo opakované práci a automatizaci
- Správci systému používají skriptování shellu pro rutinní zálohování.
- Monitorování systému
- Přidání nových funkcí do shellu atd.
Některé výhody shell skriptů
- Příkaz a syntaxe jsou přesně stejné jako ty přímo zadané v příkazovém řádku, takže programátoři nemusí přecházet na úplně jinou syntaxi
- Psaní shellových skriptů je mnohem rychlejší
- Rychlý start
- Interaktivní ladění atd.
Některé nevýhody shell skriptů
- S náchylností k nákladným chybám může jediná chyba změnit příkaz, což může být škodlivé.
- Pomalá rychlost provádění
- Návrhové chyby v syntaxi nebo implementaci jazyka
- Nehodí se pro velké a složité úkoly
- Na rozdíl od jiných skriptovacích jazyků poskytují minimální datovou strukturu. atd.
Jednoduchá ukázka skriptování shellu pomocí Bash Shell
Pokud pracujete na terminálu, něco, co procházíte hluboko v adresářích. Pak pro příchod několika adresářů v cestě musíme provést příkaz jako je tento, jak je uvedeno níže, abychom se dostali do adresáře python:
příkaz sed

přejděte do adresáře python:
Je to docela frustrující, tak proč ne, můžeme mít nástroj, kde stačí zadat název adresáře a můžeme na něj přímo skočit, aniž bychom museli spouštět cd../ příkaz znovu a znovu. Uložte skript jako skok.sh
bash # !/bin/bash # A simple bash script to move up to desired directory level directly function jump() { # original value of Internal Field Separator OLDIFS=$IFS # setting field separator to '/' IFS=/ # converting working path into array of directories in path # eg. /my/path/is/like/this # into [, my, path, is, like, this] path_arr=($PWD) # setting IFS to original value IFS=$OLDIFS local pos=-1 # ${path_arr[@]} gives all the values in path_arr for dir in '${path_arr[@]}' do # find the number of directories to move up to # reach at target directory pos=$[$pos+1] if [ '' = '$dir' ];then # length of the path_arr dir_in_path=${#path_arr[@]} #current working directory cwd=$PWD limit=$[$dir_in_path-$pos-1] for ((i=0; i; i++)) do cwd=$cwd/.. done cd $cwd break fi done }> Prozatím nemůžeme spustit náš shell skript, protože nemá oprávnění. Musíme to udělat spustitelným zadáním následujícího příkazu –
$ chmod +x cesta/k/našemu/souboru/skok.sh
Nyní, abychom to zpřístupnili při každé relaci terminálu, musíme to vložit .bashrc soubor.
.bashrc je shell skript, který Bash shell spouští, kdykoli je interaktivně spuštěn. Účelem souboru .bashrc je poskytnout místo, kde můžete nastavit proměnné, funkce a aliasy, definovat naši výzvu a definovat další nastavení, která chceme použít, kdykoli otevřeme nové okno terminálu.
Nyní otevřete terminál a zadejte následující příkaz:
ankita dave
$ echo source ~/cesta/k/našemu/souboru/jump.sh>> ~/.bashrc
Nyní otevřete svůj terminál a vyzkoušejte novou funkci skoku zadáním následujícího příkazu-
$ skok dir_name
stejně jako níže uvedený snímek obrazovky:

skok dir_name
Závěr
V tomto článku jsme se dozvěděli o základních částech linuxových systémů: o jádru, které vše řídí, o shellu, který nám umožňuje interakci s operačním systémem, a o terminálu, našem rozhraní pro zadávání příkazů. Prozkoumali jsme příkazový řádek a grafické shelly, jako je BASH, a pochopili jsme, že terminál je místo, kde zadáváme naše příkazy. Článek představil skriptování shellu, způsob, jak automatizovat úlohy pomocí jednoduchých skriptů, a rozebral výhody a nevýhody jejich použití. Praktický příklad demonstroval vytvoření skriptu pro rychlou navigaci v adresáři. Nakonec jsme viděli, jak zajistit, aby skript fungoval a byl přístupný v každé terminálové relaci. Tento článek je průvodcem pro začátečníky, jak porozumět a používat linuxové shelly a skriptování v shellu. linux je dobrý jazyk, je napsán v jazyce linux