„Shell“, „Bash“ ir scenarijai: viskas apie „Shell“ scenarijus.

Šia nauja galimybe (įrašas Nr. 8) apie „Sužinok„ Shell Scripting “ daugiau dėmesio skirsime teorijai, o ne praktikai. tai yra, mes neįdiegsime ir netyrsime kodo ar neįdiegsime konkrečios programinės įrangos (paketo), bet gilinsimės į tai, kas yra "Shell scenarijus tinkamai kalbant, pateikiant atsakymus į mažus, bet tiesioginius klausimus, kurie pateikiami žemiau, iki šiol paaiškinti daugelį dalykų, kurie buvo išmokyti, o tai tiesiogiai nesusiję su užprogramuotu vidaus kodu:

"Shell scenarijus

Kas yra „GNU / Linux“ operacinės sistemos „Shell“?

Korpusas, kuris ispanų kalba reiškia CONCHA (apvalkalas, dangtelis, apsauga). Šis terminas operacinėse sistemose reiškia operacinės sistemos komandų vertėją. Apskritai tai yra didelio našumo teksto sąsaja, pasireiškianti terminalo (konsolės) pavidalu ir iš esmės naudojama 3 svarbioms darbo sritims:

1.- Tvarkykite OS,
2. Paleiskite programas ir sąveikaukite su jomis ir
3.- Tarnauja kaip pagrindinė programavimo aplinka.

Daugelis taip, GNU / Linux jie vis dar efektyviau valdomi redaguojant konfigūracijos failus per terminalą. Paprastai tai yra paskirties kelyje: «/ etc "ir konkrečiuose kiekvienos programos kataloguose. Pavyzdžiui, programa lilo (kuris reiškia „Linux Loader“) sukonfigūruojamas redaguojant tekstinį failą, kuris yra ir vadinamas "/Etc/lilo/lilo.conf". Programų (programų) atveju jos paleidžiamos (vykdomos / aktyvuojamos) parašius vykdomosios programos pavadinimą, jei jis randamas visų vykdomųjų failų kelyje (numatytasis kelias), kaip paprastai yra „/ Usr / bin“ arba įvesdami vykdomojo failo pavadinimą, prieš kurį rašoma: ./, iš katalogo, kuriame jie yra.

Visa tai gerai žino bet kuris „Shell“ vartotojas. Tačiau ne taip gerai žinomos ir vertinamos jo galimybės, kaip programavimo aplinka. „Shell“ scenarijų (programų) nereikia kaupti. Korpusas juos aiškina eilėmis. Todėl jie yra žinomi arba vadinami „Shells“ scenarijais ir gali svyruoti nuo paprastų komandų iki sudėtingų instrukcijų serijų pačiai OS paleidimui. turėti gana švarią (akivaizdžią) sintaksę (konstravimas, užsakymas), todėl jie yra geras atspirties taškas norint pradėti kurti programavimo pasaulį.

Kas yra „Shell Scripting“?

Tai yra scenarijaus (užduočių automatizavimo failas) projektavimo ir kūrimo technika (įgūdis / vikrumas), naudojant operacinės sistemos „Shell“ (pageidautina) arba teksto redaktorių (grafinį ar terminalą). Tai yra programavimo kalbos tipas, kuris paprastai aiškinamas. Tai yra, nors dauguma programų yra kompiliuojamos (koduojamos), nes jos yra visam laikui konvertuojamos į konkretų (specialų) kodą, kol jas galima vykdyti (kompiliavimo procesas), apvalkalo scenarijus išlieka originalus (jo kodo teksto šaltinis) ir yra kiekvieną kartą, kai jie vykdomi, aiškinama komanda komanda. Nors gali būti, kad scenarijus taip pat galima sudaryti, nors tai nėra įprasta.

Kokios yra programų, pagrįstų programavimu pagal „Shell Scripting“, ypatybės?

1.- Juos lengviau rašyti (programuoti), tačiau juos vykdant yra didesnės apdorojimo išlaidos.

2.- Jie naudoja vertėjus, o ne kompiliatorius

3.- Jie palaiko ryšį su komponentais, parašytais kitomis programavimo kalbomis.

4.- Failai, kuriuose yra jų, saugomi kaip paprastas tekstas.

5.- Galutinis dizainas (kodas) paprastai yra mažesnis nei atitiktų sukompiliuotą programavimo kalbą.

Kokie yra „Shell Scripting“ kalbų tipai?

1.- Užduoties ir apvalkalo valdymo kalba:

a) cmd.exe („Windows NT“, „Windows CE“, OS / 2),
b) „COMMAND.COM“ (DOS, „Windows 9x“),
c) csh, Bash, AppleScript, sh,
d) „JScript“ per „Windows Script Host“,
e) „VBScript“ per „Windows Script Host“,
f) REXX, be daugelio kitų.

2. - GUI scenarijai (makrokomandų kalbos):

a) „AutoHotkey“,
b) „AutoIt“,
c) Tikėtis,
d) Automator, be kitų.

3. - Konkrečių programų scenarijų kalba:

a) „ActionScript“ „Flash“,
b) MATLAB,
c) mIRC scenarijus,
d) QuakeC, be kitų.

4. - Žiniatinklio programavimas (dinaminiams puslapiams):

a) Serverio pusėje:

- PHP,
- ASP („Active Server Pages“),
- „JavaServer Pages“,
- „ColdFusion“,
- IPTSCRAE,
- Lasso,
- MIVA scenarijus,
- SMX,
- XSLT, be kita ko.

b) Kliento pusėje:

- „JavaScript“,
- „JScript“,
- VBScript,
- Tcl, be kitų.

5. - teksto apdorojimo kalbos:

- AWK,
- Perlas,
- Troškulys,
- XSLT,
- Bashas, ​​be kitų.

6. - bendrosios paskirties dinaminės kalbos:

- APL,
- Boo,
- Dylanas,
- Feritas,
- Groovy,
- IO,
- Lisp,
- Lua,
- MUMPS (M),
- NewLISP,
- Nuva,
- Perlas,
- PHP,
- „Python“,
- Rubinas,
- schema,
- „Smalltalk“,
- „SuperCard“,
- Tcl,
- Revoliucija, be kitų.

Kas yra „Bash“ GNU / „Linux“?

Tai kompiuterinė programa, kurios funkcija yra interpretuoti užsakymus. Jis pagrįstas Unix apvalkalas ir palaiko POSIX. Jis buvo parašytas GNU projektui ir yra numatytasis daugelio „Linux“ paskirstymų apvalkalas.

Kas yra „Shell“ scenarijus GNU / Linux sistemoje?

„Korpuso scenarijai“ jie nepaprastai naudingi. Gera mintis parašyti tuos mūsų turimus poreikius ir tada redaguoti scenarijus, kurie šį darbą atlieka mums. Dabar atėjo laikas paklausti, kas tiksliai yra scenarijus. Tai yra tekstinis failas, kuriame yra daugybė apvalkalo komandų, kurias sistema vykdo tvarkingai, iš viršaus į apačią. Norint juos redaguoti, jums reikia tik teksto redaktoriaus, pvz., „Emacs“, „Vi“, „Nano“, tarp daugelio esamų. Jie išsaugomi su plėtiniu „.sh“ (arba kai kuriais atvejais be jo) ir paleidžiami iš „Shell“ naudojant komandą: sh scenarijaus pavadinimas.sh. Scenarijai elgiasi taip pat, kaip ir „shell“ komandos.

Mokymo metodas, kurį aš asmeniškai naudoju „Sužinok„ Shell Scripting “ Tai labai praktiška ir tiesioginė, tai yra ištirti pilnai veikiantį scenarijų, jį suskaidyti, tirti sakinį po sakinio, eilutę po eilutės, komandą pagal komandą, kintamąjį kintamąjį, kol suprasite, kaip kiekvienas elementas veikia atskirai ir kaip jis veikia bendrame kode. Tai savotiška Atvirkštinė inžinerija ar programinės įrangos projektavimas. Visa tai tam, kad žinios būtų pritaikytos, patobulintos (optimizuotos) ir jomis dalijamasi, siekiant kolektyvinės naudos ir geresnio nemokamų operacinių sistemų administravimo ir optimizavimo.

Kaip jis veikia ir veikia GNU / Linux „Shell“?

Pirmasis žingsnis dirbant su „Shell“ yra paleisti apvalkalą. Atrodo, kad tikrovė yra priežastis. Kai kuriuose labai galutiniams vartotojams pritaikytuose GNU / Linux paskirstymuose apvalkalas yra gana paslėptas. Paprastai tai vadinama: „Konsole“, „Terminal“, „X“ terminalas ar kažkas panašaus. Kita galimybė yra naudoti virtualią konsolę. Naudojant: Ctrl + Alt + f1, arba f2, arba nuo f3 iki f7 arba f8, atsižvelgiant į naudojamą GNU / Linux paskirstymą. GNU / Linux sistemoje dažniausiai naudojamas „Shell“ yra „Bash“, nors yra ir kitų, tokių kaip „ksh“ arba „C Shell“. Mano atveju, ypač savo leidiniams, aš naudoju „Bash Shell“.

Atsižvelgiant į scenarijų, padarytą „Bash Shell“ labas_pasaulis.sh galima paaiškinti:

Turinys:

#! / bin / bash
aidas labas pasaulis

Palaužti:

Pirmoji scenarijaus eilutė
#! / bin / bash

Nurodo programą, kurią turėtų vykdyti scenarijus. Jei programos nepavyksta rasti, įvyksta klaida.

Antroji scenarijaus eilutė
aidas labas pasaulis

Vykdykite komandą echo su „Hello World“ argumentais, todėl jie bus rodomi ekrane.

Vykdymas: Scenarijų galime paleisti dviem būdais

Vertėjo iškvietimas paleisti scenarijų:
# bash labas_pasaulis.sh

Jis taip pat gali būti vykdomas kaip:
# sh labas_pasaulis.sh

Bet kadangi jūsų teisingas „Shell“ nėra naudojamas, jis gali veikti pusiau. Idealiu atveju, kai „Shell“ iškviečiamas pirmoje eilutėje, jis naudojamas.

Taip pat galite tiesiogiai paleisti scenarijų taip:
# ./hello_world.sh

dėmesį: ./ rodo paleidimą iš dabartinio katalogo.

Lieka analizuoti likęs kodas, kurį į jį įterpiate. Tikiuosi, kad kaip visada jums patinka (kai kurie labiau nei kiti, atsižvelgiant į mokymosi ir žinių poreikius) ši serija "Shell scenarijus.

Žiniatinklyje yra daug gerų nuorodų šia tema, bet aš palieku jums šį mažą vadovą čia DesdeLinux. Grynasis Ir šis kitas Išorinis vadovas.

Iki kito įrašo!


Palikite komentarą

Jūsų elektroninio pašto adresas nebus skelbiamas. Privalomi laukai yra pažymėti *

*

*

  1. Atsakingas už duomenis: Miguel Ángel Gatón
  2. Duomenų paskirtis: kontroliuoti šlamštą, komentarų valdymą.
  3. Įteisinimas: jūsų sutikimas
  4. Duomenų perdavimas: Duomenys nebus perduoti trečiosioms šalims, išskyrus teisinius įsipareigojimus.
  5. Duomenų saugojimas: „Occentus Networks“ (ES) talpinama duomenų bazė
  6. Teisės: bet kuriuo metu galite apriboti, atkurti ir ištrinti savo informaciją.

  1.   d4ny sakė

    Lilo .. Linux Loader .. visa kita labai gera informacija .. aciu .. salu2 d4ny.-

  2.   Ing. Jose Albertas sakė

    Sveikinimai visiems, kurie netrukus lankys internetinius kursus „Sužinok„ Shell Scripting ““, mes tęsime kitus pagrindinius scenarijus, kad ir toliau pasisavintume žinias ir toliau jas bendrume.

    Tikiuosi, kad jūs neatsiliksite, nes netrukus pradėsiu nuo pažangesnių kodų, bet atvaizduosiu taip, kad tai būtų vizualiai suprantama, nepaisant jo sudėtingumo.

    Atminkite, kad naudodami „Shell Scripting“ galite atlikti daug sudėtingų dalykų, kurie yra įvairiose platformose (skirtingi distros), naudojant labai mažus failus. Paliksiu jums šią mažą ekrano kopiją, kurios netrukus išmokysiu tiems, kurie toliau stebi kursą, ir tai, turėdamas tik 50 KB, žada daug! Ir tai tik pusė to, ką galima padaryti naudojant „Shell Scripting“.

    „LPI-SB8“ bandomasis ekrano perdavimas („LINUX POST INSTALL“ - „SCRIPT BICENTENARIO 8.0.0“)
    („lpi_sb8_adecuación-audiovisual_2016.sh / 43Kb)

    Žr. „Screencast“: https://www.youtube.com/watch?v=cWpVQcbgCyY

    1.    Alberto cardona sakė

      Sveiki, jūsų indėlis neįtikėtinas, tikrai labai ačiū !!
      Aš šiek tiek abejoju, ar galiu programuoti kompiliatorių su bash?
      Ar bent leksinis analizatorius?
      turi tą galią?

  3.   Ing. Jose Albertas sakė

    Sveikinimai visiems, kurie netrukus lankys internetinius kursus „Sužinok„ Shell Scripting ““, mes tęsime kitus pagrindinius scenarijus, kad ir toliau pasisavintume žinias ir toliau jas bendruotume visiems. Tikiuosi, kad jūs neatsiliksite, nes netrukus pradėsiu nuo pažangesnių kodų, bet atvaizduosiu taip, kad tai būtų vizualiai suprantama, nepaisant jo sudėtingumo.

    Atminkite, kad naudodami „Shell Scripting“ galite atlikti daug sudėtingų dalykų, kurie yra įvairiose platformose (skirtingi distros), naudojant labai mažus failus. Paliksiu jums šią mažą ekrano kopiją, kurios netrukus išmokysiu tiems, kurie toliau stebi kursą, ir tai, turėdamas tik 50 KB, žada daug! Ir tai tik pusė to, ką galima padaryti naudojant „Shell Scripting“.

    „LPI-SB8“ bandomasis ekrano perdavimas („LINUX POST INSTALL“ - „SCRIPT BICENTENARIO 8.0.0“)
    („lpi_sb8_adecuación-audiovisual_2016.sh / 43Kb)

    Žr. „Screencast“: https://www.youtube.com/watch?v=cWpVQcbgCyY

  4.   Alberto sakė

    Labas Jose,
    Pirmiausia dėkoju už pasidalinimą savo žiniomis. Jūsų straipsniai yra labai įdomūs.

    Du dalykai, manau, labai svarbu naudoti dvigubas kabutes „Hello World“ ir turėti švarų scenarijaus išvestį su išėjimu 0

  5.   Ing. Jose Albertas sakė

    Dėkojame už jūsų indėlį, kitame scenarijuje pamatysite, kaip naudojami „exit 0“, „break“ ir kiti!

  6.   Vilarmandas sakė

    Sveikinimai.
    Labai įdomu, jūs atrodote paprasta; Dabar radau, kad negaliu programuoti „Linux“ sistemoje su „cron“ arba „at“, išjungdamas / sustabdydamas / užmigdydamas, automatiškai pradėdamas naudoti „rtc wake“ komandą, aš nežinau, ar scenarijus su ta komanda padės sektų cron ir t nieko nedarant, arba to tiesiog negalima padaryti, arba tai daroma kitaip, arba aš esu labai ambicingas, bet sistemoje „Windows“ tai padaryti yra gana paprasta. Noriu pereiti į „Linux“, bet man svarbu suplanuoti išjungimą / sustabdymą / užmigdymą ir asmeninį kompiuterio paleidimą. Pagarbiai.

  7.   Ing. Jose Albertas sakė
  8.   Vilarmandas sakė

    Ačiū, aš juos atidžiai perskaitysiu, kažkas man padės. Pagarbiai.

  9.   Eduardo Kuomo sakė

    Prieš kurį laiką aš pradėjau projektą, kuris, manau, yra unikalus. Tai „Framewok Bash“ prototipas. Tam sistemoje reikia tik „Bash“.
    Jei kam nors kitam įdomu, jis kviečiamas tai išbandyti ir bendradarbiauti!

    https://github.com/reduardo7/bashx

    Sveiki atvykę!

    1.    driežas sakė

      Gerbiamas Eduardai, manau, kad tai puikus projektas, galbūt galėtumėte juo pasidalinti su visa bendruomene desdelinux, atminkite, kad galite publikuoti straipsnį apie savo projektą mūsų svetainėje, jei nežinote kaip tai padaryti rekomenduoju paskaityti https://blog.desdelinux.net/guia-redactores-editores/ kur yra geriausia straipsnių kūrimo praktika desdelinux ir atliktiną procedūrą. Galbūt bendruomenei būtų gana gerai iš pradžių sužinoti apie savo projekto naudą ir, antra, išmokti daryti tokius dalykus. Kviečiame jus ir kitus dalytis savo projektais su mumis ir didele mus supančia bendruomene.

  10.   Migelis Urosa Ruizas sakė

    Sveika diena.
    „Linux“ mašinų administravimo pasaulyje aš esu naujas ir norėjau sužinoti, ką jūs jam rekomenduojate: ksh, bash, perl, php, python….
    Labai ačiū ir sveikinimai.
    Migelis.