Shell, Bash i skripte: Sve o Shell skriptiranju.

U ovoj novoj prilici (Unos br. 8) na "Nauči skriptiranje školjki" više ćemo se usredotočiti na teoriju nego na praksu. to jest, nećemo instalirati ili proučavati kôd niti instalirati određeni softver (paket), već ćemo istražiti ono što je svijet Shell skriptiranje ispravno govoreći, kroz odgovore na mala, ali izravna pitanja, koja su prikazana u nastavku, razjasniti do sada ono što je naučeno, a koje se ne odnosi izravno na interni kôd koji je programiran:

Shell skriptiranje

Što je ljuska u GNU / Linux operativnom sustavu?

Školjka što na španjolskom znači CONCHA (ljuska, poklopac, zaštita). Primijenjen ovaj izraz u operativnim sustavima odnosi se na interpretator naredbi operativnog sustava. Općenito, riječ je o tekstualnom sučelju visokih performansi, koje se očituje u obliku terminala (konzole) i u osnovi koristi za 3 važna radna područja:

1. - Upravljanje OS-om,
2. - Pokretanje aplikacija i interakcija s njima, i
3. - Služiti kao osnovno programsko okruženje.

Mnogi PA, GNU / Linux njima se još učinkovitije upravlja uređivanjem njihovih konfiguracijskih datoteka putem terminala. U pravilu su to na odredišnoj putanji: «/ itd "i unutar određenih direktorija za svaku aplikaciju. Na primjer, program Lilo (što znači Linux Loader) konfigurira se uređivanjem tekstualne datoteke koja se nalazi i naziva kao "/Etc/lilo/lilo.conf". U slučaju programa (aplikacija), oni se pokreću (izvršavaju / aktiviraju) pisanjem imena izvršne datoteke, ako je pronađena u stazi (zadana putanja) za sve izvršne datoteke, kao što je to uobičajeno "/ Usr / bin" , ili upisivanjem imena izvršne datoteke kojoj prethodi: ./, iz direktorija u kojem se nalaze.

Sve je to dobro poznato bilo kojem korisniku Shell-a. Međutim, nisu toliko poznate i cijenjene njegove mogućnosti kao programskog okruženja. Skripte (programe) izrađene u Shell-u ne treba sastavljati. Shell ih tumači redak po redak. Stoga su one poznate ili su nazvane Shells Scripts i mogu se kretati od jednostavnih naredbi do složenih niza uputa za pokretanje samog OS-a. Općenito, imaju prilično čistu sintaksu (konstrukcija, poredak) (očito), što im je dobra polazna osnova za započinjanje u svijetu programiranja.

Što je Shell Scripting?

To je tehnika (vještina / spretnost) dizajniranja i stvaranja skripte (datoteka za automatizaciju zadataka) pomoću ljuske (po mogućnosti) operativnog sustava ili uređivača teksta (grafički ili terminal). Ovo je vrsta programskog jezika koja se općenito tumači. To jest, dok se većina programa kompilira (kodira), jer se trajno pretvaraju u određeni (posebni) kôd prije nego što se mogu izvršiti (postupak kompilacije), skripta ljuske ostaje u izvornom obliku (izvor teksta koda) i interpretirana naredba po naredba svaki put kad se izvrše. Iako je moguće da se i skripte mogu kompajlirati, iako to nije uobičajeno.

Koje su karakteristike programa temeljenih na programiranju pod Shell Scriptingom?

1. - Lakše ih je napisati (programirati), ali s višim troškovima obrade kada se izvrše.

2. - Za pokretanje koriste prevoditelje umjesto kompajlera

3. - Oni imaju komunikacijski odnos s komponentama napisanim na drugim programskim jezicima.

4. - Datoteke koje ih sadrže pohranjuju se kao običan tekst.

5. - Konačni dizajn (kod) obično je manji od onoga što bi bio ekvivalent u kompajliranom programskom jeziku.

Koje su najpopularnije vrste jezika u Shell Scriptingu?

1.- Jezik za kontrolu zadataka i ljuske:

a) cmd.exe (Windows NT, Windows CE, OS / 2),
b) COMMAND.COM (DOS, Windows 9x),
c) csh, Bash, AppleScript, sh,
d) JScript putem hosta Windows Script,
e) VBScript putem hosta Windows Script,
f) REXX, između ostalih.

2.- GUI skriptiranje (jezici makronaredbi):

a) Automatski ključ,
b) Automatski unos,
c) Očekujte,
d) Automator, između ostalih.

3.- skriptni jezik određenih aplikacija:

a) ActionScript u Flashu,
b) MATLAB,
c) mIRC skripta,
d) QuakeC, između ostalih.

4.- Web programiranje (za dinamičke stranice):

a) Na strani poslužitelja:

- PHP,
- ASP (aktivne stranice poslužitelja),
- JavaServer stranice,
- Hladna fuzija,
- IPTSCRAE,
- Lasso,
- MIVA skripta,
- SMX,
- XSLT, između ostalih.

b) Na strani klijenta:

- JavaScript,
- JScript,
- VBScript,
- Tcl, između ostalih.

5. - Jezici za obradu teksta:

- AWK,
- Perl,
- žeđ,
- XSLT,
- Bash, između ostalih.

6.- Dinamički jezici opće namjene:

- APL,
- Boo,
- Dylan,
- Ferit,
- Groovy,
- IO,
- Lisp,
- Lua,
- ZAUGLA (M),
- NewLISP,
- Nuva,
- Perl,
- PHP,
- Python,
- Ruby,
- Shema,
- Čavrljanje,
- SuperCard,
- Tcl,
- Revolucija, između ostalih.

Što je Bash u GNU / Linuxu?

To je računalni program čija je funkcija tumačenje naloga. Temelji se na Unix ljuska i podržava POSIX. Napisan je za GNU projekt i zadana je ljuska za većinu Linux distribucija.

Što je Shell skripta u GNU / Linuxu?

Skripte školjke izuzetno su korisni. Dobra je ideja napisati one potrebe koje imamo, a zatim urediti skripte koje ovo rade za nas. Do sada je vrijeme da pitate što je točno skripta. To je tekstualna datoteka koja sadrži niz naredbi ljuske, koje sustav izvršava uredno, od vrha do dna. Da biste ih uredili, potreban vam je samo uređivač teksta, poput Emacs, Vi, Nano, među mnogim postojećim. Spremaju se s nastavkom ".sh" (ili bez njega, u nekim slučajevima) i pokreću se iz ljuske pomoću naredbe: sh skripta name.sh. Skripte se ponašaju na isti način kao i naredbe ljuske.

Pristup podučavanju koji osobno koristim "Nauči skriptiranje školjki" Vrlo je praktično i izravno, odnosno ispitati potpuno funkcionalnu skriptu, razložiti je, proučiti rečenicu po rečenicu, redak po redak, naredbu po naredbu, varijablu po varijablu, sve dok ne shvatite kako svaki element djeluje zasebno i kako se uključuje u kodu općenito. To je nekako Obrnuto inženjerstvo ili softverski reinženjering. Sve to kako bi se znanje prilagodilo, poboljšalo (optimiziralo) i podijelilo u zajedničku korist i bolju administraciju i optimizaciju besplatnih operativnih sustava.

Kako se pokreće i radi u GNU / Linux Shell-u?

Prvi korak u radu sa školjkom je pokretanje ljuske. Ono što se čini kao truizam ima svoj razlog postojanja. U nekim GNU / Linux distribucijama vrlo orijentiranim na krajnjeg korisnika, ljuska je prilično skrivena. Tipično se zove: Konsole, Terminal, X Terminal ili nešto slično. Druga mogućnost je uporaba virtualne konzole. Korištenje: Ctrl + Alt + f1, ili f2, ili f3 do f7 ili f8, ovisno o GNU / Linux distribuciji koju koristite. Najčešće korištena ljuska u GNU / Linuxu je Bash, iako postoje i druge, poput ksh ili C Shell. U mom slučaju, posebno za svoje publikacije, koristim Bash Shell.

S obzirom na skriptu izrađenu u Bash Shell-u hello_world.sh može se objasniti sljedeće:

Sadržaj:

#! / bin / bash
jeka zdravo svijete

Analiza:

Prvi redak scenarija
#! / bin / bash

Označava program koji bi skripta trebala pokrenuti. Ako programa nije moguće pronaći, dogodit će se pogreška.

Drugi redak scenarija
jeka zdravo svijete

Izvršite naredbu echo s argumentima Hello World, uzrokujući njihovo prikazivanje na zaslonu.

Izvršenje: Skriptu možemo pokrenuti na dva načina

Pozivanje tumača da pokrene skriptu:
# bash hello_world.sh

Može se pokrenuti i kao:
# sh hello_world.sh

Ali budući da se ne poziva vaša ispravna ljuska, možda će raditi napola. U idealnom slučaju, Shell pozvan u prvom retku je onaj koji se koristi za njegovo izvršavanje.

Također možete pokrenuti skriptu izravno na sljedeći način:
# ./ hello_world.sh

Napomena: ./ označava pokretanje iz trenutnog direktorija.

Ono što ostaje za analizu je kôd koji u njega umetnete. Nadam se da će vam se kao i uvijek svidjeti (neki više od drugih, u skladu s potrebama za učenjem i znanjem) ove serije Shell skriptiranje.

Na internetu postoji mnogo dobrih poveznica na ovu temu, ali ostavljam vam ovaj mali vodič smješten ovdje na DesdeLinux.net I ovo drugo Vanjski vodič.

Do sljedećeg posta!


13 komentara, ostavi svoj

Ostavite svoj komentar

Vaša email adresa neće biti objavljen. Obavezna polja su označena s *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obvezi.
  5. Pohrana podataka: Baza podataka koju hostira Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   d4ny dijo

    Lilo .. Linux Loader .. ostalo vrlo dobre informacije .. hvala .. salu2 d4ny.-

  2.   ing. Jose Albert dijo

    Pozdrav svima koji uskoro prate mrežni tečaj "Learn Shell Scripting", nastavit ćemo s ostalim osnovnim skriptama kako bismo nastavili s prisvajanjem znanja i nastavili ga družiti svima.

    Nadam se da ćete pratiti, jer ću uskoro početi s naprednijim kodovima, ali izloženim na način koji je vizualno razumljiv unatoč svojoj složenosti.

    Imajte na umu da s Shell Scriptingom možete raditi mnogo složenih stvari koje se međusobno razlikuju od različitih platformi koristeći vrlo male datoteke. Ostavit ću vam ovaj mali screencast nečega što ću vas uskoro naučiti onima koji nastave gledati tečaj, a to sa samo 50 KB puno obećava! I to je samo polovica onoga što možete učiniti s Shell Scriptingom.

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

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

    1.    Alberto cardona dijo

      Pozdrav, vaš doprinos je nevjerojatan, zaista puno hvala !!
      Malo sumnjam, mogu li programirati kompajler s bash?
      Ili barem leksički analizator?
      ima tu moć?

  3.   ing. Jose Albert dijo

    Pozdrav svima koji slijede mrežni tečaj "Learn Shell Scripting", nastavit ćemo s ostalim osnovnim skriptama kako bismo nastavili s prisvajanjem znanja i nastavili ga socijalizirati svima. Nadam se da ćete pratiti, jer ću uskoro početi s naprednijim kodovima, ali izloženim na način koji je vizualno razumljiv unatoč svojoj složenosti.

    Imajte na umu da s Shell Scriptingom možete raditi mnogo složenih stvari koje se međusobno razlikuju od različitih platformi koristeći vrlo male datoteke. Ostavit ću vam ovaj mali screencast nečega što ću vas uskoro naučiti onima koji nastave gledati tečaj, a to sa samo 50 KB puno obećava! I to je samo polovica onoga što možete učiniti s Shell Scriptingom.

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

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

  4.   Alberto dijo

    Pozdrav Jose,
    Prvo hvala što ste podijelili svoje znanje. Vaši su članci vrlo zanimljivi.

    Dvije stvari, mislim da je vrlo važno koristiti dvostruke navodnike "Hello World" i imati čisti izlaz naše skripte s izlazom 0

  5.   ing. Jose Albert dijo

    Zahvaljujemo na doprinosu, u sljedećem Skriptu vidjet ćete upotrebu izlaza 0, break i ostalih!

  6.   willarmand dijo

    Pozdrav.
    Vrlo zanimljivo, činiš da izgleda jednostavno; Sad sam naišao da ne mogu programirati u Linuxu s cron ili at, shutdown / suspend / hibernate, s posljedičnim automatskim pokretanjem naredbe rtc wake, ne znam bi li skripta s tom naredbom pomogla, ili slijedili bi cron i at bez ičega, ili se to jednostavno ne može učiniti ili se radi drugačije ili sam vrlo ambiciozan, ali u sustavu Windows to je relativno jednostavno učiniti. Želim prijeći na Linux, ali važno mi je da zakažem isključivanje / suspendiranje / hibernaciju i da se računalo pokrene samo od sebe. Pozdrav.

  7.   ing. Jose Albert dijo
  8.   willarmand dijo

    Hvala, temeljito ću ih pročitati, nešto će mi pomoći. Pozdrav.

  9.   Edward Cuomo dijo

    Prije nekog vremena započeo sam projekt za koji vjerujem da je jedinstven. To je prototip za Framewok Bash. Potreban je samo Bash na sustavu.
    Ako je netko drugi zainteresiran, pozvan je da proba i surađuje!

    https://github.com/reduardo7/bashx

    Pozdrav!

    1.    gušter dijo

      Dragi Eduardo, mislim da je to sjajan projekt, možda bi ga mogao podijeliti s cijelom zajednicom desdelinux, zapamtite da možete objaviti članak o svom projektu na našoj web stranici, ako ne znate kako to učiniti, preporučujem čitanje https://blog.desdelinux.net/guia-redactores-editores/ gdje su najbolje prakse za izradu članaka desdelinux i postupak koji treba provesti. Vjerojatno je za zajednicu prilično dobro prvo znati o prednostima vašeg projekta, a drugo naučiti kako raditi ovakve stvari. Pozivamo vas i pozivamo druge da podijele svoje projekte s nama i velikom zajednicom koja nas okružuje.

  10.   Slika rezerviranog mjesta Miguela Urose Ruiza dijo

    Pozdrav, dobro jutro.
    Novi sam u svijetu administracije Linux računala i želio sam znati što mu preporučite: ksh, bash, perl, php, python ....
    Puno vam hvala i srdačan pozdrav.
    Miguel.