Shell, Bash a skripty: Všetko o skriptovaní Shell.

V tejto novej príležitosti (položka č. 8) na „Learn Shell Scripting“ zameriame sa viac na teóriu ako na prax. to znamená, že nebudeme inštalovať ani študovať kód alebo inštalovať konkrétny softvér (balík), ale ponoríme sa do toho, čo je svet Shell skriptovanie správne povedané, prostredníctvom odpovedí na malé, ale priame otázky, ktoré sú uvedené nižšie, je potrebné objasniť doteraz veľa naučeného, ​​čo priamo nesúvisí s programovaným interným kódom:

Shell skriptovanie

Čo je to shell v operačnom systéme GNU / Linux?

Škrupina, čo v španielčine znamená CONCHA (škrupina, obal, ochrana). Termín použitý v operačných systémoch sa vzťahuje na tlmočník príkazov operačného systému. Vo všeobecnosti ide o vysoko výkonné textové rozhranie, ktoré sa prejavuje vo forme terminálu (konzoly) a ktoré v podstate slúži 3 dôležitým pracovným oblastiam:

1.- Správa OS,
2.- Spúšťajte aplikácie a pracujte s nimi a
3.- Slúži ako základné programovacie prostredie.

Veľa, GNU / Linux stále sú efektívnejšie spravované úpravou konfiguračných súborov cez Terminal. Spravidla sú tieto na cieľovej ceste: «/atď"a v konkrétnych adresároch pre každú aplikáciu. Napríklad program Lilo (čo je skratka pre Linux Loader) sa konfiguruje úpravou textového súboru, ktorý sa nachádza a volá sa ako „/Etc/lilo/lilo.conf“. V prípade programov (aplikácií) sa tieto spúšťajú (vykonávajú / aktivujú) napísaním názvu spustiteľného súboru, ak sa nachádza v ceste (predvolená cesta) pre všetky spustiteľné súbory, ako je to bežné „/ Usr / bin“ alebo zadaním názvu spustiteľného súboru, pred ktorým je: ./, z adresára, kde sa nachádzajú.

To všetko je dobre známe každému používateľovi Shell. Nie sú však tak známe a oceňované jeho schopnosti ako programovacie prostredie. Skripty (programy) vytvorené v prostredí Shell sa nemusia kompilovať. Shell ich interpretuje riadok po riadku. Preto sú známe alebo pomenované ako Shells Scripts a môžu siahať od jednoduchých príkazov až po zložité rady pokynov na spustenie samotného operačného systému. majú pomerne čistú syntax (konštrukcia, usporiadanie) (zrejmé), čo z nich robí dobrý východiskový bod pre začiatok vo svete programovania.

Čo je to skriptovanie Shell?

Je to technika (schopnosť / zručnosť) navrhovania a vytvárania Skriptu (súbor automatizácie úloh) pomocou shellu (najlepšie) operačného systému alebo textového editora (grafického alebo terminálového). Toto je typ programovacieho jazyka, ktorý sa všeobecne interpretuje. To znamená, že zatiaľ čo väčšina programov je kompilovaná (kódovaná), pretože sú natrvalo prevedené na konkrétny (špeciálny) kód predtým, ako môžu byť spustené (proces kompilácie), shell skript zostane v pôvodnej podobe (jeho kód textový zdroj) a sú interpretované príkaz po príkaze zakaždým, keď sú vykonané. Je síce možné, že sa dajú skompilovať aj skripty, aj keď to nie je obvyklé.

Aké sú vlastnosti programov založených na programovaní v rámci Shell Scripting?

1. - Ľahšie sa zapisujú (programujú), ale pri ich vykonaní sú vyššie náklady na spracovanie.

2.- Na spustenie používajú namiesto prekladačov tlmočníkov

3.- Majú komunikačný vzťah s komponentmi napísanými v iných programovacích jazykoch.

4.- Súbory, ktoré ich obsahujú, sú uložené ako obyčajný text.

5.- Konečný návrh (kód) je zvyčajne menší, ako by bol ekvivalent v kompilovanom programovacom jazyku.

Aké sú najobľúbenejšie typy jazykov v rámci Shell Scripting?

1. - Jazyk ovládania úloh a shellov:

a) cmd.exe (Windows NT, Windows CE, OS / 2),
b) COMMAND.COM (DOS, Windows 9x),
c) csh, Bash, AppleScript, sh,
d) JScript cez Windows Script Host,
e) VBScript cez Windows Script Host,
f) REXX, okrem mnohých ďalších.

2. - Skriptovanie GUI (jazyky makier):

a) AutoHotkey,
b) AutoIt,
c) Očakávať,
d) Automator, medzi ostatnými.

3. - Skriptovací jazyk konkrétnych aplikácií:

a) ActionScript vo formáte Flash,
b) MATLAB,
c) skript mIRC,
d) QuakeC, medzi ostatnými.

4. - Programovanie webu (pre dynamické stránky):

a) Na strane servera:

- PHP,
- ASP (stránky aktívneho servera),
- stránky JavaServer,
- ColdFusion,
- IPTSCRAE,
- Laso,
- skript MIVA,
- SMX,
- XSLT, medzi inými.

b) Na strane klienta:

- JavaScript,
- JScript,
- VBScript,
- Tcl, medzi ostatnými.

5.- Jazyky na spracovanie textu:

- AWK,
- Perl,
- smäd,
- XSLT,
- Medzi inými Bash.

6. - Univerzálne dynamické jazyky:

- APL,
- Boo,
- Dylan,
- ferit,
- Groovy,
- IO,
- Lisp,
- Lua,
- MUMPS (M),
- novýLISP,
- Nuva,
- Perl,
- PHP,
- Python,
- Ruby,
- schéma,
- Spoločenská konverzácia,
- karta SuperCard,
- Tcl,
- Medzi inými revolúcia.

Čo je Bash v GNU / Linux?

Je to počítačový program, ktorého funkciou je interpretácia príkazov. Je založený na Unix shell a podporuje to POSIX. Bol napísaný pre projekt GNU a je predvoleným shellom pre väčšinu distribúcií Linuxu.

Čo je to Shell Script v GNU / Linux?

Shell skripty sú mimoriadne užitočné. Je dobré napísať tie potreby, ktoré máme, a potom upraviť skripty, ktoré túto prácu urobia za nás. Teraz je čas položiť si otázku, čo presne je skript. Je to textový súbor obsahujúci rad príkazov shellu, ktoré systém vykonáva usporiadane, zhora nadol. Na ich úpravu potrebujete spomedzi mnohých existujúcich iba textový editor, napríklad Emacs, Vi, Nano. Ukladajú sa s príponou „.sh“ (v niektorých prípadoch alebo bez nej) a spúšťajú sa z prostredia Shell pomocou príkazu: sh skript name.sh. Skripty sa správajú rovnako ako príkazy shellu.

Vyučovací prístup, ktorý osobne používam „Learn Shell Scripting“ Je veľmi praktické a priame, to znamená preskúmať plne funkčný Skript, rozložiť ho, študovať ho vetu za vetou, riadok za riadkom, príkaz za príkazom, premennú za premennou, až kým nepochopíte, ako jednotlivé prvky fungujú osobitne a ako sa zapájajú do kódu. všeobecne. Je to tak nejako Reverzné inžinierstvo alebo softvérové ​​inžinierstvo. To všetko s cieľom privlastniť si vedomosti, vylepšiť ich (optimalizovať) a zdieľať ich v spoločný prospech a lepšiu správu a optimalizáciu bezplatných operačných systémov.

Ako to funguje a funguje v prostredí GNU / Linux Shell?

Prvým krokom v práci so serverom Shell je spustenie programu shell. To, čo sa javí ako truizmus, má svoj dôvod byť. V niektorých distribúciách GNU / Linux zameraných na koncových používateľov je shell dosť skrytý. Spravidla sa to volá: Konsole, Terminal, X Terminal alebo niečo podobné. Ďalšou možnosťou je použitie virtuálnej konzoly. Používanie: Ctrl + Alt + f1 alebo f2 alebo f3 až f7 alebo f8, v závislosti od použitej distribúcie GNU / Linux. Najpoužívanejším Shell v GNU / Linux je Bash, aj keď existujú aj iné, napríklad ksh alebo C Shell. V mojom prípade, zvlášť pre svoje publikácie, používam program Bash Shell.

Vzhľadom k tomu, skript vyrobený v Bash Shell tzv ahoj_svet.sh možno vysvetliť nasledovné:

Obsah:

#! / Bin / bash
ozvena ahoj svet

Zlomiť:

Prvý riadok scenára
#! / Bin / bash

Označuje program, ktorý by sa mal skript spustiť. Ak program nenájdete, vyskytne sa chyba.

Druhý riadok scenára
ozvena ahoj svet

Vykonajte príkaz echo s argumentmi Hello World, čo spôsobí ich zobrazenie na obrazovke.

Prevedenie: Skript môžeme spustiť dvoma spôsobmi

Vyvolanie tlmočníka na spustenie skriptu:
# bash hello_world.sh

Môže byť spustený aj ako:
# sh hello_world.sh

Ale pretože váš správny Shell nie je vyvolaný, môže to fungovať polovične. V ideálnom prípade je Shell vyvolaný v prvom riadku ten, ktorý sa použil na jeho vykonanie.

Skript môžete spustiť aj priamo takto:
# ./hello_world.sh

Poznámka: ./ označuje spustenie z aktuálneho adresára.

Zvyšok, ktorý zostáva analyzovať, je kód, ktorý do neho vložíte. Dúfam, že sa vám táto séria ako vždy páči (niektorým viac ako iným, podľa učebných a znalostných potrieb) Shell skriptovanie.

Na webe je veľa dobrých odkazov na túto tému, ale ponechám vám tohto malého sprievodcu, ktorý sa nachádza tu na adrese DesdeLinux.net A toto ďalšie Externý sprievodca.

Do ďalšieho príspevku!


Zanechajte svoj komentár

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *

*

*

  1. Zodpovedný za údaje: Miguel Ángel Gatón
  2. Účel údajov: Kontrolný SPAM, správa komentárov.
  3. Legitimácia: Váš súhlas
  4. Oznamovanie údajov: Údaje nebudú poskytnuté tretím stranám, iba ak to vyplýva zo zákona.
  5. Ukladanie dát: Databáza hostená spoločnosťou Occentus Networks (EU)
  6. Práva: Svoje údaje môžete kedykoľvek obmedziť, obnoviť a vymazať.

  1.   d4ny dijo

    Lilo .. Linux Loader .. ostatné veľmi dobré informácie .. vďaka .. salu2 d4ny.-

  2.   Ing.Jose Albert dijo

    Zdravím všetkých, ktorí sa čoskoro zúčastnia online kurzu „Naučte sa skriptovanie Shell“, budeme pokračovať v ďalších základných skriptoch, aby sme si tieto vedomosti mohli naďalej osvojiť a ďalej ich socializovať pre všetkých.

    Dúfam, že zostanete naladení, pretože čoskoro začnem s pokročilejšími kódmi, ale vystavenými spôsobom, ktorý je vizuálne zrozumiteľný aj napriek jeho zložitosti.

    Pamätajte, že pomocou Shell Scripting môžete pomocou veľmi malých súborov robiť mnoho zložitých vecí, ktoré sú multiplatformové (Different Distros). Nechám vám toto malé premietanie niečoho, čo vás čoskoro naučím, pre tých, ktorí kurz naďalej sledujú, a to len s 50 kB sľubuje veľa! A je to len polovica toho, čo sa dá urobiť pomocou Shell Scripting.

    Test ScreenCast LPI-SB8 (LINUX POST INSTALL - SCRIPT BICENTENARIO 8.0.0)
    (lpi_sb8_adecuación-audiovisual_2016.sh / 43 kB)

    Pozri Screencast: https://www.youtube.com/watch?v=cWpVQcbgCyY

    1.    Alberto cardona dijo

      Dobrý deň, váš príspevok je neuveriteľný, naozaj veľmi pekne ďakujem !!
      Trochu pochybujem, môžem naprogramovať kompilátor pomocou bash?
      Alebo aspoň lexikálny analyzátor?
      má tú moc?

  3.   Ing.Jose Albert dijo

    Zdravím všetkých, ktorí sa čoskoro zúčastnia online kurzu „Naučte sa skriptovanie Shell“, budeme pokračovať v ďalších základných skriptoch, aby sme si tieto vedomosti mohli naďalej osvojiť a ďalej ich socializovať pre všetkých. Dúfam, že zostanete naladení, pretože čoskoro začnem s pokročilejšími kódmi, ale vystavenými spôsobom, ktorý je vizuálne zrozumiteľný aj napriek jeho zložitosti.

    Pamätajte, že pomocou Shell Scripting môžete pomocou veľmi malých súborov robiť mnoho zložitých vecí, ktoré sú multiplatformové (Different Distros). Nechám vám toto malé premietanie niečoho, čo vás čoskoro naučím, pre tých, ktorí kurz naďalej sledujú, a to len s 50 kB sľubuje veľa! A je to len polovica toho, čo sa dá urobiť pomocou Shell Scripting.

    Test ScreenCast LPI-SB8 (LINUX POST INSTALL - SCRIPT BICENTENARIO 8.0.0)
    (lpi_sb8_adecuación-audiovisual_2016.sh / 43 kB)

    Pozri Screencast: https://www.youtube.com/watch?v=cWpVQcbgCyY

  4.   Alberto dijo

    Ahoj Jose,
    Najprv ďakujem za zdieľanie svojich vedomostí. Vaše články sú veľmi zaujímavé.

    Dve veci, myslím si, že je veľmi dôležité používať dvojité úvodzovky „Hello World“ a mať čistý výstup nášho skriptu s výstupom 0

  5.   Ing.Jose Albert dijo

    Ďakujeme za vaše príspevky, v nasledujúcom skripte uvidíte použitie východu 0, zlomu a ďalších!

  6.   Willarmand dijo

    Zdravím.
    Veľmi zaujímavé, vďaka čomu vyzeráte jednoducho; Teraz som zistil, že nemôžem programovať v Linuxe s cron alebo at, vypínaním / pozastavením / hibernáciou, s následným automatickým spustením pomocou príkazu rtc wake, neviem, či by skript s týmto príkazom pomohol, alebo by nasledovali cron at bez toho, aby som niečo robil, alebo sa to jednoducho nedá urobiť, alebo sa to robí inak, alebo som veľmi ambiciózny, ale vo Windows je to relatívne jednoduché. Chcem prejsť na Linux, ale je pre mňa dôležité naplánovať vypnutie / pozastavenie / dlhodobý spánok a nechať počítač spustiť sám. S pozdravom.

  7.   Ing.Jose Albert dijo

    Možno vám to dá niekoľko inovatívnych nápadov: http://cirelramos.blogspot.com/2016/01/reiniciar-apagar-o-ejecutar-otra-tarea.html

  8.   Willarmand dijo

    Ďakujem, prečítam si ich poriadne, niečo mi pomôže. S pozdravom.

  9.   Edward Cuomo dijo

    Pred časom som začal s projektom, ktorý je podľa mňa jedinečný. Je to prototyp hry Framewok Bash. Vyžaduje sa iba Bash v systéme.
    Ak má niekto iný záujem, je vyzvaný, aby to vyskúšal a spolupracoval!

    https://github.com/reduardo7/bashx

    Zdravím!

    1.    jašterica dijo

      Drahý Eduardo, myslím, že je to skvelý projekt, možno by si ho mohol zdieľať s celou komunitou desdelinux, nezabudnite, že článok o vašom projekte môžete zverejniť na našej stránke, ak neviete ako na to odporúčam prečítať https://blog.desdelinux.net/guia-redactores-editores/ kde sú najlepšie postupy na vytváranie článkov desdelinux a postup, ktorý sa má vykonať. Pre komunitu je možno celkom dobré najprv vedieť o výhodách vášho projektu a potom sa naučiť, ako robiť tento typ vecí. Pozývame vás a pozývame aj ostatných, aby sa s nami a veľkou komunitou, ktorá nás obklopuje, podelili o svoje projekty.

  10.   Zástupný obrázok pre Miguel Urosa Ruiz dijo

    Ahoj, dobrý deň.
    Vo svete správy počítačov s Linuxom som nový a chcel som vedieť, čo preň odporúčate: ksh, bash, perl, php, python….
    Veľmi vám ďakujem a pozdravom.
    Michal.