Hva er Shell Scripting og hvorfor du bør bruke det

Hva er Shell Scripting og hvorfor du bør bruke det

Skallet er et program i et Linux- eller Unix -operativsystem som lar deg legge inn kommandoer for utførelse av systemet. Når et terminalvindu åpnes på en linux -datamaskin, starter det skallprogrammet som presenterer et grensesnitt for å legge inn kommandoer. Dette grensesnittet er kjent som kommandolinjegrensesnittet. Når en kommando legges inn, blir den utført av skallet og utgangen vises på skjermen.





I tillegg til å kunne godta og utføre kommandoer interaktivt, kan skallet også utføre kommandoer som er lagret i en fil. Denne utførelsesmåten er kjent som shell scripting , og i denne artikkelen dekker vi det grunnleggende om skallskripting.





1. Skallens historie

Fra og med Unix på 1970 -tallet var det et skallprogram kalt V6 skall utviklet av Ken Thomson. Det var et interaktivt skall og manglet skriptingsevne.





Det ble fulgt av Bourne Shell i 1977 og er fortsatt i bruk i dag som standard skall for rot regnskap. Dette skallet la til scripting -evner som har vist seg ekstremt nyttig i praksis gjennom årene.

Videre utvikling av skallet på 1980 -tallet ga opphav til mange populære skallvarianter, hvorav de mest populære var C-Shell og Korn Shell . Hver av disse skallene brakte sin egen syntaks som i visse tilfeller var drastisk forskjellig fra det opprinnelige skallet.



En av de mest populære skjellene i dag er Bash Shell . Bash står for Bourne-Again-Shell og er en sterkt forbedret variant av den originale Bourne Shell.

Windows 10 starter ikke i sikker modus

I denne artikkelen beskriver vi shell scripting for Bash -skallet .





2. Utføre et Shell Script

Hvordan kjører du et skallskript? Enkel. Bare send skriptbanen som et argument til skallet:

Et eksempel på skallskript:





echo 'hello world'

Kjør det som følger:

$ bash hello.sh
# prints
hello world

Merk: Skallet krever at linjer avsluttes med LF-tegn (Line-Feed). Hvis du skriver skallskriptet ditt på Windows og prøver å utføre det direkte på et Linux -system, kan du støte på feil. Windows bruker CR-LF-kombinasjon (Carriage-Return-Line-Feed) for linjeavslutning. Dette må bare konverteres til LF. Se i Windows -editoren for å finne ut hvordan du gjør dette.

Det er en annen måte å utføre et skallskript direkte som en kommando. Sett inn følgende linje ( hashbang erklæring) som den første linjen i skallskriptet ditt.

Hvis jeg deaktiverer facebook, kan jeg fortsatt bruke messenger
#!/bin/bash

Med denne endringen er vårt enkle skallskript nå:

#!/bin/bash
echo 'hello world'

Nå må du gjøre skriptfilen kjørbar som følger:

$ chmod +x hello.sh

På dette tidspunktet kan du kjøre skriptfilen direkte uten å måtte referere til skallet eksplisitt.

$ hello.sh
# prints
hello world

La oss nå se på noen fordeler ved å bruke skallskript.

3. Oppgaveautomatisering

Den første fordelen med å bruke skallskript er å automatisere ofte utførte oppgaver. Anta at du har en oppgave du må utføre hver dag. Hvis du trenger å utføre flere kommandoer på linux -systemet ditt hver dag, kan du lagre disse kommandoene i en fil og kjøre skriptet. Eksempler inkluderer:

  • Arkiver og last opp en fil eller mappe hver dag til en skylagringsanlegg slik som S3.
  • Komprimer loggfiler som har en tendens til å vokse hver dag.
  • Hent aksjekurser, analyser de hentede dataene, og utløs en e -post eller SMS når visse betingelser er oppfylt (for høye eller for lave priser).

4. Kombinere flere kommandoer

I tillegg til å automatisere hyppige oppgaver, kan det også være en fordel at du kan kombinere flere sekvenser av kommandoer til en enkelt kommando. Å huske en enkelt kommando er mye enklere enn flere kommandoer, for ikke å snakke om rekkefølgen de må utføres i.

Et eksempel kan være oppstartsekvensen til selve Linux-operativsystemet. Som en del av oppstarten utfører operativsystemet en rekke kommandoer for å få systemet i riktig tilstand. Disse kommandoene er faktisk skallskript som lever under /etc katalog. Hvis du tar en titt på et av disse skallskriptene, vil du innse kompleksiteten ved å starte opp et system, som du kanskje måtte utføre for hånd uten mangel på skallskript.

Følgende er et eksempel på skallskript, /etc/profile , som utføres hver gang en bruker logger på. Tenk deg å skrive inn disse kommandoene for hånd!

# /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. Lettere å utvikle

Det er mulig å utføre de samme handlingene som et skallskript inne i et vanlig program skrevet i C/C ++. Imidlertid er det langt lettere å skrive og feilsøke et skallskript enn et C/C ++ - program. Spesielt for systemadministrasjonsoppgaver som inkluderer utførelse av eksterne kommandoer, oppretting og fjerning av filer og kataloger, omdirigering av utdata, etc.

C/C ++ - programmer er bedre for et mye lavere driftsnivå, for eksempel å påkalle systemanrop, manipulere datastrukturer, etc.

6. Åpenhet

Et skallskript, i kraft av å være en tekstfil, kan enkelt sees for å sjekke hvilke handlinger det utfører. Derimot er den eneste måten du noen gang vil vite hva et program skrevet på et språk som C/C ++ (og kompilert til en kjørbar) gjør, hvis det velger å fortelle deg det eller om du har tilgang til kildekoden. For eksempel kan du sjekke om et skallskript sletter filer, og hvis du trenger disse filene, kan du kopiere dem til et annet sted.

Det er også mye lettere å diagnostisere problemer med skallskript i stedet for vanlige programmer siden du kan se på kildekoden. Mislykkes det skriptet fordi det ikke finnes en katalog? Du kan se i skriptkoden og opprette katalogen (selv om et veloppdragen skallskript bør sjekke og opprette det for å unngå slike feil).

7. Bærbar

TIL skallskript kan overføres til andre Unix og Unix-lignende operativsystemer og kjøres (hvis selve skallet er tilstede). Selv når du overfører et skallskript fra forskjellige arkitekturer som x86, MIPS, Sparc, etc., er skallskript mye mer bærbare enn C/C ++ - programmer.

Den eneste måten et C/C ++ - program kan overføres og brukes på et annet system, er å kopiere kildekoden, bygge programmet og prøve å kjøre det. Selv da fungerer det kanskje ikke som forventet hvis det bruker arkitekturspesifikk kode.

Nå som du har en ide om hva shell -skript er og deres mange fordeler, vil du ikke like å bruke dem til oppgavene dine? Hvilke problemer har du møtt når du bruker dem? Gi oss beskjed i kommentarene nedenfor.

hvordan lagre bilder fra pinterest
Dele Dele kvitring E -post 5 tips for å overbelaste VirtualBox Linux -maskinene dine

Lei av den dårlige ytelsen som tilbys av virtuelle maskiner? Her er hva du bør gjøre for å øke VirtualBox -ytelsen.

Les neste
Relaterte temaer
  • Programmering
  • Linux Bash Shell
Om forfatteren Jay Sridhar(17 artikler publisert) Mer fra Jay Sridhar

Abonner på vårt nyhetsbrev

Bli med i vårt nyhetsbrev for tekniske tips, anmeldelser, gratis ebøker og eksklusive tilbud!

Klikk her for å abonnere