Shell Scripting in Linux - Tietokoneet ymmärtävät yleensä 0: n ja 1: n kielen, joka tunnetaan binaarikielenä. Vuosikymmeniä sitten ihmiset kirjoittivat ohjelmia ja sovelluksia, kuten edes laskimia binaarikielellä. Mutta se ei ollut hieno. Kuvittele! Haluat laskea 73 + 96, miten kirjoitat? Sinun olisi pikemminkin laskettava binaarinen kokonaisluku arvoille 73 ja 96 ja lisättävä sitten ne. Ihmisen on oltava aika tyhmä tehdäksesi sen. Pikemminkin laskea 73 ja 96 paperille ja siirtyä eteenpäin. Mutta se on pienemmälle osalle. Entä jos joudut laskemaan jotain (19273/23 * (2967 3)). Sanoisin nyt, että tämä on aika intensiivistä.
Joten itsenäinen mies, joka oppii koodaamaan kaiken binaarikielellä, ei ole järkevää. Se on tärkein syy siihen, miksi tietokoneet eivät olleet suosittuja 70- ja 80-luvuilla. Mutta myöhemmin, jopa ennen Windowsin kehittämistä, ihmiset alkoivat kehittää ytimiä ja vastaavia asioita, jotka olivat käyttöjärjestelmän ydinosa. Ytimet ymmärsivät tietyn ohjelman ihmisille luettavissa olevan muodon ja muunsivat sen sitten konekoodiksi. Ja tässä ohjelmointikielet syntyivät ja muuttivat koko tietokonemaailman aikakauden. Sovellukset rakennettiin C- ja C ++ -sovelluksissa, ja myöhemmin Java-, Python-, Ruby- ja Perl-ohjelmistojen kanssa.
Nykyään ympärillä on yli 50 ohjelmointikieltä. Ja se on vähintäänkin niistä, joista tiedän. Puhumattakaan tosiasiasta, että on muitakin ohjelmointikieliä, joita on vielä vaikeampi ymmärtää kuin konekoodeja. Haluan huomata, että esimerkkejä ovat kana-ohjelmointi ja Malbolge. Ne ovat joitain vakavia ilkeitä juttuja käsiteltäväksi.
Shell-ohjelmointi… .errr… Komentosarja?
Nyt saatat ihmetellä, miksi en ole maininnut Shell-ohjelmointia yllä muiden ohjelmointikielten kanssa. Pääsyy siihen, että Shell itsessään ei ole ohjelmointikieli. Se on skriptikieli. Shell on vain käyttäjän end-interaktiivinen ohjelma, joka tulkitsee käyttäjän syötteet ja antaa tuloksen edellyttäen, että komento on kelvollinen. Sitten se välittää ohjelman ytimelle suorittaakseen sen. Shell ei ole osa ydintä, mutta käyttää sen sijaan ydintä suorittaakseen ja suorittaakseen tiedostoja.
Shell Scripting -ohjelman tyypit
Nyt, toisin kuin C, C ++ tai Java, on olemassa useita muita tyyppejä, joita voidaan käyttää Shell Scripting -sovelluksissa. Seuraavassa on neljä tyyppiä olevia kuoreja, jotka ovat käytettävissä päivään mennessä:
Ei. | Kuoren tyyppi | Kuvaus |
1. | Bash eli Bourne Again Shell | Tämä on yleisin käytettävissä oleva kuori kaikissa Linux- ja debian-pohjaisissa järjestelmissä. Se on avoimen lähdekoodin ja ilmainen. |
2. | CSH tai C-kuori | Tämä Shell-komentosarjaohjelma käyttää C-ohjelmoinnin shell-syntaksia ja on melkein samanlainen kuin C. |
3. | KSH tai Korn Shell | Korn on Unix-pohjainen Shell-komentosarjaohjelma, joka alun perin perustui Bash Shell -komentosarjaan. Tämä kuori on melko edistynyt ja sen korkean tason ohjelmointikieli. |
4. | tcsh | TCSH: lla ei ole erityistä täydellistä muotoa. Se on sellaisena kuin se on. TCSH on Berkeley Unix C -kuoren edistyksellinen versio. Se tukee jälleen C-tyylistä syntaksia |
Tänään meitä ei kiinnosta kaikki yllä olevat kuoret. Olemme kiinnostuneita vain Bash-kuoresta, koska se on nykyään yleisimmin käytetty kuori maailmassa.
Bash-kuori
Bash Shell -komentosarjaohjelma on korkean tason skriptikieli, samanlainen kuin pythonin. Mutta jos sinulla on kokemusta Pythonista aiemmin, huomaat tosiasiassa, että Bash Shell Scripting on paljon helpompaa kuin mikään muu skriptikieli. Skriptejä voidaan kirjoittaa bashissa paljon nopeammin kuin C, C ++, Java tai Python. Oletuksena oleva päätelaite nykypäivän Linux-ympäristössä, esimerkiksi: - Ubuntu, Linux Mint Cinnamon / Rafaela, Fedora, Arch Linux tai mikä tahansa muu debian-ympäristö koostuu Bashista oletuskuorena. Voit kuitenkin tarkistaa kaikki järjestelmässäsi olevat kuoriympäristöt kirjoittamalla seuraavat oletuspäätteeseen: -
$ kissa / etc / kuoret |
(Huomaa: Alussa dollarimerkkiä käytetään tunnistamaan terminaali.)
Kissa-syntaksi tekstitiedostojen lukemiseen. Shell-komentosarjaohjelmien tyypit Linux-, Unix- tai Debian-ympäristössä tallennetaan shell- tiedostoon etc- hakemistoon. Jokaisella kuorella on oma ainutlaatuinen syntaksijoukko ja oma joukko sisäänrakennettuja toimintoja. DOS: lla tai Windowsilla on myös oma kuori, joka tunnetaan surullisen komentokehotteena tai 'Powershell'inä Windows 8.1: sta eteenpäin, mutta se ei silti ole yhtä tehokas kuin bash. Kissan syntaksi antaa sinulle luettelon järjestelmässä käytettävissä olevista kuorista, mutta oletuskuoren löytämiseksi tai nykyisen tarkistamiseksi kuoren avulla voidaan käyttää seuraavaa syntaksia Shell Scripting Terminal -sovelluksessa: -
$ echo $ SHELL |
'Kaiun' syntaksia käytetään kaikkien lausekkeiden tulostamiseen. Tässä 'SHELL' on muuttuja, joka on määritetty tulostamaan nykyinen kuori. Dollarimerkkiä 'kaiku' käytetään edustamaan muuttujaa komentosarjoissa.
Suositellut kurssit
- Java Hibernaten -sertifiointikurssi
- Java-kevätkurssi
- WordPress Online -koulutus
- Ruby-koulutus
Shell Scripting
Joten nyt tiedät mikä kuori on, katsotaanpa Shell Scripting ja miksi se tunnetaan nimellä. Shell Scripting ei ole muuta kuin komentosarja yksinkertaisessa tekstitiedostossa, joka päättyy '.sh' -päätteeseen. 'Sh 'määrittää, että se on shell-suoritettava tiedosto. Kirjekuoren komentosarjan kirjoittamisen jälkeen joudutaan vaihtamaan suoritettava käyttöoikeus käyttämällä 'chmod-toimintoa'. Oletusarvon mukaan mitään äskettäin luotavaa kuorta ei voida suorittaa UNIX- tai Linux-ympäristössä, ellei käyttöoikeuksia muuteta erikseen. Shell Scripting on melkein samanlainen kuin Windowsin Batch-ohjelmointi, mutta ero on siinä, että Shell Scripting on melko tehokkaampi ja tarjoaa paljon enemmän huippuluokan vuorovaikutteista ympäristöä välilehden loppuun saattamisen lisäksi. Shell-komentosarjan kirjoittamiseen on käytettävä hyvää tekstieditoria. Muutamia parempia, joista tiedän, ovat Vim, Gedit ja Leafpad.
Toisin kuin muut ohjelmointikielet, Shell-skriptit on nopeampi kirjoittaa ja suorittaa. Sinun ei tarvitse ladata erityisiä paketteja tai riippuvuuksia suorittaaksesi. Järjestelmänvalvoja voi käyttää niitä myös normaalin ihmisen suorittamaan automatisoituja skriptejä päivittäin. Seuraava on yksinkertainen esimerkki kirjoitetusta kirjoituksesta.
#! / bin / bash echo -e “Tervetuloa ensimmäiseen kuoriohjelmaan. \ n” echo -e “Kirjoita jotain tänne ja tämä ohjelma tulostaa saman. \ n” # käyttäjän pyytäminen syötteen lukemiseen syöte # lukeminen tulosta käyttäjän kaiku ”Sinä kirjoitettu: $ input ” exit 0 |
Sallikaa minun selittää kaikki yllä olevan koodin parametrit. Ensinnäkin, kirjoita yllä oleva koodi tekstitiedostoon muodossa "sellaisenaan" ja tallenna se laajennuksella, joka päättyy '.sh'. Nimeä tiedosto esimerkiksi nimellä "main_program.sh". Varmista, että se ei ole 'main_program.sh.txt'. Useimmilla aloittelijoilla on taipumus tehdä samoin, ja silloin sitä ei voida suorittaa. Kun yllä oleva koodi on kopioitu, muuta sen käyttöoikeuksia käyttämällä seuraavaa päätteen syntaksia: -
$ chmod + x main_program.sh TAI $ chmod 755 main_program.sh |
Voit vapaasti käyttää jompaa kumpaa yllä mainituista komennoista, koska molemmat tekevät saman asian. Nykyaikaisissa bash shell -komentosarjojen ohjelmissa '755' muutetaan '+ x'; joten sillä ei ole väliä kumpaa käytät. Kun olet muuttanut käyttöoikeuksia, kirjoita seuraava suorittaaksesi se.
$. / main_program.sh |
Jaksoa ja vinoviivaa käytetään tunnistamaan ja suorittamaan komentosarjat. Kun olet suorittanut yllä olevan komentosarjan, se tulostaa ensimmäisen kaikulausekkeen ja pyytää sitten syöttämään jotain. Kun kirjoitat sen, se tulostaa saman asian takaisin sinulle ja poistuu tulkista. Joten anna minun selittää kaikki yllä olevat syntaksit. '!! / Bin / bash' käytetään tulkitsijalle kertomaan, että tämä on bash-skripti ja Bash-komentosarjaohjelma sijaitsee 'bin' -hakemistossa. 'Echo' -komentoa käytetään minkä tahansa lauseen tulostamiseen ja '-e' -lippua käytetään osoittamaan kuorelle, että siellä on joko uusi rivi, joka on merkitty 'viiva n tai \ n' tai välilehden viiva t tai \ t 'tai vastaavat siitä kaikuvan lausunnon sisällä. Toisen rivin hash-osaa käytetään tuntemaan kommentti bash-komentosarjasta. Mitä tahansa kirjoitat hash-kommentin jälkeen, se kommentoidaan, eikä sitä suoriteta. Mutta tämä ei koske ensimmäisellä rivillä olevaa #! / Bin / bash. Näin komentosarjan on tarkoitus toimia. Luettu-syntaksia käytetään lukemaan käyttäjän syöttämät tiedot. Ja 'input', jonka mainitsin 'read' -syntaksin jälkeen, on muuttuja, johon käyttäjän syötteet tallennetaan. Tulon sijasta voidaan käyttää mitä tahansa muuttujaa. Toisella viimeisellä rivillä $ -tuloa käytetään tunnistamaan itsesi muuttujana ja tulostamaan sen sisällä oleva tallennettu sisääntulo. Lopuksi exit-komentoa käytetään poistumaan tulkista puhtaalla exit-nollalla.
Ei-aktiivinen komentosarja
Nyt yllä oleva esimerkki on aivan melko helppo. Mutta on rakennettu moduuleja, joita voit käyttää sen sijaan, että annat kaikki tulot itse. Seuraava on pala koodista, joka tulostaa sisäänkirjautuneen käyttäjänimen, nykyisen ajan, kalenteripäivän ja kirjautumisten määrän: -
#! / bin / bash # Tämä skripti tulostaa nykyisen kirjautuneen käyttäjän tiedot, kirjautuneiden käyttäjien määrän, päivämäärän, ajan ja kalenterin echo “Hei, US USER” echo “Päivän päivämäärä ja kellonaika on” päivämäärä ”” echo ”Sisäänkirjautuneiden käyttäjien määrä:` kuka | wc-l` ”
echo “kalenteri” cal poistu 0 |
Suorita tämä komentosarja muutettuasi yllä olevan tiedoston käyttöoikeudet. Nyt saatat ihmetellä, että kirjoitimme tosiasiallisesti edellisessä komentosarjasta tulon ja sitten se palautti tulon th muuttujalla. Mutta täällä, emme ole toimittaneet mitään $ USER -muuttujan sisällä, niin miksi se tulostaa tarkan käyttäjän. Tärkein syy siihen, että nämä asiat on jo määritetty järjestelmässä. Muista, että kerroin sinulle $ SHELListä aiemmin alussa, kuinka se määritetään oletuksena? Kyllä, samanlainen tilanne on täällä Yhdysvaltain dollarin käyttäjän kanssa. Päiväyksen suhteen, jos kirjoitat vain päivämäärän ilman lainauksia terminaalissa, se tulostaa tarkan päivämäärän ja kellonajan. Käytin vain yhtä lainausta (`) tunnistaakseen itsensä syntaksiksi eikä osaksi kaikuvaa lausuntoa. Yksittäinen lainaus (`) suorittaa kaikki sen sisälle painetut syntaksit, olivatpa ne sitten lauseessa tai muualla. Mitä tulee käyttäjien määrään, 'kuka' -komentoa käytetään tarkistamaan nykyiset käyttäjät kirjautuneena sisään kirjautuneiden prosessien kanssa sekä päivämäärä ja kellonaika, jolloin se käynnistettiin. Mutta kuten yllä olevassa komennossa, itse asiassa katkaisin sen vain tulostamaan käyttäjien lukumäärän, joka kirjasi sen th 'wc-l' -komennolla. Palkkia (|) tai sitä, jota se tunnetaan nimellä putki, käytetään kahden komennon yhdistämiseen. Putki tarkoittaa itse asiassa paljon muuta, mutta en aio mennä tässä yksityiskohtaisemmin. Ja lopuksi tulostin kalenterin käyttämällä sisäänrakennettua komentoa 'cal' tulostaaksesi nykyisen päivämäärän kalenteriin.
Poistu nollasta
Exit Zero on jotain, jota en ole selittänyt yhdessäkään yllä mainituissa kirjoitetuissa ohjelmissa. Pääasiallisena syynä siihen, että 'Exit Zero' on siinä paljon enemmän painoarvoa kuin millään yllä olevista Shell Scriptingin syntaksista. Oletusarvon mukaan aina, kun suoritat komentosarjan Linux- tai Unix-jakelussa, se palauttaa kahden tyyppisiä arvoja tai tarkemmin sanottuna exit-tilan, jotta voidaan tarkistaa, onko komentosarjan suorittaminen onnistunut. Jos se palauttaa arvon nollaksi, suoritus oli onnistunut, muuten sitä joko ei suoritettu tai toteutuksen aikana tapahtui virhe. Näin ollen kirjoittamalla 'exit 0' minkä tahansa komentosarjan loppuun tarkistetaan komentosarjan suoritustila.
Kaikki asiat, joita olen käsitellyt täällä, ovat vain vähiten perusosa Shell-komentosarjoista linux-jakelussa. Poistumattomalla nollaosalla ja putkella on tärkeä rooli suoritettaessa useita shell-komentosarjoja linux-komennoissa ja käytettäessä sitä yhdessä ehdollisten if- ja else-lauseiden kanssa.
Aiheeseen liittyvät artikkelit:-
Tässä on artikkeleita, jotka auttavat sinua saamaan lisätietoja Linux-aloittelijoiden Shell-komentosarjojen tyypeistä, joten käy vain linkin läpi.
- Shell Scripting -haastattelukysymykset 10 suosituinta kysymystä
- Linux vs. Windows - selvitä 9 upeinta eroa
- Linux-haastattelua koskevat kysymykset ja vastaukset Hyödyllisiä ja eniten kysyttyjä
- Urat Linux-hallinnossa
- Shell Script -parametrien säännöt