Vad är Shell Scripting och varför du ska använda det

Vad är Shell Scripting och varför du ska använda det

Skalet är ett program i ett Linux- eller Unix -operativsystem som låter dig ange kommandon för körning av systemet. När ett terminalfönster öppnas på en Linux -dator startar det skalprogrammet som presenterar ett gränssnitt för att ange kommandon. Detta gränssnitt är känt som kommandoradsgränssnittet. När ett kommando matas in, körs det av skalet och utmatningen visas på skärmen.





Förutom att kunna acceptera och utföra kommandon interaktivt kan skalet också utföra kommandon som lagras i en fil. Detta utförandesätt är känt som skalskript , och i den här artikeln täcker vi grunderna för skalskript.





1. Skallens historia

Från och med Unix på 1970 -talet fanns det ett skalprogram som heter V6 skal utvecklad av Ken Thomson. Det var ett interaktivt skal och saknade skriptförmåga.





Det följdes av Bourne Shell 1977 och används fortfarande som standardskal för rot konto. Detta skal lade till skriptförmågor som har visat sig vara mycket användbara i praktiken genom åren.

Ytterligare utveckling av skalet på 1980 -talet gav upphov till många populära skalvarianter, varav de mest populära var C-skal och den Korn Shell . Var och en av dessa skal gav sin egen syntax som i vissa fall var drastiskt annorlunda än det ursprungliga skalet.



Ett av de mest populära skalen idag är Bash Shell . Bash står för Bourne-Again-Shell och är en mycket förbättrad variant av den ursprungliga Bourne Shell.

hur man får wifi utan internet

I den här artikeln beskriver vi skalskript för Bash -skalet .





2. Exekvering av ett Shell Script

Hur kör du ett skalskript? Enkel. Bara skicka sökvägen som ett argument till skalet:

Ett exempel på skalskript:





echo 'hello world'

Kör det enligt följande:

$ bash hello.sh
# prints
hello world

Notera: Skalet kräver att rader avslutas med LF-tecken (Line-Feed). Om du skriver ditt skalskript på Windows och försöker köra det direkt på ett Linux -system kan du stöta på fel. Windows använder CR-LF-kombinationen (Carriage-Return-Line-Feed) för linjeavslutning. Detta behöver bara konverteras till LF. Kontrollera hur du gör detta i din Windows -editor.

Det finns ett annat sätt att köra ett skalskript direkt som ett kommando. Sätt in följande rad ( hashbang deklaration) som den första raden i ditt skalskript.

när jag ansluter min telefon till datorn händer ingenting
#!/bin/bash

Med denna förändring är vårt enkla skalskript nu:

#!/bin/bash
echo 'hello world'

Nu måste du göra skriptfilen körbar enligt följande:

$ chmod +x hello.sh

Vid denna tidpunkt kan du köra skriptfilen direkt utan att behöva referera till skalet uttryckligen.

$ hello.sh
# prints
hello world

Låt oss nu titta på några fördelar med att använda skalskript.

3. Uppgiftsautomation

Den första fördelen med att använda skalskript är att automatisera ofta utförda uppgifter. Antag att du har en uppgift som du behöver utföra varje dag. Om du behöver utföra flera kommandon på ditt Linux -system varje dag kan du lagra dessa kommandon i en fil och köra skriptet. Exempel inkluderar:

  • Arkivera och ladda upp en fil eller mapp varje dag till en molnlagring som S3.
  • Komprimera loggfiler som tenderar att växa varje dag.
  • Hämta aktiekurser, analysera de hämtade uppgifterna och utlösa ett e -postmeddelande eller SMS när vissa villkor är uppfyllda (för höga eller för låga priser).

4. Kombinera flera kommandon

Förutom att automatisera frekventa uppgifter kan det också vara fördelaktigt att du kan kombinera flera kommandosekvenser till ett enda kommando. Att komma ihåg ett enda kommando är mycket enklare än flera kommandon, för att inte tala om i vilken ordning de måste köras.

Ett exempel skulle vara uppstartssekvensen för själva Linux-operativsystemet. Som en del av uppstarten utför operativsystemet ett antal kommandon för att få systemet till ett korrekt tillstånd. Dessa kommandon är faktiskt skalskript som lever under /etc katalog. Om du tittar på ett av dessa skalskript kommer du att inse komplexiteten i att starta upp ett system, som du kanske skulle behöva utföra för hand i avsaknad av skalskript.

Följande är ett exempelskalskript, /etc/profile , som körs varje gång en användare loggar in. Tänk dig att skriva in dessa kommandon för hand!

# /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. Lättare att utveckla

Det är möjligt att utföra samma åtgärder som ett skalskript i ett vanligt program skrivet i C/C ++. Det är dock mycket lättare att skriva och felsöka ett skalskript än ett C/C ++ - program. Speciellt för systemadministrationsuppgifter som inkluderar exekvering av externa kommandon, skapa och ta bort filer och kataloger, omdirigera utdata, etc.

C/C ++ - program är bättre för en mycket lägre driftsnivå, till exempel att anropa systemanrop, manipulera datastrukturer, etc.

6. Öppenhet

Ett skalskript, i kraft av att det är en textfil, kan enkelt ses för att kolla vilka åtgärder det utför. Däremot är det enda sättet du någonsin kommer att veta vad ett program skrivet på ett språk som C/C ++ (och sammanställt till en körbar) gör om det väljer att berätta för dig eller om du har tillgång till källkoden. Till exempel kan du kontrollera om ett skalskript raderar några filer, och om du behöver dessa filer kan du kopiera dem till en annan plats.

Det är också mycket lättare att diagnostisera problem med skalskript snarare än vanliga program eftersom du kan titta på källkoden. Misslyckas det manuset eftersom det inte finns en katalog? Du kan titta i skriptkoden och skapa katalogen (även om ett välskött skalskript bör kontrollera och skapa det för att undvika sådana fel).

7. Bärbar

TILL skalskript kan överföras till andra Unix och Unix-liknande operativsystem och köras (om själva skalet finns). Även vid överföring av ett skalskript från olika arkitekturer som x86, MIPS, Sparc, etc. är skalskript mycket mer bärbara än C/C ++ - program.

Det enda sättet ett C/C ++ - program kan överföras och användas på ett annat system är att kopiera källkoden, bygga programmet och försöka köra det. Även då kanske det inte fungerar som förväntat om det använder arkitekturspecifik kod.

Nu när du har en idé om vad skalskript är och deras många fördelar, skulle du inte vilja använda dem för dina uppgifter? Vilka problem har du mött när du använder dem? Meddela oss i kommentarerna nedan.

hur man hindrar telefonen från att lyssna
Dela med sig Dela med sig Tweet E-post 5 tips för att ladda dina VirtualBox Linux -maskiner

Trött på den dåliga prestanda som erbjuds av virtuella maskiner? Här är vad du bör göra för att öka din VirtualBox -prestanda.

Läs Nästa
Relaterade ämnen
  • Programmering
  • Linux Bash Shell
Om författaren Jay Sridhar(17 artiklar publicerade) Mer från Jay Sridhar

Prenumerera på vårt nyhetsbrev

Gå med i vårt nyhetsbrev för tekniska tips, recensioner, gratis e -böcker och exklusiva erbjudanden!

Klicka här för att prenumerera