4 belangrijke shell-scripttypen voor Linux-nieuwkomers (nuttig)

Inhoudsopgave:

Anonim

Afbeeldingsbron: pixabay.com

Shell Scripting in Linux - Computers begrijpen in het algemeen de taal van nullen en enen die bekend staat als een binaire taal. Tientallen jaren geleden schreven mensen programma's en applicaties zoals zelfs rekenmachines in binaire talen. Maar dat was niet mooi. Stel je eens voor! U wilt 73 + 96 berekenen, hoe zou u schrijven? U zou eerder het binaire gehele getal voor 73 en 96 moeten berekenen en ze vervolgens toevoegen. Een persoon moet behoorlijk dom zijn om dat te doen. Men zou liever 73 en 96 op een papier berekenen en verder gaan. Maar dat is voor het grootste deel. Wat als u zoiets moet berekenen (19273/23 * (2967 3)). Ik zou nu zeggen dat dit behoorlijk intens is.

Dus een onfatsoenlijke man die leert alles in binaire taal te coderen, heeft geen zin. Dat is de belangrijkste reden waarom de computers in de jaren 70 en 80 niet populair waren. Maar later, zelfs voordat de Windows werd ontwikkeld, begonnen mensen kernels en soortgelijke dingen te ontwikkelen die het kernonderdeel van het besturingssysteem vormden. De kernels gebruikten de voor mensen leesbare indeling van een specifiek programma en zetten deze vervolgens om in machinecode. En dit is waar de programmeertalen ontstonden en het hele tijdperk van de computerwereld veranderde. Applicaties werden gebouwd in C en C ++, en later met Java, Python, Ruby en Perl.

Vanaf nu zijn er meer dan 50 programmeertalen rondom. En dat zijn tenminste die waarvan ik weet. Laat staan ​​het feit dat er andere programmeertalen zijn die nog moeilijker te begrijpen zijn dan machinecode. Mijn punt is, voorbeelden als Chicken programmeren en Malbolge. Het zijn serieuze, nare dingen om mee om te gaan.

Shell-programmering … .errr … Scripting?

Nu vraag je je misschien af ​​waarom ik het programmeren van Shell hierboven niet heb genoemd, samen met de andere programmeertalen. De belangrijkste reden dat Shell zelf is, is geen programmeertaal. Het is een scripttaal. Shell is slechts een interactief programma aan het eind van de gebruiker dat alle invoer van de gebruiker interpreteert en het resultaat geeft op voorwaarde dat de opdracht geldig is. Vervolgens geeft het het programma door aan de kernel om het uit te voeren. De Shell maakt geen deel uit van Kernel, maar gebruikt in plaats daarvan de kernel voor het uitvoeren en maken van bestanden.

Soorten Shell Scripting Program

Nu, in tegenstelling tot C, C ++ of Java, zijn er verschillende andere soorten shells die kunnen worden gebruikt voor Shell Scripting. Hieronder volgen de vier soorten shell die tot op heden beschikbaar zijn:

Nee.Shell TypeBeschrijving
1.Bash aka Bourne Again ShellDit is de meest voorkomende shell die beschikbaar is op alle Linux- en debian-gebaseerde systemen. Het is open source en freeware.
2.CSH of C ShellDit Shell-scriptprogramma gebruikt de shell-syntaxis van de C-programmering en lijkt bijna op C.
3.KSH of Korn ShellKorn is een op Unix gebaseerd Shell-scriptprogramma, aanvankelijk gebaseerd op de Bash Shell Scripting. Deze shell is vrij geavanceerd en het is een programmeertaal op hoog niveau.
4.tcshEr is geen specifieke volledige vorm van TCSH. Het is zoals het is. TCSH is een geavanceerde versie van Berkeley Unix C shell. Het ondersteunt opnieuw de syntaxis van de C-stijl

Voor vandaag zijn we niet geïnteresseerd in alle bovenstaande shells hier. We zijn alleen geïnteresseerd in de Bash-shell, omdat deze tegenwoordig de meest gebruikte shell ter wereld is.

De Bash Shell

Het Bash Shell-scriptprogramma is een scripttaal op hoog niveau, vergelijkbaar met die van python. Maar als je al ervaring hebt met Python, zul je merken dat Bash Shell Scripting veel eenvoudiger is dan elke andere scripttaal. Je kunt in Bash veel sneller scripts schrijven dan in C, C ++, Java of Python. De standaardterminal in de meest Linux-omgeving van vandaag, bijvoorbeeld voor: - Ubuntu, Linux Mint Cinnamon / Rafaela, Fedora, Arch Linux of een andere debian-omgeving bestaat uit Bash als de standaardshell. U kunt echter alle shell-omgevingen in uw systeem controleren door het volgende in de standaardterminal te typen: -

$ cat / etc / shells

(Opmerking: het dollarteken aan het begin wordt gebruikt om een ​​terminal te identificeren.)

De syntaxis van de 'kat' wordt gebruikt om tekstbestanden te lezen. De typen shell-scriptprogramma's in een Linux-, Unix- of Debian-omgeving worden opgeslagen in het shell- bestand in de map etc. Elke shell heeft zijn eigen unieke set syntaxis en hun eigen set ingebouwde functies. De DOS of Windows hebben ook hun eigen shell bekend als de beruchte 'command prompt' of de 'powershell' vanaf Windows 8.1, maar het is nog steeds niet zo krachtig als de bash. De cat-syntaxis geeft u de lijst met shells die op het systeem beschikbaar zijn, maar om de standaardshell te vinden of om de huidige shell te controleren, kan men de volgende syntaxis gebruiken in de Shell Scripting Terminal: -

$ echo $ SHELL

De syntaxis 'echo' wordt gebruikt om elke instructie af te drukken. Hier is de 'SHELL' een variabele toegewezen om de huidige shell af te drukken. Het dollarteken na 'echo' wordt gebruikt om een ​​variabele in Shell Scripting weer te geven.

Aanbevolen cursussen

  • Certificatiecursus in Java Hibernate
  • Java Spring Course
  • WordPress Online Training
  • Ruby Training

Shell Scripting

Dus nu je weet wat een shell is, laten we eens kijken naar Shell Scripting en waarom het zo bekend staat. Shell Scripting is niets anders dan een reeks opdrachten in een eenvoudig tekstbestand dat eindigt met de extensie '.sh'. De '.sh' bepaalt dat het een uitvoerbaar shell-bestand is. Na het schrijven van een shellscript, zou je de uitvoerbare machtiging moeten wijzigen met behulp van de 'chmod-functie'. Standaard is elke nieuw gemaakte shell niet uitvoerbaar in de UNIX of de Linux-omgeving, tenzij de machtigingen specifiek worden gewijzigd. Shell Scripting is bijna vergelijkbaar met dat van Batch-programmering vanuit Windows, maar het verschil is dat Shell Scripting wat krachtiger is en een veel meer hoogwaardige interactieve omgeving biedt, samen met het voltooien van tabs. Je moet een goede teksteditor gebruiken om een ​​shellscript te schrijven. Enkele betere die ik ken zijn Vim, Gedit en Leafpad.

In tegenstelling tot andere programmeertalen zijn Shell-scripts sneller te schrijven en uit te voeren. U hoeft geen specifieke bundels of afhankelijkheden te downloaden om uit te voeren. Ze kunnen niet alleen worden gebruikt door een systeembeheerder, maar ook door een normale persoon voor het dagelijks uitvoeren van geautomatiseerde scripts. Hierna volgt een eenvoudig voorbeeld van een script dat hier is geschreven.

#! / bin / bash echo -e “Welkom bij het eerste shell-programma. \ n” echo -e “Schrijf hier iets en dit programma zal hetzelfde afdrukken. \ n” # de gebruiker om invoer vragen lees invoer #lees de invoer van gebruiker echo “U ingevoerd: $ input ” exit 0

Laat me nu alle parameters in de bovenstaande code toelichten. Schrijf eerst de bovenstaande code in een tekstbestand in een 'as is'-indeling en sla deze op met een extensie die eindigt op' .sh '. Noem het bestand bijvoorbeeld 'main_program.sh'. Zorg ervoor dat het niet 'main_program.sh.txt' is. De meeste beginners doen meestal hetzelfde en dan is het niet uitvoerbaar. Nadat de bovenstaande code is gekopieerd, wijzigt u de machtigingen met de volgende syntaxis in de terminal: -

$ chmod + x main_program.sh OF $ chmod 755 main_program.sh

U kunt een van de bovenstaande opdrachten gebruiken, omdat beide hetzelfde doen. In de moderne bash-shell-scriptprogramma's wordt de '755' gewijzigd in '+ x'; dus het maakt niet uit welke u eigenlijk gebruikt. Nadat u de machtigingen hebt gewijzigd, typt u het volgende om het uit te voeren.

$. / main_program.sh

De punt en schuine streep worden gebruikt om de shellscripts te identificeren en uit te voeren. Nadat u het bovenstaande script hebt uitgevoerd, wordt de eerste echo-instructie afgedrukt en wordt u gevraagd iets in te voeren. Nadat u deze hebt ingevoerd, wordt hetzelfde voor u afgedrukt en wordt de tolk verlaten. Dus laat me alle syntaxis hierboven uitleggen. Het '#! / Bin / bash' wordt gebruikt om de tolk te vertellen dat dit een bash-script is en dat het Bash shell-scriptprogramma zich in de map 'bin' bevindt. De opdracht 'echo' wordt gebruikt om een ​​instructie af te drukken en de vlag '-e' wordt gebruikt om de shell aan te geven dat er een nieuwe regel wordt geïdentificeerd als een 'slash n of \ n' of een tab 'slash t of \ t 'of iets dergelijks in de echo's. Het hash-gedeelte op de tweede regel wordt gebruikt om een ​​opmerking in een bash-script te identificeren. Wat je ook schrijft na hash krijgt commentaar en wordt niet uitgevoerd. Maar dit is niet van toepassing op de '#! / Bin / bash' op de eerste regel. Dit is hoe het script moet werken. De syntaxis 'lezen' wordt gebruikt om invoer van de gebruiker te lezen. En de 'invoer' die ik heb genoemd na de 'lees'-syntaxis, is de variabele waarin de invoer van de gebruiker is opgeslagen. Je kunt elke variabele gebruiken in plaats van de invoer. Op de voorlaatste regel wordt de $ -invoer gebruikt om zichzelf als variabele te identificeren en de opgeslagen invoer in de regel uit te voeren. Ten slotte wordt het exit-commando gebruikt om de tolk te verlaten met een schone exit-nul.

Niet-interactieve scripting

Nu is het bovenstaande voorbeeld gewoon vrij eenvoudig. Maar er zijn ingebouwde modules die u kunt gebruiken in plaats van alle ingangen zelf te geven. Hierna volgt een stukje code, dat de gebruikersnaam afdrukt die momenteel is ingelogd, de huidige tijd, de kalenderdatum en het aantal aanmeldingen: -

#! / bin / bash # Dit script drukt de huidige ingelogde gebruikersinfo, het aantal ingelogde gebruikers, de datum, de tijd en de kalender af echo “Hallo, $ USER” echo “De datum en tijd van vandaag is` date` ” echo“ Aantal ingelogde gebruikers: `who | wc -l` ”

echo "Kalender"

cal

uitgang 0

Voer dit script uit na het wijzigen van de rechten van het bovenstaande bestand. Nu vraag je je misschien af ​​dat we in het vorige script de invoer hebben ingevoerd en vervolgens de invoer hebben geretourneerd met behulp van de variabele. Maar hier hebben we geen invoer binnen de variabele '$ USER' opgegeven, maar hoe komt het dat de exacte gebruiker wordt afgedrukt. De belangrijkste reden hiervoor is dat deze dingen al in het systeem zijn geconfigureerd. Weet je nog dat ik je in het begin al over $ SHELL vertelde, over hoe het standaard wordt gedefinieerd? Ja, hetzelfde is hier het geval met de $ USER. Wat betreft de datum, als u 'datum' typt zonder enige aanhalingstekens in de terminal, wordt de exacte datum en tijd afgedrukt. Ik heb zojuist enkel quote (`) gebruikt om zichzelf te identificeren als een syntaxis in plaats van als onderdeel van een echo. De enkele quote (`) zal elke syntax die erin wordt afgedrukt uitvoeren, of het nu in een verklaring is of ergens anders. Wat betreft het aantal gebruikers, wordt de opdracht 'wie' gebruikt om de huidige ingelogde gebruikers te controleren, samen met de ingelogde processen en de datum en tijd waarop deze is gestart. Maar wat betreft het bovenstaande commando, ik heb het eigenlijk afgekapt om alleen het aantal gebruikers uit te voeren dat het logde met het 'wc -l' commando. De balk (|) of wat het in de volksmond bekend staat als pijp, wordt gebruikt om twee opdrachten te combineren. De pijp staat eigenlijk voor veel meer dan dat, maar ik zal hier niet veel in detail ingaan. En uiteindelijk heb ik de kalender afgedrukt met het ingebouwde commando 'cal' voor het afdrukken van de huidige datum in de kalender.

De Exit Zero

De Exit Zero is iets dat ik niet heb uitgelegd in een van de hierboven geschreven programma's. De belangrijkste reden hiervoor is 'Exit Zero' heeft veel meer zwaarte dan een van de syntaxis hierboven in Shell Scripting. Standaard retourneert het, wanneer u een script uitvoert in een Linux- of Unix-distributie, twee soorten waarden of meer specifiek de exitstatus om te controleren of de uitvoering van het shellscript succesvol is of niet. Als het de waarde Zero retourneert, was de uitvoering succesvol, anders werd het niet uitgevoerd of was er een fout tijdens de uitvoering. Dus door 'exit 0' in te typen aan het einde van een script, wordt de uitvoeringsstatus van het script gecontroleerd.

Alle dingen die ik hier heb behandeld, zijn slechts het minst basale deel van de Shell-scripting in de Linux-distributie. Het exit-nuldeel en de pijp spelen een belangrijke rol bij het uitvoeren van meerdere shell-scripting in linux-opdrachten en het gebruiken ervan samen met de voorwaardelijke if en else-instructies.

Gerelateerde artikelen:-

Hier zijn enkele artikelen die u zullen helpen om meer details te krijgen over de Shell-scripttypen voor Linux-nieuwkomers, dus ga gewoon via de link.

  1. Vragen tijdens solliciteren bij Shell Scripting | Top 10 nuttige vragen
  2. Linux versus Windows - Ontdek de 9 meest geweldige verschillen
  3. Vragen en antwoorden over sollicitatiegesprekken bij Linux | Handig en meest gevraagd
  4. Carrières in Linux-beheer
  5. Regels en voorschriften van Shell-scriptparameters