Hvad er Shell Scripting, og hvorfor skal du bruge det

Hvad er Shell Scripting, og hvorfor skal du bruge det

Skallen er et program i et Linux- eller Unix -operativsystem, som giver dig mulighed for at indtaste kommandoer til udførelse af systemet. Når et terminalvindue åbnes på en linux -computer, starter det shell -programmet, der præsenterer en grænseflade til indtastning af kommandoer. Denne grænseflade er kendt som kommandolinjegrænsefladen. Når en kommando indtastes, udføres den af ​​skallen, og output vises på skærmen.





Udover at kunne acceptere og udføre kommandoer interaktivt, kan skallen også udføre kommandoer, der er gemt i en fil. Denne udførelsesform er kendt som shell scripting , og i denne artikel dækker vi det grundlæggende i shell scripting.





1. Skallens historie

Fra og med Unix i 1970'erne var der et shell -program kaldet V6 skal udviklet af Ken Thomson. Det var en interaktiv skal og manglede scripting -evne.





Det blev efterfulgt af Bourne Shell i 1977 og forbliver i brug i dag som standardskal til rod konto. Denne skal tilføjede scripting -evner, som har vist sig at være yderst nyttige i praksis gennem årene.

Yderligere udvikling af skallen i 1980'erne gav anledning til mange populære skalvarianter, hvoraf de mest populære var C-skal og Korn Shell . Hver af disse skaller bragte sin egen syntaks, som i visse tilfælde var drastisk forskellig fra den originale skal.



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

hvor længe holder macbook airs

I denne artikel beskriver vi shell -scripting til Bash Shell .





2. Udførelse af et Shell Script

Hvordan udfører du et shell -script? Enkel. Bare send scriptstien som et argument til skallen:

Et eksempel på shell script:





echo 'hello world'

Kør det som følger:

$ bash hello.sh
# prints
hello world

Bemærk: Skallen kræver, at linjer afsluttes med LF-tegn (Line-Feed). Hvis du skriver dit shell -script på Windows og prøver at udføre det direkte på et Linux -system, kan du støde på fejl. Windows bruger CR-LF-kombination (Carriage-Return-Line-Feed) til linjeafslutning. Dette skal kun konverteres til LF. Tjek din Windows -editor for måder at gøre dette på.

Der er en anden måde at udføre et shell -script direkte som en kommando. Indsæt følgende linje ( hashbang erklæring) som den første linje i dit shell -script.

kan du oplade en bærbar computer med en usb
#!/bin/bash

Med denne ændring er vores simple shell -script nu:

#!/bin/bash
echo 'hello world'

Nu skal du gøre scriptfilen eksekverbar som følger:

$ chmod +x hello.sh

På dette tidspunkt kan du udføre scriptfilen direkte uden at skulle referere til skallen eksplicit.

$ hello.sh
# prints
hello world

Lad os nu se på nogle fordele ved at bruge shell -scripts.

3. Opgaveautomatisering

Den første fordel ved at bruge shell -scripts er automatisering af ofte udførte opgaver. Antag, at du har en opgave, du skal udføre hver dag. Hvis du har brug for at udføre flere kommandoer på dit linux -system hver dag, kan du gemme disse kommandoer i en fil og køre scriptet. Eksempler omfatter:

  • Arkiver og upload en fil eller mappe hver dag til en cloud storage facilitet såsom S3.
  • Komprimer logfiler, der har tendens til at vokse hver dag.
  • Hent aktiekurser, analyser de hentede data, og udløs en e -mail eller SMS, når visse betingelser er opfyldt (for høje eller for lave priser).

4. Kombination af flere kommandoer

Udover at automatisere hyppige opgaver, finder du det måske også fordelagtigt, at du kan kombinere flere sekvenser af kommandoer til en enkelt kommando. At huske en enkelt kommando er meget enklere end flere kommandoer, for ikke at nævne den rækkefølge, de skal udføres i.

Et eksempel ville være opstartssekvensen for selve Linux-operativsystemet. Som en del af opstart udfører operativsystemet en række kommandoer for at få systemet i en korrekt tilstand. Disse kommandoer er faktisk shell -scripts, der lever under /etc vejviser. Hvis du tager et kig på et af disse shell -scripts, vil du indse kompleksiteten ved at starte et system, som du måske skulle have udført i hånden i mangel af shell -scripts.

Følgende er et eksempel på shell -script, /etc/profil , som udføres hver gang en bruger logger ind. Forestil dig at indtaste disse kommandoer i hånden!

# /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 at udvikle

Det er muligt at udføre de samme handlinger som et shell -script inde i et almindeligt program skrevet i C/C ++. Det er dog langt lettere at skrive og fejlsøge et shell -script end et C/C ++ - program. Især til systemadministrationsopgaver, som omfatter udførelse af eksterne kommandoer, oprettelse og fjernelse af filer og mapper, omdirigering af output osv.

C/C ++ - programmer er bedre til et meget lavere driftsniveau, såsom at påkalde systemopkald, manipulere datastrukturer osv.

6. Gennemsigtighed

Et shell -script, i kraft af at være en tekstfil, kan let ses for at tjekke, hvilke handlinger det udfører. Derimod er den eneste måde, du nogensinde vil vide, hvad et program skrevet på et sprog som C/C ++ (og kompileret til en eksekverbar) gør, hvis det vælger at fortælle dig det, eller hvis du har adgang til kildekoden. For eksempel kan du kontrollere, om et shell -script sletter filer, og hvis du har brug for disse filer, kan du kopiere dem til en anden placering.

Det er også meget lettere at diagnosticere problemer med shell -scripts frem for almindelige programmer, da du kan se på kildekoden. Mangler dette script, fordi der ikke findes et bibliotek? Du kan kigge i scriptkoden og oprette biblioteket (selvom et velopdragen shell-script skal kontrollere og oprette det for at undgå sådanne fejl).

7. Bærbar

TIL shell script kan overføres til andre Unix og Unix-lignende operativsystemer og eksekveres (hvis selve skallen er til stede). Selv ved overførsel af et shell -script fra forskellige arkitekturer såsom x86, MIPS, Sparc osv. Er shell -scripts meget mere bærbare end C/C ++ - programmer.

Den eneste måde, et C/C ++ - program kan overføres og bruges på et andet system, er at kopiere kildekoden, bygge programmet og forsøge at køre det. Selv da fungerer det muligvis ikke som forventet, hvis det bruger arkitekturspecifik kode.

Nu hvor du har en idé om, hvad shell scripts er og deres mange fordele, vil du ikke gerne bruge dem til dine opgaver? Hvilke problemer har du stået over for, når du bruger dem? Lad os vide det i kommentarerne herunder.

hvordan man rydder søgehistorik i google app
Del Del Tweet E -mail 5 tips til at overlade dine VirtualBox Linux -maskiner

Træt af den dårlige ydelse, der tilbydes af virtuelle maskiner? Her er hvad du skal gøre for at øge din VirtualBox -ydeevne.

Læs Næste
Relaterede emner
  • Programmering
  • Linux Bash Shell
Om forfatteren Jay Sridhar(17 artikler udgivet) Mere fra Jay Sridhar

Abonner på vores nyhedsbrev

Tilmeld dig vores nyhedsbrev for at få tekniske tips, anmeldelser, gratis e -bøger og eksklusive tilbud!

Klik her for at abonnere