Ak používame akýkoľvek hlavný operačný systém, nepriamo interagujeme s škrupina . Počas prevádzky Ubuntu, Linux Mint alebo akejkoľvek inej distribúcie Linuxu komunikujeme s shellom pomocou terminálu. V tomto článku budeme diskutovať o shelloch Linuxu a skriptovaní shellu, takže skôr, ako pochopíme skriptovanie shellu, musíme sa oboznámiť s nasledujúcimi terminológiami:
- Kernel
- Shell
- Terminál
Obsah
- Čo je jadro?
- Čo je Shell?
- Shell príkazového riadku
- Grafické škrupiny
- Čo je to terminál?
- Shell Scripting
Čo je jadro?
Jadro je počítačový program, ktorý je jadrom operačného systému počítača s úplnou kontrolou nad všetkým v systéme. Spravuje nasledujúce prostriedky systému Linux –
- Správa súborov
- Riadenie procesov
- I/O manažment
- Správa pamäte
- Správa zariadení atď.
Často sa mýli, že Linus Torvalds vyvinul OS Linux, ale v skutočnosti je zodpovedný len za vývoj linuxového jadra.
Kompletný systém Linux = Kernel + GNU systémové nástroje a knižnice + ďalšie skripty na správu + inštalačné skripty.
Čo je Shell?
Shell je špeciálny používateľský program, ktorý používateľovi poskytuje rozhranie na používanie služieb operačného systému. Shell prijíma ľudsky čitateľné príkazy od používateľov a prevádza ich na niečo, čomu jadro rozumie. Je to tlmočník príkazového jazyka, ktorý vykonáva príkazy načítané zo vstupných zariadení, ako sú klávesnice alebo zo súborov. Shell sa spustí, keď sa používateľ prihlási alebo spustí terminál.
python konvertuje bajty na reťazec

Linux Shell
Shell sa vo všeobecnosti delí do dvoch kategórií –
- Shell príkazového riadku
- Grafický shell
Shell príkazového riadku
K shellu môžu používatelia pristupovať pomocou rozhrania príkazového riadka. Špeciálny program s názvom Terminál v systéme Linux/macOS alebo príkazový riadok v operačnom systéme Windows slúži na zadávanie ľudsky čitateľných príkazov, ako sú cat, ls atď., a potom sa vykoná. Výsledok sa potom zobrazí na termináli používateľovi. Terminál v systéme Ubuntu 16.4 vyzerá takto –

linuxový príkazový riadok
Na snímke obrazovky vyššie ls príkaz s -l možnosť sa vykoná. Zobrazí zoznam všetkých súborov v aktuálnom pracovnom adresári vo formáte dlhého zoznamu.
Práca s príkazovým riadkom je pre začiatočníkov trochu náročná, pretože je ťažké zapamätať si toľko príkazov. Je veľmi silný; umožňuje používateľom ukladať príkazy do súboru a vykonávať ich spoločne. Takto možno ľahko automatizovať akúkoľvek opakujúcu sa úlohu. Tieto súbory sa zvyčajne nazývajú dávkové súbory v systéme Windows a Shell Skripty v systémoch Linux/macOS.
Grafické škrupiny
Grafické shelly poskytujú prostriedky na manipuláciu s programami založenými na grafickom používateľskom rozhraní (GUI) tým, že umožňujú operácie, ako je otváranie, zatváranie, presúvanie a zmena veľkosti okien, ako aj prepínanie zamerania medzi oknami. Windows OS alebo Ubuntu OS možno považovať za dobrý príklad, ktorý používateľovi poskytuje GUI na interakciu s programom. Používatelia nemusia zadávať príkazy pre každú akciu. Typické GUI v systéme Ubuntu –

GUI Shell
java dátum teraz
Pre systémy Linux je k dispozícii niekoľko shellov, ako napr.
- BASH (Bourne Again SHell) – Je to najpoužívanejší shell v systémoch Linux. Používa sa ako predvolený prihlasovací shell v systémoch Linux a macOS. Dá sa nainštalovať aj na OS Windows.
- CSH (C SHell) – Syntax shellu C a jeho použitie sú veľmi podobné programovaciemu jazyku C.
- KSH (Korn SHell) – Korn Shell bol tiež základom pre štandardné špecifikácie POSIX Shell atď.
Každý shell robí rovnakú prácu, ale rozumie rôznym príkazom a poskytuje rôzne vstavané funkcie.
Čo je to terminál?
Program, ktorý je zodpovedný za poskytovanie rozhrania používateľovi, aby mohol pristupovať k shellu. V podstate umožňuje používateľom zadávať príkazy a vidieť výstup týchto príkazov v textovom rozhraní. V termináli sa vykonávajú veľké skripty, ktoré sú napísané na automatizáciu a vykonávanie zložitých úloh.
Ak chcete získať prístup k terminálu, jednoducho vyhľadajte v termináli vyhľadávacieho poľa a dvakrát naň kliknite.
otvorený terminál
vymazanie z binárneho vyhľadávacieho stromu
Tu môžete vidieť, ako vyzerá terminál Red Hat Linux.
terminál
Shell Scripting
Shelly sú zvyčajne interaktívne, čo znamená, že prijímajú príkazy ako vstup od používateľov a vykonávajú ich. Niekedy však chceme rutinne vykonávať veľa príkazov, takže musíme zakaždým zadať všetky príkazy do terminálu.
Keďže shell môže tiež brať príkazy ako vstup zo súboru, môžeme tieto príkazy zapísať do súboru a spustiť ich v shelli, aby sme sa vyhli tejto opakovanej práci. Tieto súbory sa nazývajú Shell skripty alebo Shell programy . Shell skripty sú podobné ako dávkový súbor v MS-DOS. Každý skript shellu je uložený s „.sh“. prípona súboru napr. myscript.sh.
Skript shellu má syntax ako každý iný programovací jazyk. Ak máte nejaké predchádzajúce skúsenosti s akýmkoľvek programovacím jazykom ako Python, C/C++ atď. Začať s ním by bolo veľmi jednoduché.
Skript shellu obsahuje nasledujúce prvky –
- Kľúčové slová shellu – if, else, break atď.
- Shell príkazy – cd, ls, echo, pwd, touch atď.
- Funkcie
- Kontrolný tok – ak..tak..inak, puzdrové a škrupinové slučky atď.
Prečo potrebujeme shell skripty?
Existuje mnoho dôvodov, prečo písať skripty shellu:
- Aby ste sa vyhli opakovanej práci a automatizácii
- Správcovia systému používajú skriptovanie shellu na bežné zálohy.
- Monitorovanie systému
- Pridanie nových funkcií do shellu atď.
Niektoré výhody shell skriptov
- Príkaz a syntax sú úplne rovnaké ako tie, ktoré sú zadané priamo v príkazovom riadku, takže programátori nemusia prepínať na úplne inú syntax
- Písanie shell skriptov je oveľa rýchlejšie
- Rýchly štart
- Interaktívne ladenie atď.
Niektoré nevýhody shell skriptov
- Náchylný na drahé chyby, jediná chyba môže zmeniť príkaz, čo môže byť škodlivé.
- Pomalá rýchlosť vykonávania
- Návrhové chyby v syntaxi alebo implementácii jazyka
- Nie je vhodný pre veľké a zložité úlohy
- Poskytnite minimálnu dátovú štruktúru na rozdiel od iných skriptovacích jazykov. atď.
Jednoduchá ukážka skriptovania shell pomocou Bash Shell
Ak pracujete na termináli, niečo, čo prechádzate hlboko v adresároch. Potom pre prichádzajúcich niekoľko adresárov v ceste musíme vykonať príkaz, ako je uvedené nižšie, aby sme sa dostali do adresára python:
koľko miest je v Spojených štátoch

dostať sa do adresára python:
Je to dosť frustrujúce, tak prečo nemôžeme mať nástroj, kde stačí zadať názov adresára a môžeme naň priamo prejsť bez spustenia cd ../ príkaz znova a znova. Uložte skript ako 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 }>
Zatiaľ nemôžeme spustiť náš shell skript, pretože nemá povolenia. Musíme ho urobiť spustiteľným zadaním nasledujúceho príkazu -
$ chmod +x cesta/k/nášmu/súboru/skok.sh
Teraz, aby sme to sprístupnili pri každej relácii terminálu, musíme to vložiť .bashrc súbor.
.bashrc je shell skript, ktorý Bash shell spúšťa vždy, keď je interaktívne spustený. Účelom súboru .bashrc je poskytnúť miesto, kde môžete nastaviť premenné, funkcie a aliasy, definovať našu výzvu a definovať ďalšie nastavenia, ktoré chceme použiť vždy, keď otvoríme nové okno terminálu.
Teraz otvorte terminál a zadajte nasledujúci príkaz:
charat java
$ echo source ~/cesta/k/nášmu/súboru/jump.sh>> ~/.bashrc
Teraz otvorte svoj terminál a vyskúšajte novú funkciu skoku zadaním nasledujúceho príkazu-
$ skok dir_name
rovnako ako nižšie uvedená snímka obrazovky:

skok názov_adresára
Záver
V tomto článku sme sa dozvedeli o základných častiach linuxových systémov: o jadre, ktoré všetko riadi, o shelli, ktorý nám umožňuje interakciu s operačným systémom, a o termináli, našom rozhraní na zadávanie príkazov. Preskúmali sme príkazový riadok a grafické shelly, ako je BASH, a pochopili sme, že terminál je miesto, kde zadávame príkazy. Článok predstavil skriptovanie shellu, spôsob automatizácie úloh pomocou jednoduchých skriptov, a rozobral výhody a nevýhody ich používania. Praktický príklad demonštroval vytvorenie skriptu pre rýchlu navigáciu v adresári. Nakoniec sme videli, ako zabezpečiť, aby skript fungoval a bol dostupný v každej terminálovej relácii. Tento článok je príručkou pre začiatočníkov, ako porozumieť a používať Linuxové shelly a shell scripting.linux je dobrý jazyk, je napísaný v jazyku linux