Kas ir Shell skripti un kāpēc jums tas jāizmanto

Kas ir Shell skripti un kāpēc jums tas jāizmanto

Apvalks ir programma Linux vai Unix operētājsistēmā, kas ļauj ievadīt komandas sistēmas izpildei. Kad Linux datorā tiek atvērts termināļa logs, tas palaiž čaulas programmu, kas parāda saskarni komandu ievadīšanai. Šī saskarne ir pazīstama kā komandrindas saskarne. Kad komanda tiek ievadīta, to izpilda apvalks, un izvade tiek parādīta ekrānā.





Papildus iespējai interaktīvi pieņemt un izpildīt komandas, apvalks var izpildīt arī failā saglabātās komandas. Šis izpildes veids ir pazīstams kā čaulas skripti , un šajā rakstā mēs aplūkojam čaulas skriptu veidošanas pamatus.





1. Čaulas vēsture

Sākot ar Unix 1970. gados, bija čaulas programma ar nosaukumu V6 apvalks izstrādājis Kens Tomsons. Tas bija interaktīvs apvalks, un tam trūka skriptu rakstīšanas spējas.





Tam sekoja Bourne Shell 1977. gadā un joprojām tiek izmantots kā noklusējuma apvalks sakne konts. Šis apvalks papildināja skriptu rakstīšanas spējas, kas gadu gaitā ir izrādījusies ārkārtīgi noderīga praksē.

Korpusa tālāka attīstība astoņdesmitajos gados radīja daudzus populārus čaulas variantus, no kuriem populārākie bija C-Shell un Korn Shell . Katram no šiem apvalkiem bija sava sintakse, kas dažos gadījumos krasi atšķīrās no sākotnējā apvalka.



Viens no populārākajiem apvalkiem mūsdienās ir Bash Shell . Bash nozīmē Bourne-Again-Shell un tas ir ievērojami uzlabots sākotnējā Bourne Shell variants.

iphone 12 pro max vs pro

Šajā rakstā mēs aprakstām čaulas skriptus Bash Shell .





2. Shell skripta izpilde

Kā izpildīt čaulas skriptu? Vienkārši. Vienkārši nododiet skripta ceļu kā argumentu apvalkam:

Čaulas skripta paraugs:





echo 'hello world'

Palaidiet to šādi:

$ bash hello.sh
# prints
hello world

Piezīme: Apvalks pieprasa, lai līnijas tiktu pārtrauktas ar LF rakstzīmēm (Line-Feed). Ja rakstāt čaulas skriptu operētājsistēmā Windows un mēģināt to izpildīt tieši Linux sistēmā, var rasties kļūdas. Windows izmanto CR-LF kombināciju (Carriage-Return-Line-Feed) līnijas pārtraukšanai. Tas ir jāpārvērš tikai LF. Lai uzzinātu, kā to izdarīt, pārbaudiet Windows redaktoru.

Ir vēl viens veids, kā izpildīt čaulas skriptu tieši kā komandu. Ievietojiet šādu rindu ( hashbang deklarāciju) kā čaulas skripta pirmo rindu.

kā vadīt kabeli ar galdu
#!/bin/bash

Ar šīm izmaiņām mūsu vienkāršais apvalka skripts tagad ir šāds:

#!/bin/bash
echo 'hello world'

Tagad jums ir jāpadara skripta fails izpildāms šādi:

$ chmod +x hello.sh

Šajā brīdī jūs varat izpildīt skripta failu tieši, nenorādot uz čaulu.

$ hello.sh
# prints
hello world

Tagad apskatīsim dažas čaulas skriptu izmantošanas priekšrocības.

3. Uzdevumu automatizācija

Pirmā čaulas skriptu izmantošanas priekšrocība ir bieži izpildīto uzdevumu automatizācija. Pieņemsim, ka jums ir uzdevums, kas jums jāveic katru dienu. Ja jums katru dienu Linux sistēmā ir jāizpilda vairākas komandas, varat šīs komandas saglabāt failā un palaist skriptu. Piemēri:

  • Arhivējiet un katru dienu augšupielādējiet failu vai mapi a mākoņu krātuve piemēram, S3.
  • Saspiest žurnāla failus, kuriem ir tendence pieaugt katru dienu.
  • Iegūstiet akciju cenas, parsējiet iegūtos datus un aktivizējiet e -pastu vai SMS, ja ir izpildīti noteikti nosacījumi (pārāk augstas vai pārāk zemas cenas).

4. Vairāku komandu apvienošana

Papildus biežu uzdevumu automatizēšanai jums varētu būt izdevīgi arī apvienot vairākas komandu secības vienā komandā. Atcerēties vienu komandu ir daudz vienkāršāk nekā vairākas komandas, nemaz nerunājot par to izpildes secību.

Kā piemēru var minēt pašas Linux operētājsistēmas sāknēšanas secību. Sāknēšanas laikā OS izpilda vairākas komandas, lai sistēma nonāktu pareizā stāvoklī. Šīs komandas faktiski ir čaulas skripti, kas dzīvo zem /utt direktoriju. Apskatot kādu no šiem čaulas skriptiem, jūs sapratīsit sistēmas palaišanas sarežģītību, kas, iespējams, bija jāveic ar roku, ja nav čaulas skriptu.

Tālāk ir čaulas skripta paraugs, /etc/profile , kas tiek izpildīts katru reizi, kad lietotājs piesakās. Iedomājieties, ka šīs komandas jāievada ar roku!

# /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. Vieglāk attīstīt

Parastā programmā, kas rakstīta C/C ++, ir iespējams veikt tādas pašas darbības kā čaulas skripts. Tomēr ir daudz vieglāk rakstīt un atkļūdot čaulas skriptu nekā C/C ++ programmu. Īpaši sistēmas administrēšanas uzdevumiem, kas ietver ārēju komandu izpildi, failu un direktoriju izveidi un noņemšanu, izvades novirzīšanu utt.

C/C ++ programmas ir labākas daudz zemākam darbības līmenim, piemēram, izsaukt sistēmas zvanus, manipulēt ar datu struktūrām utt.

6. Pārredzamība

Apvalka skriptu, jo tas ir teksta fails, var viegli apskatīt, lai pārbaudītu, kādas darbības tas veic. Turpretī vienīgais veids, kā jūs kādreiz uzzināsit, ko dara programma, kas rakstīta valodā, piemēram, C/C ++ (un apkopota izpildāmā failā), ir tā, ja tā izvēlas jums pastāstīt vai ja jums ir piekļuve avota kodam. Piemēram, varat pārbaudīt, vai čaulas skripts izdzēš failus, un, ja jums šie faili ir nepieciešami, varat tos kopēt uz citu vietu.

Ir arī daudz vieglāk diagnosticēt problēmas ar čaulas skriptiem, nevis parastajām programmām, jo ​​varat apskatīt avota kodu. Vai šis skripts neizdodas, jo direktorija neeksistē? Varat ieskatīties skripta kodā un izveidot direktoriju (lai gan labi izturēts čaulas skripts būtu jāpārbauda un jāizveido, lai izvairītos no šādām kļūdām).

7. Pārnēsājams

TO čaulas skripts var pārsūtīt uz citām Unix un Unix līdzīgām operētājsistēmām un izpildīt (ja ir pats apvalks). Pat pārsūtot čaulas skriptu no dažādām arhitektūrām, piemēram, x86, MIPS, Sparc utt., Čaulas skripti ir daudz pārnēsājami nekā C/C ++ programmas.

Vienīgais veids, kā C/C ++ programmu var pārsūtīt un izmantot citā sistēmā, ir kopēt avota kodu, izveidot programmu un mēģināt to palaist. Pat tad tas var nedarboties, kā paredzēts, ja tas izmanto arhitektūrai specifisku kodu.

Tagad, kad jums ir ideja, kas ir čaulas skripti un to daudzās priekšrocības, vai jūs nevēlaties tos izmantot saviem uzdevumiem? Ar kādām problēmām esat saskāries, tos lietojot? Lūdzu, informējiet mūs zemāk esošajos komentāros.

vai policija var izlasīt izdzēstās īsziņas
Kopīgot Kopīgot Čivināt E -pasts 5 padomi, kā uzlādēt VirtualBox Linux iekārtas

Vai esat noguris no virtuālo mašīnu piedāvātās sliktās veiktspējas? Lūk, kas jums jādara, lai uzlabotu VirtualBox veiktspēju.

Lasīt Tālāk
Saistītās tēmas
  • Programmēšana
  • Linux Bash Shell
Par autoru Džejs Šridhars(Publicēti 17 raksti) Vairāk no Jay Sridhar

Abonējiet mūsu biļetenu

Pievienojieties mūsu informatīvajam izdevumam, lai iegūtu tehniskus padomus, pārskatus, bezmaksas e -grāmatas un ekskluzīvus piedāvājumus!

Noklikšķiniet šeit, lai abonētu