4 olulist Shell-skripti tüüpi Linux algajatele (kasulik)

Lang L: none (table-of-contents):

Anonim

Kujutise allikas: pixabay.com

Shell Scripting in Linux - arvutid mõistavad üldiselt 0 ja 1 keelt, mida nimetatakse binaarseks keeleks. Aastakümneid tagasi kirjutasid inimesed programme ja rakendusi, näiteks isegi binaarses keeles kalkulaatoreid. Kuid see polnud ilus. Kujutage vaid ette! Kas soovite arvutada 73 + 96, kuidas kirjutaksite? Peaksite pigem arvutama binaarse täisarvu väärtuste 73 ja 96 ning seejärel need liitma. Inimene peab selleks olema üsna loll. Pigem tuleks arvutada paberil 73 ja 96 ja liikuda edasi. Kuid see on väiksema osa jaoks. Mis siis, kui peate midagi sellist arvutama (19273/23 * (2967 3)). Ma ütleksin nüüd, et see on päris intensiivne.

Niisiis pole indenaalsel mehel, kes õpib kõike kahendkeeles kodeerima, mõtet. See on peamine põhjus, miks arvutid polnud 70ndatel ja 80ndatel populaarsed. Kuid hiljem, isegi enne Windowsi väljatöötamist, hakkasid inimesed arendama tuumasid ja muid sarnaseid asju, mis olid opsüsteemi põhiosaks. Tuumad, mida kasutatakse konkreetse programmi inimesele loetava vormingu mõistmiseks ja selle masinkoodiks teisendamiseks. Ja just seal tekkisid programmeerimiskeeled ja see muutis kogu arvutimaailma ajastut. Rakendused ehitati C ja C ++ ning hiljem koos Java, Python, Ruby ja Perl.

Praeguseks on ümberringi enam kui 50 programmeerimiskeelt. Ja see on vähemalt see, mida tean. Rääkimata sellest, et on ka teisi programmeerimiskeeli, mida on veelgi raskem mõista kui masinkoode. Minu mõte on näiteks kanade programmeerimine ja Malbolge. Need on tõsised vastikud asjad, millega tegeleda.

Kestprogrammimine … .errr … skriptimine?

Nüüd võib tekkida küsimus, miks ma ei maininud Shelli programmeerimist ülalpool koos teiste programmeerimiskeeltega. Peamine põhjus, miks Shell ise pole, pole programmeerimiskeel. See on skriptikeel. Shell on lihtsalt kasutajapoolne interaktiivne programm, mis tõlgendab kasutaja sisendeid ja annab tulemuse, kui käsk on kehtiv. Seejärel edastab see programmi käivitamiseks kerneli. Kest ei kuulu kerneli hulka, vaid kasutab selle asemel kernelit failide käivitamiseks ja loomiseks.

Shell-skriptimisprogrammi tüübid

Nüüd, erinevalt C, C ++ või Java, on nüüd ka mitut muud tüüpi kooreid, mida saab kasutada Shell Scriptingu jaoks. Järgnevalt on ära toodud neli kuupäeva kestitüüpi:

EiKoore tüüpKirjeldus
1Bash ehk Bourne Again ShellSee on kõige levinum kest, mis kõigis Linuxi ja debiani põhistes süsteemides saadaval. See on avatud lähtekoodiga ja tasuta tarkvara.
2CSH või C kestSee Shelli skriptimisprogramm kasutab C-programmeerimise kesta süntaksit ja on selle peaaegu sarnane C-ga.
3KSH või Korn ShellKorn on Unixi põhine Shelli skriptimisprogramm, mis põhines algselt Bash Shelli skriptimisel. See kest on üsna arenenud ja selle kõrgetasemeline programmeerimiskeel.
4TCSHPuudub konkreetne TCSH täisvorm. On nagu on. TCSH on Berkeley Unix C kesta täiustatud versioon. See toetab taas C-stiili süntaksit

Tänase päeva seisuga ei huvita meid kõik ülaltoodud kestad. Meid huvitab ainult bashi kest, kuna see on tänapäeval kõige sagedamini kasutatav kest.

Bash Shell

Bash Shelli skriptimisprogramm on kõrgetasemeline skriptikeel, mis sarnaneb pütoni keelega. Kuid kui teil on Pythoni kohta varem kogemusi, siis leiate tegelikult, et Bash Shelli skriptimine on palju lihtsam kui mis tahes muu skriptikeel. Skripte saab bash-is kirjutada palju kiiremini kui C, C ++, Java või Python. Vaiketerminal tänapäeva kõige Linuxi keskkonnas, näiteks: - Ubuntu, Linux Mint Cinnamon / Rafaela, Fedora, Arch Linux või mõni muu deebes keskkond koosneb vaikest Shelliks bashist. Siiski saate kontrollida kõiki süsteemis olevaid kestakeskkondi, sisestades vaikeklemmile järgmised andmed: -

$ kass / jne / kestad

(Märkus. Alguses olevat dollarimärki kasutatakse terminali tuvastamiseks.)

Tekstifailide lugemiseks kasutatav süntaks „kass”. Kestusskriptiprogrammide tüübid Linuxi, Unixi või Debiani keskkonnas salvestatakse kestafaili kataloogis etc. Igal kestal on oma unikaalne süntaksikomplekt ja oma sisseehitatud funktsioonide komplekt. DOS-il või akendel on ka oma kest, mida tuntakse kurikuulsa „käsuviibina” või „võimsuskellana” alates Windows 8.1-st, kuid see pole siiski nii võimas kui bash. Kassi süntaks annab teile süsteemis saadaolevate kestade loendi, kuid vaikekoore leidmiseks või praeguse kontrollimiseks kesta abil saab Shelli skriptiterminalis kasutada järgmist süntaksi: -

$ echo $ SHELL

'Kaja' süntaksit kasutatakse mis tahes avalduse printimiseks. Siin on SHELL muutuja, mis on määratud aktiivse kesta printimiseks. Dollarimärki pärast “kaja” kasutatakse muutuja tähistamiseks koore skriptimisel.

Soovitatavad kursused

  • Java hibernaadi sertifitseerimiskursus
  • Java kevadkursus
  • WordPressi veebikoolitus
  • Ruby koolitus

Shell Scripting

Nüüd, kui teate, mis kest on, heidame pilgu skriptimisele ja miks seda nii tuntakse. Korpuse skriptimine pole midagi muud kui käsurida lihtsas tekstifailis, mis lõpeb laiendiga .sh. '.Sh' määrab, et see on kestafail. Pärast kesta skripti kirjutamist tuleks muuta käivitatavat luba, kasutades funktsiooni chmod. Vaikimisi pole ühtegi äsja loodud kesta UNIXis või Linuxi keskkonnas käivitatav, kui õigusi pole spetsiaalselt muudetud. Shell-skriptimine on peaaegu sarnane Windowsi Batch-programmeerimisega, kuid erinevus seisneb selles, et Shell-skriptimine on üsna võimsam ja pakub koos vahekaartide lõpuleviimisega palju rohkem interaktiivset keskkonda. Kestusskripti kirjutamiseks tuleb kasutada head tekstiredaktorit. Mõned paremad, millest tean, on Vim, Gedit ja Leafpad.

Erinevalt teistest programmeerimiskeeltest on Shelli skriptid kiiremini kirjutatavad ja käivitatavad. Teil pole vaja käivitamiseks alla laadida ühtegi konkreetset komplekti ega sõltuvust. Neid saab kasutada mitte ainult süsteemiadministraator, vaid ka tavaline inimene automatiseeritud skriptide igapäevaseks täitmiseks. Järgnev on siin kirjutatud skripti lihtne näide.

#! / prügikast / bash echo -e “Tere tulemast esimesse kestaprogrammi. \ n” echo -e “Kirjutage siia midagi ja see programm prindib sama tagasi. \ n” # kasutajalt sisestuse palumine lugemissisendiks # sisestuse lugemine kasutaja kajast “Sina sisestatud: $ input ” väljumine 0

Nüüd lubage mul selgitada kõiki ülaltoodud koodi parameetreid. Esiteks kirjutage ülaltoodud kood tekstifaili kujul "nagu see on" ja salvestage see laiendiga, mille lõpp on ".sh". Näiteks pange fail nimeks 'main_program.sh'. Veenduge, et see pole 'main_program.sh.txt'. Enamik algajaid kipub tegema sama ja siis pole see käivitatav. Kui ülaltoodud kood on kopeeritud, muutke selle õigusi terminalis järgmise süntaksi abil: -

$ chmod + x main_program.sh VÕI $ chmod 755 main_program.sh

Kasutage julgelt mõlemat ülaltoodud käsku, kuna mõlemad teevad sama asja. Kaasaegsetes bashi kesta skriptimisprogrammides on '755' muudetud '+ x'; seega pole vahet, kumba te tegelikult kasutate. Kui olete õigusi muutnud, tippige selle täitmiseks järgmine.

$. / main_program.sh

Perioodi ja kaldkriipsu kasutatakse koore skriptide tuvastamiseks ja käivitamiseks. Kui olete ülaltoodud skripti täitnud, prindib see esimese kaja väljavõtte ja palub teil siis midagi sisestada. Kui olete selle sisestanud, prindib see teile sama välja ja väljub tõlgist. Lubage mul selgitada kõiki ülaltoodud süntakse. "#! / Bin / bash" kasutatakse tõlgi kinnitamiseks, et see on bash-skript ja Bash-kesta skriptimisprogramm asub kataloogis "bin". Käsku „kaja” kasutatakse mis tahes avalduse printimiseks ja lipuga „-e” kasutatakse kesta tähistamiseks, et ilmub kas uus rida, mis on tähistatud kui „kaldkriips n või \ n”, või vahekaardi kaldkriips t või \ t 'või muu sarnane kajastuses. Teise rea räsiosa kasutatakse kommentaari tuvastamiseks bash-skriptis. Mida iganes pärast räsi kirjutate, kommenteeritakse ja seda ei täideta. Kuid see ei kehti esimesel real oleval numbril #! / Bin / bash. Nii on skript mõeldud töötama. Süntaksit „loe” kasutatakse kasutaja sisestuste lugemiseks. Ja „sisend”, mida ma pärast „lugemise” süntaksit mainisin, on muutuja, millesse kasutaja sisend talletatakse. Sisendi asemel võib kasutada suvalist muutujat. Teisel viimasel real kasutatakse sisendit $, et end muutujana identifitseerida ja salvestatud sisend väljundada. Lõpuks kasutatakse väljumiskäsku, et väljuda puhtast nullist koosneva tõlgiga.

Mitteaktiivne skriptimine

Ülaltoodud näide on lihtsalt üsna lihtne. Kuid seal on sisseehitatud moodulid, mida saate kasutada selle asemel, et anda kõik sisendid ise. Järgnev on kooditükk, mis prindib välja sisse logitud kasutajanime, praeguse kellaaja, kalendri kuupäeva ja sisselogimiste arvu: -

#! / prügikast / bash # See skript prindib sisse logitud kasutajateabe, sisse loginud kasutajate arvu, kuupäeva, kellaaja ja kalendri. echo “Tere, $ USER” echo “Tänane kuupäev ja kellaaeg on“ kuupäev ”” echo “ Sisseloginud kasutajate arv:` kes | wc-l` ”

kaja “kalender”

cal

väljumine 0

Pärast ülaltoodud faili õiguste muutmist käivitage see skript. Nüüd võib tekkida küsimus, kas me sisestasime eelmises skriptis sisendi ja siis tagastas sisendi th muutuja abil. Kuid siin ei ole me muutuja '$ USER' sees sisestanud, siis miks see täpselt kasutaja prindib. Peamine põhjus, miks need asjad on süsteemis juba konfigureeritud. Pidage meeles, et rääkisin teile alguses alguses $ SHELL-ist, kuidas seda vaikimisi määratletakse? Jah, sarnane on siin ka US USERiga. Kuupäeva osas, kui sisestate lihtsalt termini ilma kuupäevadeta jutumärkidega kuupäeva, prindib see täpse kuupäeva ja kellaaja. Ma kasutasin lihtsalt üksikut tsitaati (`), et tuvastada ennast pigem süntaksina kui kajava lause osana. Ühtne tsitaat (`) käivitab kõik selle sisse trükitud süntaksid, olgu need siis avalduses või mujal. Kasutajate arvu osas kasutatakse käsku 'kes', et kontrollida praeguseid sisse logitud kasutajaid koos sisse logitud protsessidega ning käivitamise kuupäeva ja kellaaega. Kuid mis puutub ülaltoodud käsku, siis ma tegelikult kärbisin selle nii, et väljastaks lihtsalt arv kasutajaid, kes selle käsuga wc-l sisse logisid. Riba (|) või seda, mida rahva seas nimetatakse toruks, kasutatakse kahe käsu ühendamiseks. Toru tähendab tegelikult palju enamat, kuid ma ei hakka siin üksikasjalikult laskuma. Ja lõpuks trükkisin kalendri praeguse kuupäeva kalendrisse printimiseks, kasutades sisseehitatud käsu 'cal'.

Välju nullist

Exit Zero on asi, mida ma pole üheski ülaltoodud kirjutatud programmis selgitanud. Peamine põhjus, miks "Exit Zero" on, on selle suhtes palju suurema raskusega kui ükski Shelli skriptimise ülaltoodud süntaks. Kui käivitate skripti Linuxi või Unixi jaotuses, tagastab see vaikimisi kahte tüüpi väärtusi või täpsemalt väljumise olekut, et kontrollida, kas kesta skripti täitmine õnnestub või mitte. Kui see tagastab väärtuse nullina, siis oli täitmine edukas, vastasel juhul seda kas ei õnnestunud täita või oli täitmise ajal mõni tõrge. Nii kontrollitakse skripti lõppu 'exit 0' kirjutades skripti täitmise olekut.

Kõik asjad, mida ma siin käsitlenud olen, on Shelli skriptimise kõige vähem põhiosa linuxi jaotuses. Nullpunktist väljumise osa ja toru mängivad olulist rolli linux-käskudes mitme kesta skriptimisel ja selle kasutamisel koos tingimuslike if- ja else-avaldustega.

Seotud artiklid:-

Siin on mõned artiklid, mis aitavad teil saada rohkem üksikasju Linuxi algajate Shell-skriptide tüüpide kohta, nii et lihtsalt minge link.

  1. Shell-skriptimise intervjuu küsimused | 10 parimat küsimust
  2. Linux vs Windows - saate teada 9 kõige vingemat erinevust
  3. Linuxi intervjuu küsimused ja vastused | Kasulik ja enim küsitud
  4. Karjäär Linuxi administratsioonis
  5. Shell-skripti parameetrite reeglid ja reeglid