Shell-scripting i Linux - Computere generelt forstår sproget i 0'ere og 1'er, der er kendt som et binært sprog. For årtier siden brugte folk til at skrive programmer og applikationer som endda regnemaskiner på binære sprog. Men det var ikke smukt. Tænk engang! Du vil beregne 73 + 96, hvordan ville du skrive? Du skal hellere beregne det binære heltal for 73 og 96 og derefter tilføje dem. En person skal være temmelig dum for at gøre det. Man vil hellere beregne 73 og 96 på et papir og gå videre. Men det er for den mindre del. Hvad hvis du skal beregne noget lignende (19273/23 * (2967 3)). Jeg vil sige nu, at dette er temmelig intenst.
Så en indeal mand, der lærer at kode alt i binært sprog, giver ikke mening. Det er hovedårsagen til, at computere ikke var populære i 70'erne og 80'erne. Men senere, selv før Windows blev udviklet, begyndte folk at udvikle kerner og lignende ting, som var kernedelen i operativsystemet. Kernerne bruges til at forstå menneskeligt læsbart format af et specifikt program og konverterer det derefter til maskinkode. Og det var her programmeringssprogene dukkede op og ændrede hele æraen i computerverdenen. Programmer blev bygget i C og C ++ og senere med Java, Python, Ruby og Perl.
I øjeblikket er der mere end 50 programmeringssprog rundt omkring. Og det er mindst dem, jeg kender til. For ikke at sige, at der er andre programmeringssprog, som er endnu sværere at forstå end maskinkode. Mit punkt er eksempler som kyllingprogrammering og Malbolge. De er nogle alvorlige grimme ting at håndtere.
Shell-programmering… .errr… scripting?
Nu undrer du dig måske over, hvorfor jeg ikke har nævnt Shell-programmering ovenfor sammen med de andre programmeringssprog. Hovedårsagen til, at Shell i sig selv er ikke et programmeringssprog. Det er et scriptingsprog. Shell er bare et interaktivt program, der fortolker ethvert input fra brugeren og giver resultatet, forudsat at kommandoen er gyldig. Derefter overføres programmet til kernen for at udføre det. Shell er ikke en del af Kernel, men i stedet bruger den kernen til at udføre sit job med at udføre og oprette filer.
Typer af Shell-scripting-program
I modsætning til C, C ++ eller Java er der flere andre typer skaller, der kan bruges til Shell-scripting. Følgende er de fire typer skal tilgængelige indtil dato:
Ingen. | Shell Type | Beskrivelse |
1. | Bash alias Bourne Again Shell | Dette er den mest almindelige shell tilgængelig på alle Linux- og debian-baserede systemer. Det er open source og freeware. |
2. | CSH eller C Shell | Dette Shell-scriptingprogram bruger C-programmeringens shell-syntaks og det er næsten ligesom C. |
3. | KSH eller Korn Shell | Korn er et Unix-baseret Shell-scripting-program, oprindeligt baseret på Bash Shell-scripting. Denne skal er ganske avanceret og det er et programmeringssprog på højt niveau. |
4. | tcsh | Der er ingen specifik fuldformat af TCSH. Det er som det er. TCSH er en avanceret version af Berkeley Unix C shell. Det understøtter igen syntaks i C-stil |
Hvad angår i dag, er vi ikke interesseret i alle ovenstående skaller her. Vi er kun interesseret i Bash-shell, da det er det mest almindeligt anvendte shell i verden i dag.
The Bash Shell
Bash Shell-scriptingsprogrammet er et scriptingsprog på højt niveau, der ligner det i python. Men hvis du har nogen erfaring med Python før, vil du faktisk opdage, at Bash Shell-scripting er langt lettere end noget andet scriptingsprog. Man kan skrive scripts i bash meget hurtigere end i C, C ++, Java eller Python. Standardterminalen i dagens mest Linux-miljø, sig for eksempel: - Ubuntu, Linux Mint Cinnamon / Rafaela, Fedora, Arch Linux eller ethvert andet debian-miljø består af Bash som standard Shell. Du kan dog kontrollere alle shell-miljøer, der findes i dit system, ved at skrive følgende i standardterminalen: -
$ kat / etc / skaller |
(Bemærk: Dollartegnet i starten bruges til at identificere en terminal.)
'Kat' syntaks bruges til at læse tekstfiler. Typerne af shell-scripting-programmer i et Linux-, Unix- eller Debian-miljø gemmes i shell- filen i etc- biblioteket. Hver skal har sit eget unikke sæt syntakser og deres eget sæt indbyggede funktioner. DOS eller windows har også deres egen skal kaldet den berygtede 'kommandoprompt' eller 'powershell' fra windows 8.1 og fremefter, men det er stadig ikke så magtfuldt som bash. Kattsyntaxen giver dig listen over skaller, der er tilgængelige på systemet, men for at finde standardskallen eller for at kontrollere den aktuelle ved hjælp af shell, kan man bruge følgende syntaks i Shell Scripting Terminal: -
$ ekko $ SHELL |
Synkronen 'ekko' bruges til at udskrive enhver erklæring. Her er 'SHELL' en variabel, der er tildelt til at udskrive den aktuelle skal. Dollartegnet efter 'ekko' bruges til at repræsentere en variabel i Shell Scripting.
Anbefalede kurser
- Certifikationskursus i Java-dvaletilstand
- Java Spring Course
- WordPress Online træning
- Ruby Training
Shell-scripting
Så nu ved du, hvad et shell er, lad os se på Shell Scripting, og hvorfor det er kendt som det. Shell Scripting er intet andet end en kommandoserie i en simpelt tekstfil, der slutter med en udvidelse '.sh'. '.Sh' bestemmer, at det er en shell-eksekverbar fil. Efter at have skrevet et shell-script, skulle man ændre den eksekverbare tilladelse ved hjælp af 'chmod-funktionen'. Som standard kan enhver nyoprettet shell ikke eksekveres i UNIX eller Linux-miljøet, medmindre tilladelserne ændres specifikt. Shell Scripting ligner næsten det med Batch-programmering fra Windows, men forskellen er, at Shell Scripting er temmelig mere magtfuld og giver meget mere avanceret interaktivt miljø sammen med fanebladet. Man skal gøre brug af en god teksteditor for at skrive et shell-script. Få bedre, som jeg kender til, er Vim, Gedit og Leafpad.
I modsætning til andre programmeringssprog er Shell-scripts hurtigere at skrive og udføre. Du behøver ikke at downloade specifikke bundter eller afhængigheder for at udføre. De kan ikke kun bruges af en systemadministrator, men også af bare en normal person til at udføre automatiserede scripts på daglig basis. Følgende er et simpelt eksempel på et script skrevet her.
#! / bin / bash echo -e “Velkommen til det første shell-program. \ n” echo -e “Skriv noget her, og dette program vil udskrive det samme. \ n” #spørg brugeren til input read input # læser input fra brugerekko “Du indtastet: $ input ” exit 0 |
Lad mig nu forklare alle parametrene i ovenstående kode. Skriv først ovenstående kode i en tekstfil i formatet 'som det er' og gem det med en udvidelse, der slutter med '.sh'. Navngiv f.eks. Filen som 'main_program.sh'. Sørg for, at det ikke er 'main_program.sh.txt'. De fleste begyndere har en tendens til at gøre det samme, og så er det ikke eksekverbart. Når ovenstående kode er kopieret, skal du ændre dens tilladelser ved hjælp af følgende syntaks i terminalen: -
$ chmod + x main_program.sh ELLER $ chmod 755 main_program.sh |
Brug gerne en af ovenstående kommandoer, da begge gør det samme. I de moderne bash shell-scriptprogrammer ændres '755' til '+ x'; så det betyder ikke noget, du bruger faktisk. Når du har ændret tilladelserne, skal du indtaste følgende for at udføre det.
$. / main_program.sh |
Perioden og skråstreg bruges til at identificere og udføre shell-scripts. Når du har udført ovenstående script, udskrives det den første ekkoerklæring og derefter beder dig om at indtaste noget. Når du har indtastet den, udskriver den den samme ting tilbage til dig og afslutter tolken. Så lad mig forklare alle syntakserne ovenfor. '#! / Bin / bash' bruges til at fortælle tolken, at dette er et bash-script, og Bash shell-scripting-programmet er placeret i 'bin' -mappen. 'Echo' -kommandoen bruges til at udskrive en hvilken som helst sætning, og '-e' -flaget bruges til at indikere skallen, at der enten vil være en ny linje identificeret som en 'skråstreg n eller \ n' eller en fane-skråstreg t eller \ t 'eller lignende i den gentagne erklæring. Hash-delen på den anden linje bruges til at identificere en kommentar i et bash-script. Uanset hvad du skriver efter hash bliver kommenteret og vil ikke blive henrettet. Men dette gælder ikke for '#! / Bin / bash' på den første linje. Sådan er scriptet beregnet til at arbejde. Syntaks 'læst' bruges til at læse ethvert input fra brugeren. Og 'input', som jeg har nævnt efter 'læst' syntaks, er den variabel, hvor input fra brugeren er gemt. Man kan bruge en hvilken som helst variabel i stedet for input. På den anden sidste linje bruges $ -indgangen til at identificere sig selv som en variabel og udsende det gemte input inden i det. Endelig bruges exit-kommandoen til at forlade tolken med en ren exit-nul.
Uinteraktiv scripting
Nu er ovenstående eksempel bare ganske let. Men der er indbyggede moduler, som du kan bruge i stedet for at give alle input selv. Følgende er et stykke kode, der udskriver det brugernavn, der i øjeblikket er logget ind, det aktuelle klokkeslæt, kalenderdato og antallet af logins så godt:
#! / bin / bash # Dette script udskriver den aktuelle loggede brugerinfo, antallet af brugere der er logget ind, dato, klokkeslæt og kalender echo "Hej, $ USER" echo "Dagens dato og klokkeslæt er` dato '" echo" Antal brugere logget ind: `hvem | wc-l` ”
ekko "Kalender" cal Afslut 0 |
Udfør dette script efter at have ændret tilladelserne til filen ovenfor. Nu kan du undre dig over, at vi faktisk indtastede input i det forrige script, og derefter returnerede det input ved hjælp af variablen. Men her har vi ikke leveret noget input i variablen '$ USER', så hvordan kommer det til at udskrive den nøjagtige bruger. Den vigtigste årsag er, at disse ting allerede er konfigureret i systemet. Husker jeg fortalte dig om $ SHELL tidligere i starten med hensyn til, hvordan det defineres som standard? Ja, lignende er tilfældet med $ USER her. Med hensyn til datoen, hvis du bare indtaster 'dato' uden nogen anførselstegn i terminalen, udskriver den den nøjagtige dato og tid. Jeg har lige brugt et enkelt citat (`) til at identificere sig selv som en syntaks snarere end en del af gentagne udsagn. Det enkelte citat (`) udfører enhver syntaks, der er trykt inde i det, det være sig i en erklæring eller andre steder. Med hensyn til antallet af brugerdele bruges kommandoen 'hvem' til at kontrollere de aktuelle brugere, der er logget ind sammen med de indlogerede processer og dato og klokkeslæt, hvornår det startede. Men hvad angår den ovennævnte kommando, afkortede jeg den faktisk for bare at udskrive antallet af brugere, der er logget det ved hjælp af kommandoen 'wc-l'. Stangen (|) eller hvad det populært kaldes pipe bruges til at kombinere to kommandoer. Røret står faktisk for meget mere end det, men jeg vil ikke gå i detaljer her. Og til sidst trykte jeg kalenderen ved hjælp af kommandoen 'cal', der er indbygget til udskrivning af den aktuelle dato i kalenderen.
Udgangen nul
Exit Zero er noget, som jeg ikke har forklaret i nogen af de ovenstående skrevne programmer. Den vigtigste årsag til at være 'Exit Zero' har meget mere tyngde over for det end nogen af syntakserne ovenfor i Shell Scripting. Hver gang du udfører et script i en Linux- eller Unix-distribution returnerer det som standard to typer værdier eller mere specifikt exit-status for at kontrollere, om udførelsen af shell-scriptet er vellykket eller ej. Hvis det returnerer værdien som Nul, var udførelsen vellykket, ellers blev den enten ikke udført, eller der var en fejl under udførelsen. Således indtastning i 'exit 0' i slutningen af ethvert script kontrollerer scriptets eksekveringsstatus.
Alle de ting, jeg har dækket her, er bare den mindst basale del af Shell-scriptingen i linux-distributionen. Udgangs-nuldelen og røret spiller en vigtig rolle, når du udfører flere shell-scripting i linux-kommandoer og bruger den sammen med de betingede, hvis og ellers udsagn.
Relaterede artikler:-
Her er nogle artikler, der hjælper dig med at få mere detaljeret om Shell-scripttyper til Linux-newbies, så bare gå gennem linket.
- Spørgsmål om Shell Scripting-interview | Top 10 nyttige spørgsmål
- Linux vs Windows - Find ud af de 9 mest fantastiske forskelle
- Linux Interview spørgsmål og svar | Nyttige og mest stillede
- Karrierer inden for Linux-administration
- Regler og forskrifter for Shell-scriptparametre