Shell, Bash și Scripturi: totul despre Shell Scripting.

În această nouă oportunitate (intrarea nr. 8) pe „Aflați scripturi Shell” ne vom concentra mai mult pe teorie decât pe practică. adică nu vom instala sau studia un cod sau nu vom instala un anumit software (pachet), ci mai degrabă vom aprofunda în ceea ce este lumea shell a Scripting vorbind corect, prin răspunsurile la întrebări mici, dar directe, care sunt prezentate mai jos, pentru a clarifica până acum o mare parte din ceea ce a fost predat, care nu se referă direct la codul intern programat:

shell a Scripting

Ce este Shell-ul într-un sistem de operare GNU / Linux?

Shell care în spaniolă înseamnă CONCHA (coajă, capac, protecție). Aplicat acest termen în Sisteme de operare se referă la interpretul de comandă al sistemului de operare. În general, este o interfață text de înaltă performanță, manifestată sub forma unui terminal (consolă) și care servește în esență 3 domenii importante de lucru:

1.- Gestionați sistemul de operare,
2.- Rulați aplicații și interacționați cu ele și
3.- Servește ca mediu de programare de bază.

Multe AS, GNU / Linux acestea sunt încă mai eficient gestionate prin editarea fișierelor de configurare, prin Terminal. Ca regulă generală, acestea se află pe calea destinației: «/ etc ", și în cadrul directoarelor specifice pentru fiecare aplicație. De exemplu, programul lilo (care înseamnă Linux Loader) este configurat prin editarea fișierului text localizat și numit ca „/Etc/lilo/lilo.conf”. În cazul programelor (aplicațiilor), acestea sunt lansate (executate / activate) scriind numele executabilului, dacă acesta se găsește în calea (calea implicită) pentru toate executabilele, așa cum este în mod normal „/ Usr / bin” sau prin introducerea numelui executabilului precedat de: ./, din directorul unde sunt localizate.

Toate acestea sunt bine cunoscute oricărui utilizator Shell. Cu toate acestea, nu sunt atât de cunoscute și apreciate capacitățile sale ca mediu de programare. Scripturile (programele) realizate în Shell nu trebuie să fie compilate. Shell le interpretează rând cu rând. Prin urmare, acestea sunt cunoscute sau denumite ca Shells Scripts și pot varia de la comenzi simple până la serii complexe de instrucțiuni pentru pornirea propriu-zis a sistemului de operare. au o sintaxă destul de curată (evidentă) (construcție, ordonare), făcându-i un bun punct de plecare pentru a începe în lumea programării.

Ce este Shell Scripting?

Este tehnica (abilitate / dexteritate) de proiectare și creare de scripturi (fișier de automatizare a sarcinilor) folosind un Shell (de preferință) al unui sistem de operare sau un editor de text (grafic sau terminal). Acesta este un tip de limbaj de programare care este în general interpretat. Adică, în timp ce majoritatea programelor sunt compilate (codificate), deoarece sunt convertite permanent într-un cod specific (special) înainte de a putea fi executate (proces de compilare), un script shell rămâne în forma sa originală (codul său sursa textului) și sunt interpretate comandă cu comandă de fiecare dată când sunt executate. Deși este posibil ca și scripturile să poată fi compilate, deși nu este obișnuit.

Care sunt caracteristicile programelor bazate pe programarea în Shell Scripting?

1.- Sunt mai ușor de scris (program), dar cu un cost de procesare mai mare atunci când sunt executate.

2.- Folosesc interpreți în loc de compilatoare pentru a rula

3.- Au o relație de comunicare cu componente scrise în alte limbaje de programare.

4.- Fișierele care le conțin sunt stocate ca text simplu.

5.- Designul final (codul) este de obicei mai mic decât ceea ce ar fi echivalentul într-un limbaj de programare compilat.

Care sunt cele mai populare tipuri de limbi în Shell Scripting?

1.- Limbajul de control al sarcinilor și shell-ului:

a) cmd.exe (Windows NT, Windows CE, OS / 2),
b) COMMAND.COM (DOS, Windows 9x),
c) csh, Bash, AppleScript, sh,
d) JScript prin Windows Script Host,
e) VBScript prin Windows Script Host,
f) REXX, printre multe altele.

2.- Scriptarea GUI (limbi Macros):

a) Tasta rapidă automată,
b) Autoit,
c) Așteptați,
d) Automator, printre altele.

3.- Limbaj de script pentru aplicații specifice:

a) ActionScript în Flash,
b) MATLAB,
c) script mIRC,
d) QuakeC, printre altele.

4.- Programare web (pentru pagini dinamice):

a) Pe partea de server:

- PHP,
- ASP (Active Server Pages),
- Pagini JavaServer,
- Fuziune la rece,
- IPTSCRAE,
- Lasou,
- Script MIVA,
- SMX,
- XSLT, printre altele.

b) Din partea clientului:

- JavaScript,
- JScript,
- VBScript,
- Tcl, printre altele.

5.- Limbi de procesare a textului:

- AWK,
- Perl,
- Sete,
- XSLT,
- Bash, printre altele.

6.- Limbaje dinamice cu scop general:

- APL,
- Boo,
- Dylan,
- Ferit,
- Groovy,
- IO,
- Lisp,
- Lua,
- MUMPS (M),
- NewLISP,
- Nuva,
- Perl,
- PHP,
- Python,
- Ruby,
- Schema,
- Convorbire scurtă,
- SuperCard,
- Tcl,
- Revoluția, printre altele.

Ce este Bash în GNU / Linux?

Este un program de calculator a cărui funcție este interpretarea comenzilor. Se bazează pe Unix shell și sprijină POSIX. A fost scris pentru proiectul GNU și este shell-ul implicit pentru majoritatea distribuțiilor Linux.

Ce este un script Shell în GNU / Linux?

Scripturile Shell sunt extrem de utile. Este o idee bună să scriem acele nevoi pe care le avem și apoi să edităm scripturi care fac acest lucru pentru noi. Până acum, este timpul să ne întrebăm ce este exact un script. Este un fișier text, care conține o serie de comenzi shell, pe care sistemul le execută în mod ordonat, de sus în jos. Pentru a le edita, aveți nevoie doar de un editor de text, cum ar fi Emacs, Vi, Nano, printre mulți dintre cei existenți. Acestea sunt salvate cu extensia „.sh” (sau fără ea, în unele cazuri) și sunt rulate din Shell folosind comanda: sh script name.sh. Scripturile se comportă la fel ca comenzile shell.

Abordarea didactică cu care eu obișnuiesc personal „Aflați scripturi Shell” Este foarte practic și direct, adică să examinezi un Script complet funcțional, să-l descompui, să-l studiezi propoziție cu propoziție, linie cu linie, comandă cu comandă, variabilă cu variabilă, până când înțelegi cum funcționează fiecare element separat și cum se implică în cod general. Este un fel de Inginerie inversă sau reinginerie software. Toate acestea cu scopul de a ne însuși cunoștințele, de a le îmbunătăți (de a le optimiza) și de a le împărtăși, în beneficiul colectiv și pentru o mai bună administrare și optimizare a sistemelor de operare gratuite.

Cum funcționează și funcționează într-un Shell GNU / Linux?

Primul pas în lucrul cu un Shell este să rulați un shell. Ceea ce pare a fi un truism are motivul său de a fi. În unele distribuții GNU / Linux orientate către utilizatorul final, shell-ul este destul de ascuns. De obicei, se numește: Konsole, Terminal, X Terminal sau ceva similar. O altă opțiune este utilizarea unei console virtuale. Folosind: Ctrl + Alt + f1, sau f2, sau f3 la f7 sau f8, în funcție de distribuția GNU / Linux pe care o utilizați. Cel mai folosit Shell în GNU / Linux este Bash, deși există altele, cum ar fi ksh sau C Shell. În cazul meu, foarte special pentru publicațiile mele, folosesc Bash Shell.

Având un script realizat în Bash Shell numit hello_world.sh pot fi explicate următoarele:

Conținut:

#! / Bin / bash
ecou salut lume

Pană:

Prima linie a scenariului
#! / Bin / bash

Indică programul pe care ar trebui să îl ruleze scriptul. Dacă programul nu poate fi găsit, va apărea o eroare.

Al doilea rând al scenariului
ecou salut lume

Executați comanda echo cu argumentele Hello World, determinând afișarea lor pe ecran.

Execuţie: Putem rula scriptul în două moduri

Invocarea interpretului pentru a rula scriptul:
# bash hello_world.sh

Poate fi rulat și ca:
# sh hello_world.sh

Dar, deoarece Shell-ul corect nu este invocat, poate funcționa la jumătate. În mod ideal, Shell-ul invocat în prima linie este cel folosit pentru executarea acestuia.

De asemenea, puteți rula scriptul direct după cum urmează:
# ./hello_world.sh

Nota: ./ indică rularea din directorul curent.

Restul care rămâne de analizat este codul pe care îl introduceți în el. Sper că, ca întotdeauna, vă place (unii mai mult decât alții, în funcție de nevoile de învățare și cunoștințe) această serie de shell a Scripting.

Există multe linkuri bune pe acest subiect pe web, dar vă las acest mic ghid aflat chiar aici la DesdeLinux. Net Și celălalt Ghid extern.

Până la următoarea postare!


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.

  1.   D4NY. el a spus

    Lilo .. Linux Loader .. restul informații foarte bune .. mulțumesc .. salu2 d4ny.-

  2.   Jose Albert el a spus

    Salutări tuturor celor care urmează cursul online de „Învățați scripturile Shell” în curând, vom continua cu alte scripturi de bază pentru a continua să ne însușim cunoștințele și să le socializăm în continuare tuturor.

    Sper că veți fi la curent pentru că în curând voi începe cu coduri mai avansate, dar expuse într-un mod care se înțelege vizual în ciuda complexității sale.

    Amintiți-vă că, cu Shell Scripting, puteți face multe lucruri complexe, care sunt pe mai multe platforme (Distrosuri diferite) folosind fișiere foarte mici. Vă voi lăsa acest mic screencast de ceva pe care îl voi învăța în curând, celor care continuă să urmărească cursul și care, cu doar 50Kb, promite multe! Și este doar jumătate din ceea ce se poate face cu Shell Scripting.

    Test ScreenCast LPI-SB8 (LINUX POST INSTALL - SCRIPT BICENTENARIO 8.0.0)
    (lpi_sb8_adaptation-audiovisual_2016.sh / 43Kb)

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

    1.    Alberto cardona el a spus

      Bună ziua, contribuția ta este incredibilă, îți mulțumesc foarte mult !!
      Am o mică îndoială, pot programa un compilator cu bash?
      Sau cel puțin un analizator lexical?
      are acea putere?

  3.   Jose Albert el a spus

    Salutări tuturor celor care urmează cursul online de „Învățați scripturile Shell” în curând, vom continua cu alte scripturi de bază pentru a continua să ne însușim cunoștințele și să le socializăm în continuare tuturor. Sper să rămâneți la curent pentru că în curând voi începe cu coduri mai avansate, dar expuse într-un mod care se înțelege vizual în ciuda complexității sale.

    Amintiți-vă că, cu Shell Scripting, puteți face multe lucruri complexe, care sunt pe mai multe platforme (Distrosuri diferite) folosind fișiere foarte mici. Vă voi lăsa acest mic screencast de ceva pe care îl voi învăța în curând, celor care continuă să urmărească cursul și care, cu doar 50Kb, promite multe! Și este doar jumătate din ceea ce se poate face cu Shell Scripting.

    Test ScreenCast LPI-SB8 (LINUX POST INSTALL - SCRIPT BICENTENARIO 8.0.0)
    (lpi_sb8_adaptation-audiovisual_2016.sh / 43Kb)

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

  4.   Alberto el a spus

    Buna Jose,
    Mai întâi vă mulțumesc că ne-ați împărtășit cunoștințele. Articolele tale sunt foarte interesante.

    Două lucruri, cred că este foarte important să folosiți ghilimelele duble „Hello World” și să aveți o ieșire curată a scriptului nostru cu ieșirea 0

  5.   Jose Albert el a spus

    Vă mulțumim pentru contribuții, în următorul Script veți vedea utilizarea exit 0, break și altele!

  6.   Willarmand. el a spus

    Salutări.
    Foarte interesant, îl faci să arate simplu; Acum, am constatat că nu pot programa în Linux cu cron sau la, shutdown / suspend / hibernate, cu pornirea automată consecventă folosind comanda rtc wake, nu știu dacă un script cu acea comandă ar ajuta, sau ar urma cron și fără să fac nimic, sau pur și simplu nu se poate face, sau se face diferit, sau sunt foarte ambițios, dar pe Windows este relativ simplu să o fac. Vreau să mă mut la Linux, dar pentru mine este important să programez închiderea / suspendarea / hibernarea și ca computerul să înceapă de la sine. Salutari.

  7.   Jose Albert el a spus

    Poate că acest lucru vă va oferi câteva idei inovatoare: http://cirelramos.blogspot.com/2016/01/reiniciar-apagar-o-ejecutar-otra-tarea.html

  8.   Willarmand. el a spus

    Mulțumesc, le voi citi cu atenție, ceva mă va ajuta. Salutari.

  9.   Edward Cuomo el a spus

    Cu ceva timp în urmă am început un proiect, care cred că este unic. Este un prototip pentru un Framewok Bash. Este nevoie doar de Bash pe sistem.
    Dacă altcineva este interesat, este invitat să-l încerce și să colaboreze!

    https://github.com/reduardo7/bashx

    Salutări!

    1.    şopârlă el a spus

      Dragă Eduardo, cred că este un proiect grozav, poate l-ai putea împărtăși întregii comunități desdelinux, aminteste-ti ca poti publica un articol despre proiectul tau pe site-ul nostru, daca nu stii cum sa o faci iti recomand sa citesti https://blog.desdelinux.net/guia-redactores-editores/ unde sunt cele mai bune practici pentru crearea articolelor în desdelinux și procedura care trebuie efectuată. Posibil pentru comunitate este destul de bine să știi mai întâi despre beneficiile proiectului tău și în al doilea rând să înveți cum să faci acest tip de lucruri. Vă invităm și îi invităm pe alții să ne împărtășească proiectele cu noi și cu comunitatea mare care ne înconjoară.

  10.   Miguel Urosa Ruiz imagine de substituent el a spus

    Bună ziua, bună dimineața.
    Sunt nou în lumea administrării mașinilor Linux și am vrut să știu ce ne recomandați pentru aceasta: ksh, bash, perl, php, python ...
    Vă mulțumesc foarte mult și cele mai bune ceea ce privește.
    Miguel.