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

Hva er Shell Scripting og hvorfor du bør bruke den / programmering

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 shell-programmet som presenterer et grensesnitt for å legge inn kommandoer. Dette grensesnittet kalles kommandolinjegrensesnittet. Når en kommando er oppgitt, blir den utført av skallet og utgangen vises på skjermen.

I tillegg til å kunne akseptere og utføre kommandoer interaktivt, kan skallet også utføre kommandoer lagret i en fil. Denne modusen for utførelse er kjent som shell scripting, og i denne artikkelen dekker vi grunnleggende om shell scripting 5 grunner til at du bør bruke PowerShell i stedet for batch scripting 5 grunner til at du bør bruke PowerShell I stedet for Batch Scripting PowerShell er hva du ville få hvis du krysset kommandoprompt med Batch Scripting, kastet inn noen ekstra funksjoner, og sparket alt opp flere hakk. Her er flere grunner til at du bør prøve det. Les mer .

1. Historien om Shell

Fra begynnelsen med Unix på 1970-tallet var det et skallprogram som heter V6 Shell utviklet av Ken Thomson. Det var et interaktivt skall og manglet skripting evne.

Det ble etterfulgt av Bourne Shell i 1977 og er fortsatt i bruk i dag som standard skall for rot konto. Dette skallet har lagt til skriptevner som har vist seg å være svært nyttige i praksis gjennom årene.

Ytterligere 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 tok sin egen syntaks som i visse tilfeller var drastisk forskjellig fra det originale skallet.

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

I denne artikkelen beskriver vi shell scripting for Bash Shell En rask guide til Linux Bash Shell i Windows 10 En rask guide til Linux Bash Shell i Windows 10 Du kan nå kjøre Linux på Windows. Lær mer om Bash på Windows, fra hvordan og hvorfor du bør installere den, til skjulte funksjoner du sikkert ikke visste om. Les mer .

2. Utfør et Shell-skript

Hvordan utfører du et shell-skript? Enkel. Bare pass skriptbanen som et argument til skallet:

Et eksempel på skalskript:

ekko "hallo verden" 

Kjør det som følger:

$ bash hei.sh # skriver hello verden 

Merk: Skallet krever at linjene skal termineres av LF-tegn (Line-Feed). Hvis du skriver shell-skriptet på Windows og prøver å kjøre det direkte på et Linux-system, kan det føre til feil. Windows bruker CR-LF-kombinasjon (Carriage-Return-Line-Feed) for linjeavslutning. Dette må konverteres til LF bare. Sjekk Windows-editoren din for måter å gjøre dette på.

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

#! / Bin / bash 

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

#! / bin / bash echo "hei verden" 

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

$ chmod + x hei.sh 

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

$ hei.sh # skriver hello verden 

La oss nå se på noen fordeler ved å bruke shell-skript. Hva er CGI-skript og hvordan forbedrer de nettsteder? Hva er CGI-skript og hvordan forbedrer de nettsteder? CGI står for Common Gateway Interface. Det er en standard protokoll for webservere å utføre programmer og generere produksjon for nettlesere. Lær alt om CGI-skript og hvordan de kan forbedre nettstedet ditt. Les mer .

3. Oppgaveautomatisering

Den første fordelen ved å bruke shell-skript er å automatisere ofte utførte oppgaver 7 Daglige oppgaver Du visste ikke at du kunne automatisere på få minutter 7 Daglige oppgaver Du visste ikke at du kunne automatisere på få minutter Det er mange ting du kan automatisere nå Det sparer tid og lar deg fokusere på andre ting. Vi gir deg syv ting du kan automatisere akkurat nå med de riktige verktøyene. Les mer . Anta at du har en oppgave som du må utføre hver dag. Hvis du trenger å utføre flere kommandoer på linux-systemet hver dag, kan du lagre disse kommandoene i en fil og kjøre skriptet. Eksempler er:

  • Arkiver og last opp en fil eller mappe hver dag til en skylagringsplass Dropbox vs Google Drive vs. OneDrive: Hvilket Cloud Storage er best for deg? Dropbox vs Google Drive vs OneDrive: Hvilket Cloud Storage er best for deg? Har du forandret måten du tenker på lagring av sky? De populære alternativene til Dropbox, Google Drive og OneDrive har blitt sluttet av andre. Vi hjelper deg med å svare på hvilken sky lagringstjeneste du skal bruke. Les mer som S3.
  • Komprimer loggfiler som pleier å 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 du også finne det fordelaktig at du kan kombinere flere sekvenser av kommandoer i en enkelt kommando. Å huske en enkelt kommando er mye enklere enn flere kommandoer, for ikke å nevne rekkefølgen der de må utføres.

Et eksempel er oppstartssekvensen til Linux-operativsystemet Komme i gang Guide til Linux Komme i gang med Linux En nybegynner Komme i gang Guide til Linux! Du har sikkert hørt om Linux, det frie operativsystemet med åpen kildekode som har presset opp mot Microsoft. Les mer selv. Som en del av oppstart utfører operativsystemet en rekke kommandoer for å få systemet til en riktig tilstand. Disse kommandoene er egentlig shell-skript som lever under /etc katalogen. Hvis du ser på et av disse skalskriptene, vil du innse kompleksiteten ved å starte et system, som du kanskje måtte utføre for hånd i fravær av skalskript.

Følgende er et sample shell script, / Etc / profil, som utføres hver gang en bruker logger på. Tenk deg å skrive inn disse kommandoene for hånd!

# / etc / profile: system-wide .profile-fil for Bourne-skallet (sh (1)) # og Bourne-kompatible skaller (bash (1), ksh (1), aske (1), ...). hvis ["$ PS1"]; så hvis ["$ BASH"] && ["$ BASH"! = "/ bin / sh"]; da # Filen bash.bashrc angir allerede standard PS1. # PS1 = "\ h: \ w \ $" hvis [-f /etc/bash.bashrc]; deretter . /etc/bash.bashrc fi else hvis ["'id -u'" -eq 0]; så PS1 = "#" annet PS1 = "$" fi fi fi # Standard omask håndteres nå av pam_umask. # Se pam_umask (8) og /etc/login.defs. hvis [-d /etc/profile.d]; så for jeg i /etc/profile.d/*.sh; gjør hvis [-r $ i]; deretter . $ Jeg har gjort unset i fi 

5. enklere å utvikle

Det er mulig å utføre de samme handlingene som et shell-skript i et vanlig program som er skrevet i C / C ++. Det er imidlertid langt lettere å skrive og feilsøke et shell-skript 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, osv.

C / C ++-programmer er bedre for et mye lavere operasjonsnivå, for eksempel å anrope systemanrop, manipulere datastrukturer, osv.

6. Gjennomsiktighet

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

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

7. Bærbar

Et skallskript En rask guide til Linux Bash Shell i Windows 10 En rask guide til Linux Bash Shell i Windows 10 Du kan nå kjøre Linux på Windows. Lær mer om Bash på Windows, fra hvordan og hvorfor du bør installere den, til skjulte funksjoner du sikkert ikke visste om. Les mer kan overføres til andre Unix og Unix-lignende operativsystemer og utføres (hvis selve skallet er til stede). Selv når man overfører et shell-skript fra forskjellige arkitekturer som x86, MIPS, Sparc, etc, er shell-skript 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 forsøke å kjøre det. Selv da kan det ikke fungere som forventet hvis det bruker arkitekturspesifikk kode.

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

Utforsk mer om: Linux Bash Shell.