U ovoj novoj prilici (Unos br. 8) o "Nauči skriptiranje školjki" više ćemo se fokusirati 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, odgovaranjem na mala, ali izravna pitanja, koja su prikazana u nastavku, da se razjasni do sada ono što je naučeno, a koje se ne odnosi direktno na interni kôd koji je programiran:
Šta je ljuska u GNU / Linux operativnom sistemu?
Školjka što na španskom znači CONCHA (ljuska, poklopac, zaštita). Ovaj izraz primijenjen u operativnim sistemima odnosi se na interpretator naredbi operativnog sistema. Općenito, riječ je o tekstualnom sučelju visokih performansi, koje se manifestuje 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 SO, GNU / Linux njima se još učinkovitije upravlja uređivanjem njihovih konfiguracijskih datoteka putem terminala. Općenito se nalaze na odredišnoj putanji: «/ etc "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 putanji (zadana putanja) za sve izvršne datoteke, kao što je obično "/ Usr / bin" , ili upisivanjem imena izvršne datoteke kojoj prethodi: ./iz direktorija u kojem se nalaze.
Sve ovo je dobro poznato svakom Shell korisniku. Međutim, njegove mogućnosti kao programskog okruženja manje su poznate i cijenjene. Skripte (programe) napravljene u Shell-u ne treba kompajlirati. 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 serija uputstava za pokretanje samog OS-a. imaju prilično čistu (očiglednu) sintaksu (konstrukcija, redoslijed), što ih čini dobrom polaznom točkom za početak u svijetu programiranja.
Šta je Shell Scripting?
To je tehnika (sposobnost / vještina) dizajniranja i kreiranja skripte (datoteka za automatizaciju zadataka) pomoću ljuske (po mogućnosti) operativnog sistema ili uređivača teksta (grafičkog ili terminala). Ovo je vrsta programskog jezika koja se uglavnom tumači. To jest, dok se većina programa kompajlira (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 (font koda teksta) 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 zasnovanih na programiranju pod Shell Scriptingom?
1.- Lakše ih je pisati (programirati), ali uz veću cijenu obrade kada se izvrše.
2. - Za pokretanje koriste prevoditelje umjesto kompajlera
3. - Oni imaju komunikacijski odnos sa 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 pod Shell Scripting?
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 za Windows Script,
e) VBScript preko Windows Script Hosta,
f) REXX, pored mnogih drugih.
2.- GUI skriptiranje (jezici makronaredbi):
a) AutoHotkey,
b) Automatsko ubacivanje,
c) Očekujte,
d) Automator, između ostalog.
3.- Jezik skriptiranja za određene aplikacije:
a) ActionScript u Flash-u,
b) MATLAB,
c) mIRC skripta,
d) QuakeC, između ostalog.
4.- Web programiranje (za dinamičke stranice):
a) Na strani servera:
- PHP,
- ASP (Active Server Pages),
- JavaServer stranice,
- ColdFusion,
- 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,
- Ferite,
- Groovy,
- IO,
- Lisp,
- Lua,
- MUMPS (M),
- NewLISP,
- Nuva,
- Perl,
- PHP,
- Python,
- Ruby,
- šema,
- Mali razgovor,
- SuperCard,
- Tcl,
- Revolucija, između ostalih.
Što je Bash u GNU / Linuxu?
To je računalni program čija je funkcija tumačenje naloga. Zasnovan je 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?
Shell skripte 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 se zapitate šta je tačno skripta. To je tekstualna datoteka koja sadrži niz naredbi ljuske, koje sistem 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 u nekim slučajevima bez njega) 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 lično 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 radi zasebno i kako se uključuje u opštem kodu. 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 sistema.
Kako se pokreće i radi u GNU / Linux školjci?
Prvi korak u radu sa školjkom je pokretanje ljuske. Ono što se čini kao truizam ima svoj razlog postojanja. U nekim GNU / Linux distribucijama orijentiranim na krajnjeg korisnika, ljuska je prilično skrivena. Obično se zove: Konsole, Terminal, Terminal X ili nešto slično. Druga mogućnost je korištenje virtualne konzole. Upotreba: 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 moje publikacije, koristim Bash Shell.
S obzirom na skriptu napravljenu u Bash Shell-u hello_world.sh može se objasniti sljedeće:
Sadržaj:
#! / bin / bash
jeka zdravo svijete
Slom:
Prvi red scenarija
#! / bin / bash
Označava program koji bi skripta trebala pokrenuti. Ako programa nije moguće pronaći, dogodit će se pogreška.
Drugi red scenarija
jeka zdravo svijete
Izvršite naredbu echo s argumentima Hello World, uzrokujući njihovo prikazivanje na ekranu.
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 pola. U idealnom slučaju, Shell koji se poziva u prvom redu 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 ubacite. Nadam se da će vam se kao i uvijek svidjeti (neki više od drugih, ovisno o potrebama za učenjem i znanjem) ove serije Shell skriptiranje.
Na mreži postoji mnogo dobrih veza o ovoj temi, ali ostavljam vam ovaj mali vodič koji se nalazi upravo ovdje na FromLinux.net I ovo drugo Vanjski vodič.
Do sljedećeg posta!
13 komentara, ostavi svoj
Lilo .. Linux Loader .. ostalo vrlo dobre informacije .. hvala .. salu2 d4ny.-
Pozdrav svima onima koji uskoro prate mrežni kurs "Learn Shell Scripting", nastavić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 uprkos svojoj složenosti.
Imajte na umu da sa Shell Scripting-om možete raditi mnoge složene stvari koje se 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 kurs, a to sa samo 50Kb puno obećava! I to je samo polovina 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
Pozdrav, vaš doprinos je nevjerovatan, zaista vam puno hvala !!
Malo sumnjam, mogu li programirati kompajler sa bash?
Ili barem leksički analizator?
ima tu moć?
Pozdrav svima onima koji uskoro prate mrežni kurs "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 uprkos svojoj složenosti.
Imajte na umu da sa Shell Scripting-om možete raditi mnoge složene stvari koje se 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 kurs, a to sa samo 50Kb puno obećava! I to je samo polovina 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
Dobar dan Jose,
Prvo hvala što ste podijelili svoje znanje. Vaši članci su 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
Hvala na doprinosu, u sljedećem Skriptu vidjet ćete upotrebu izlaza 0, break i ostalih!
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 da li bi skripta s tom naredbom pomogla ili slijedili bi cron i t ne radeći ništa, ili se to jednostavno ne može učiniti, ili se to radi na drugi način, ili sam vrlo ambiciozan, ali u Windowsu je to relativno jednostavno učiniti. Želim preći na Linux, ali važno mi je da zakažem isključivanje / suspendovanje / hibernaciju i da se računar pokrene sam. Pozdrav.
Možda će vam ovo dati neke inovativne ideje: http://cirelramos.blogspot.com/2016/01/reiniciar-apagar-o-ejecutar-otra-tarea.html
http://cirelramos.blogspot.com/2015/12/programar-servidor-para-enviar-mensajes.html
Hvala, temeljito ću ih pročitati, nešto će mi pomoći. Pozdrav.
Prije nekog vremena započeo sam projekt koji mislim da je jedinstven. To je prototip za Framewok Bash. Potreban je samo Bash na sistemu.
Ako je neko drugi zainteresiran, pozvan je da proba i sarađuje!
Pozdrav!
Dragi Eduardo, mislim da je to sjajan projekt, možda biste ga mogli podijeliti sa cijelom desdelinux zajednicom, ne zaboravite da možete objaviti članak o svom projektu na našoj web stranici, ako ne znate kako to učiniti, preporučujem vam da pročitate https://blog.desdelinux.net/guia-redactores-editores/ gdje su najbolje prakse za stvaranje članaka u desdelinuksu i postupak za izvođenje. Moguće je da je za zajednicu dobro da prvo znate o prednostima vašeg projekta, a drugo da naučite kako se rade takve stvari. Pozivamo vas, a ostale pozivamo da objavljuju svoje projekte s nama i širokom zajednicom koja nas okružuje.
Zdravo dobar dan.
Ja sam nov u svijetu administriranja Linux mašina i želio sam znati što mu preporučujete: ksh, bash, perl, php, python….
Puno vam hvala i pozdravi.
Michael.