Mis on Shelli skriptimine ja miks peaksite seda kasutama

Mis on Shelli skriptimine ja miks peaksite seda kasutama

Kest on programm Linuxi või Unixi operatsioonisüsteemis, mis võimaldab teil sisestada käske süsteemi täitmiseks. Kui terminaliaken avatakse Linuxi arvutis, käivitab see shelliprogrammi, mis esitab käskude sisestamise liidese. Seda liidest nimetatakse käsurealiideseks. Käsu sisestamisel täidab see kest ja väljund kuvatakse ekraanil.





Lisaks käskude interaktiivsele vastuvõtmisele ja täitmisele saab kest täita ka faili salvestatud käske. Seda täitmisviisi tuntakse kui kesta skriptimine , ja selles artiklis käsitleme shelliskriptimise põhitõdesid.





1. Kestade ajalugu

Alates Unixist 1970ndatel oli shelliprogramm nimega V6 kest välja töötanud Ken Thomson. See oli interaktiivne kest ja puudus skriptimisvõime.





Sellele järgnes Bourne Shell 1977. aastal ja on tänapäeval kasutusel juur konto. See kest lisas skriptimisvõimeid, mis on aastate jooksul praktikas äärmiselt kasulikuks osutunud.

Koore edasiarendamine 1980ndatel tõi kaasa palju populaarseid kestavariante, millest populaarseimad olid C-kest ja Korn Shell . Igal neist kestadest oli oma süntaks, mis teatud juhtudel erines drastiliselt algsest kestast.



Tänapäeval on üks populaarsemaid kestasid Bash Shell . Bash tähistab Bourne-Again-Shell ja see on algse Bourne Shelli tunduvalt täiustatud variant.

kuidas maci sisse suumida

Selles artiklis kirjeldame shelli skripte Bash Shell .





2. Shelli skripti täitmine

Kuidas shellskripti käivitada? Lihtne. Lihtsalt edastage skripti tee kestana argumendina:

Kestskripti näidis:





echo 'hello world'

Käivitage see järgmiselt.

$ bash hello.sh
# prints
hello world

Märge: Kest nõuab ridade lõpetamist LF-tähemärkidega (Line-Feed). Kui kirjutate oma shelliskripti Windowsis ja proovite seda otse Linuxi süsteemis käivitada, võib teil tekkida vigu. Windows kasutab liini lõpetamiseks CR-LF kombinatsiooni (Carriage-Return-Line-Feed). See tuleb muuta ainult LF -iks. Kontrollige oma Windowsi redigeerijast, kuidas seda teha.

On veel üks viis shelliskripti käivitamiseks otse käsuna. Sisestage järgmine rida ( hashbang deklaratsioon) teie shelliskripti esimeseks reaks.

kuidas teisendada jpg vektoriks
#!/bin/bash

Selle muudatusega on meie lihtne shelliskript nüüd järgmine:

#!/bin/bash
echo 'hello world'

Nüüd peate skriptifaili käivitatavaks muutma järgmiselt.

$ chmod +x hello.sh

Siinkohal saate skriptifaili otse käivitada, ilma et peaksite selgesõnaliselt viitama kestale.

$ hello.sh
# prints
hello world

Vaatame nüüd shelliskriptide kasutamise mõningaid eeliseid.

3. Ülesannete automatiseerimine

Koopaskriptide kasutamise esimene eelis on sageli täidetud ülesannete automatiseerimine. Oletame, et teil on ülesanne, mida peate iga päev täitma. Kui peate oma Linuxi süsteemis iga päev täitma mitmeid käske, saate need käsud faili salvestada ja skripti käivitada. Näiteks:

  • Arhiivige ja laadige iga päev üles fail või kaust a pilvesalvestusruum nagu S3.
  • Tihendage logifailid, mis kipuvad iga päev kasvama.
  • Hankige aktsiahinnad, sõeluge saadud andmed ja käivitage e -kiri või SMS, kui teatud tingimused on täidetud (liiga kõrged või liiga madalad hinnad).

4. Mitme käsu kombineerimine

Lisaks sagedaste ülesannete automatiseerimisele võib teile kasulikuks osutuda ka see, et saate kombineerida mitu käsujada üheks käsuks. Ühe käsu meeldejätmine on palju lihtsam kui mitu käsku, rääkimata nende täitmise järjekorrast.

Näitena võiks tuua Linuxi operatsioonisüsteemi enda alglaadimisjärjestuse. Alglaadimise osana täidab OS mitmeid käske, et saada süsteem õigesse olekusse. Need käsud on tegelikult shelliskriptid, mis elavad /jne kataloogi. Kui vaatate ühte neist shelliskriptidest, saate aru süsteemi käivitamise keerukusest, mida oleksite pidanud käsitsi teostama, kui poleks skripte.

Järgmine on shelliskripti näidis, /etc/profile , mis käivitatakse iga kord, kui kasutaja sisse logib. Kujutage ette, et sisestate need käsud käsitsi!

# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).
if [ '$PS1' ]; then
if [ '$BASH' ] && [ '$BASH' != '/bin/sh' ]; then
# The file bash.bashrc already sets the default PS1.
# PS1='h:w$ '
if [ -f /etc/bash.bashrc ]; then
. /etc/bash.bashrc
fi
else
if [ '`id -u`' -eq 0 ]; then
PS1='# '
else
PS1='$ '
fi
fi
fi
# The default umask is now handled by pam_umask.
# See pam_umask(8) and /etc/login.defs.
if [ -d /etc/profile.d ]; then
for i in /etc/profile.d/*.sh; do
if [ -r $i ]; then
. $i
fi
done
unset i
fi

5. Lihtsam arendada

C/C ++ -ga kirjutatud tavalises programmis on võimalik teha samu toiminguid nagu shelliskript. Siiski on shelliskripti kirjutamine ja silumine palju lihtsam kui C/C ++ programm. Eriti süsteemihaldusülesannete jaoks, mis hõlmavad väliste käskude täitmist, failide ja kataloogide loomist ja eemaldamist, väljundi ümbersuunamist jne.

C/C ++ programmid on paremad palju madalama toimimistaseme jaoks, näiteks süsteemikõnede käivitamine, andmestruktuuridega manipuleerimine jne.

6. Läbipaistvus

Kesta skripti saab tekstifailina hõlpsasti vaadata, et näha, milliseid toiminguid see teeb. Seevastu ainus viis, kuidas saate kunagi teada, mida programm, mis on kirjutatud sellises keeles nagu C/C ++ (ja mis on koostatud käivitatavaks failiks), on see, kui ta otsustab teile seda öelda või kui teil on juurdepääs lähtekoodile. Näiteks saate kontrollida, kas shelliskript kustutab faile, ja kui neid faile vajate, saate need kopeerida teise kohta.

Samuti on palju lihtsam diagnoosida probleeme skriptidega, mitte tavaprogrammidega, kuna saate vaadata lähtekoodi. Kas see skript ebaõnnestub, kuna kataloogi pole olemas? Saate vaadata skripti koodi ja luua kataloogi (kuigi hästi käituv shelliskript peaks selliste vigade vältimiseks selle kontrollima ja looma).

7. Kaasaskantav

TO kesta skript saab üle kanda teistesse Unixi ja Unixi sarnastesse operatsioonisüsteemidesse ning käivitada (kui kest ise on olemas). Isegi kestaskripti ülekandmisel erinevatest arhitektuuridest, nagu x86, MIPS, Sparc jne, on shelliskriptid palju kaasaskantavamad kui C/C ++ programmid.

Ainus viis C/C ++ programmi teisaldamiseks ja kasutamiseks teises süsteemis on lähtekoodi kopeerimine, programmi koostamine ja selle käivitamine. Isegi siis ei pruugi see arhitektuuripõhise koodi kasutamisel ootuspäraselt töötada.

Nüüd, kui teil on idee, mis on shelliskriptid ja nende paljud eelised, kas te ei tahaks neid oma ülesannete jaoks kasutada? Milliste probleemidega olete nende kasutamisel kokku puutunud? Palun andke meile sellest allpool kommentaarides teada.

wpa psk tkip wpa2 psk aes
Jaga Jaga Piiksuma E -post 5 näpunäidet VirtualBox Linuxi masinate ülelaadimiseks

Kas olete väsinud virtuaalmasinate halvast jõudlusest? Siin on, mida peaksite tegema oma VirtualBoxi jõudluse suurendamiseks.

Loe edasi
Seotud teemad
  • Programmeerimine
  • Linux Bash Shell
Autori kohta Jay Sridhar(17 artiklit avaldatud) Veel Jay Sridharilt

Telli meie uudiskiri

Liituge meie uudiskirjaga, et saada tehnilisi näpunäiteid, ülevaateid, tasuta e -raamatuid ja eksklusiivseid pakkumisi!

Tellimiseks klõpsake siin