Wat is Shell Scripting en waarom zou u het moeten gebruiken
De shell is een programma binnen een Linux- of Unix-besturingssysteem waarmee u opdrachten kunt invoeren voor uitvoering door het systeem. Wanneer een terminalvenster wordt geopend op een Linux-computer, start het het shell-programma met een interface om opdrachten in te voeren. Deze interface staat bekend als de opdrachtregelinterface. Wanneer een opdracht wordt ingevoerd, wordt deze uitgevoerd door de shell en wordt de uitvoer op het scherm weergegeven.
Naast het kunnen accepteren en uitvoeren van opdrachten interactief, kan de shell ook opdrachten uitvoeren die zijn opgeslagen in een bestand. Deze uitvoeringsmodus staat bekend als shell scripting, en in dit artikel bespreken we de basisprincipes van shell-scripting 5 Redenen die u moet gebruiken PowerShell in plaats van Batch-scripting 5 Redenen die u zou moeten gebruiken PowerShell in plaats van Batch-scripting PowerShell is wat u zou krijgen als u de opdrachtprompt met batch-scripting zou overschrijden, naar binnen gooide wat extra functies, en schopte het allemaal verschillende inkepingen. Hier zijn verschillende redenen waarom je het zou moeten proberen. Lees verder .
1. Geschiedenis van de Shell
Beginnend met Unix in de jaren 1970, was er een shell-programma genaamd de V6 Shell ontwikkeld door Ken Thomson. Het was een interactieve shell en ontbrak scripting vermogen.
Het werd gevolgd door de Bourne Shell in 1977 en blijft vandaag in gebruik als de standaard shell voor de wortel account. Deze shell heeft scripting-vaardigheden toegevoegd, wat door de jaren heen uiterst nuttig is gebleken in de praktijk.
Verdere ontwikkeling van de schaal in de jaren 1980 gaf aanleiding tot vele populaire schaalvarianten, waarvan de meest populaire waren C-Shell en de Korn Shell. Elk van deze shells bracht zijn eigen syntaxis mee die in bepaalde gevallen drastisch verschilde van de originele schaal.
Een van de meest populaire schelpen van vandaag is de Bash Shell. Bash staat voor Bourne-Again-Shell en is een sterk verbeterde variant van de originele Bourne Shell.
In dit artikel beschrijven we shell scripting voor de Bash Shell A Quick Guide to Linux Bash Shell in Windows 10 A Beknopte handleiding voor Linux Bash Shell in Windows 10 U kunt nu Linux op Windows uitvoeren. Lees meer over Bash op Windows, van hoe en waarom je het moet installeren, naar verborgen functies die je waarschijnlijk nog niet wist. Lees verder .
2. Een shellscript uitvoeren
Hoe voer je een shellscript uit? Eenvoudig. Geef het scriptpad gewoon door als argument voor de shell:
Een voorbeeldshell-script:
echo "hallo wereld"
Voer het als volgt uit:
$ bash hello.sh # drukt hallo wereld af
Notitie: De shell vereist dat regels worden beëindigd door LF-tekens (Line-Feed). Als u uw shell-script op Windows schrijft en probeert het rechtstreeks op een Linux-systeem uit te voeren, kunt u fouten tegenkomen. Windows gebruikt de CR-LF-combinatie (Carriage-Return-Line-Feed) voor lijnbeëindiging. Dit moet alleen worden geconverteerd naar LF. Controleer uw Windows-editor op manieren om dit te doen.
Er is een andere manier om een shell-script rechtstreeks als een commando uit te voeren. Voer de volgende regel in (de Hashbang verklaring) als de eerste regel van uw shell-script.
#! / Bin / bash
Met deze wijziging is ons eenvoudige shellscript nu:
#! / bin / bash echo "hallo wereld"
Nu moet je het scriptbestand als volgt uitvoerbaar maken:
$ chmod + x hello.sh
Op dit punt kunt u het scriptbestand direct uitvoeren zonder expliciet naar de shell te hoeven verwijzen.
$ hello.sh # drukt hallo wereld af
Laten we nu eens kijken naar enkele voordelen van het gebruik van shellscripts. Wat zijn CGI-scripts en hoe verbeteren ze websites? Wat zijn CGI-scripts en hoe verbeteren ze websites? CGI staat voor Common Gateway Interface. Het is een standaardprotocol voor webservers om programma's uit te voeren en uitvoer voor webbrowsers te genereren. Leer alles over CGI-scripts en hoe ze uw website kunnen verbeteren. Lees verder .
3. Taakautomatisering
Het eerste voordeel van het gebruik van shellscripts is het automatiseren van veelvuldig uitgevoerde taken. 7 Dagelijkse taken waarvan u niet wist dat u in enkele minuten kon automatiseren 7 Dagelijkse taken waarvan u niet wist dat u in enkele minuten kon automatiseren Er zijn veel dingen die u nu kunt automatiseren dat bespaart u tijd en stelt u in staat om u op andere dingen te concentreren. We geven je zeven dingen die je nu kunt automatiseren met de juiste tools. Lees verder . Stel dat je een taak hebt die je elke dag moet uitvoeren. Als u elke dag meerdere opdrachten op uw Linux-systeem moet uitvoeren, kunt u deze opdrachten opslaan in een bestand en het script uitvoeren. Voorbeelden zijn:
- Archiveer en upload elke dag een bestand of map naar een cloudopslagfaciliteit Dropbox versus Google Drive versus OneDrive: welke cloudopslag is het beste voor u? Dropbox versus Google Drive versus OneDrive: welke cloudopslag is geschikt voor u? Heb je de manier veranderd waarop je denkt over cloudopslag? De populaire opties van Dropbox, Google Drive en OneDrive zijn vergezeld door anderen. We helpen u te bepalen welke cloudopslagdienst u moet gebruiken. Lees meer zoals S3.
- Comprimeer logbestanden die elke dag groeien.
- Voorraadprijzen ophalen, de opgehaalde gegevens parseren en een e-mail of sms activeren wanneer aan bepaalde voorwaarden is voldaan (te hoge of te lage prijzen).
4. Combineren van meerdere commando's
Naast het automatiseren van veelvoorkomende taken, zou u het ook van voordeel kunnen vinden als u meerdere reeksen opdrachten in een enkele opdracht kunt combineren. Het onthouden van een enkele opdracht is veel eenvoudiger dan meerdere opdrachten, om nog maar te zwijgen van de volgorde waarin ze moeten worden uitgevoerd.
Een voorbeeld is de opstartvolgorde van het Linux-besturingssysteem Aan de slag-gids Aan Linux Aan de slag-gids Aan Linux Aan de slag met een Beginner Gids voor Linux! U hebt waarschijnlijk wel eens gehoord van Linux, het gratis, open-source besturingssysteem dat tegen Microsoft is opgeschoten. Lees zelf meer. Als onderdeel van het opstarten voert het besturingssysteem een aantal opdrachten uit om het systeem in een goede staat te brengen. Deze opdrachten zijn eigenlijk shellscripts die onder de /enz directory. Als je een van deze shell-scripts bekijkt, zul je je realiseren hoe ingewikkeld het is om een systeem op te starten, dat je misschien handmatig had moeten uitvoeren in afwezigheid van shell-scripts.
Het volgende is een voorbeeldshell-script, / Etc / profile, die telkens wordt uitgevoerd wanneer een gebruiker inlogt. Stel je voor dat je deze commando's met de hand invoert!
# / etc / profile: systeem-breed .profile bestand voor de Bourne shell (sh (1)) # en Bourne compatibele shells (bash (1), ksh (1), ash (1), ...). als ["$ PS1"]; dan als ["$ BASH"] && ["$ BASH"! = "/ bin / sh"]; then # Het bestand bash.bashrc stelt al de standaard PS1 in. # PS1 = "\ h: \ w \ $" als [-f /etc/bash.bashrc]; dan . /etc/bash.bashrc fi anders als ["'id -u'" -eq 0]; dan PS1 = "#" else PS1 = "$" fi fi fi # Het standaard umask wordt nu afgehandeld door pam_umask. # Zie pam_umask (8) en /etc/login.defs. als [-d /etc/profile.d]; dan voor i in /etc/profile.d/*.sh; doe als [-r $ i]; dan . Ik deed het niet, ik vond het leuk
5. Gemakkelijker te ontwikkelen
Het is mogelijk om dezelfde acties uit te voeren als een shell-script binnen een regulier programma geschreven in C / C ++. Het is echter veel gemakkelijker om een shellscript te schrijven en te debuggen dan een C / C ++ -programma. Vooral voor systeembeheertaken die de uitvoering van externe opdrachten omvatten, het maken en verwijderen van bestanden en mappen, het omleiden van uitvoer, enz.
C / C ++ -programma's zijn beter voor een veel lager bedieningsniveau, zoals het aanroepen van systeemaanroepen, het manipuleren van gegevensstructuren, enz.
6. Transparantie
Een shellscript kan, op grond van een tekstbestand, eenvoudig worden bekeken om te zien welke acties het uitvoert. Daarentegen, de enige manier waarop je ooit zult weten wat een programma geschreven in een taal zoals C / C ++ (en gecompileerd naar een uitvoerbaar bestand) is, is als het ervoor kiest om je te vertellen of als je toegang hebt tot de broncode. U kunt bijvoorbeeld controleren of een shell-script bestanden verwijdert, en als u die bestanden nodig heeft, kunt u deze naar een andere locatie kopiëren.
Het is ook veel gemakkelijker om problemen met shell-scripts te diagnosticeren in plaats van gewone programma's, omdat u de broncode kunt bekijken. Is dat script mislukt omdat een map niet bestaat? Je kunt in de scriptcode zoeken en de map maken (hoewel een goed opgevat shellscript het moet controleren en maken om dergelijke fouten te voorkomen).
7. Draagbaar
Een shellscript Een korte handleiding voor Linux Bash Shell in Windows 10 Een korte handleiding voor Linux Bash Shell in Windows 10 U kunt nu Linux op Windows uitvoeren. Lees meer over Bash op Windows, van hoe en waarom je het moet installeren, naar verborgen functies die je waarschijnlijk nog niet wist. Meer informatie kan worden overgebracht naar andere Unix- en Unix-achtige besturingssystemen en worden uitgevoerd (als de shell zelf aanwezig is). Zelfs wanneer een shell-script wordt overgedragen van verschillende architecturen, zoals x86, MIPS, Sparc, enz., Zijn shellscripts veel draaglijker dan C / C ++ -programma's.
De enige manier waarop een C / C ++ -programma kan worden overgedragen en gebruikt op een ander systeem, is door de broncode te kopiëren, het programma op te bouwen en te proberen het uit te voeren. Zelfs dan werkt het misschien niet zoals verwacht als het architectuurspecifieke code gebruikt.
Nu je een idee hebt van wat shellscripts zijn en hun vele voordelen, zou je ze dan niet willen gebruiken voor je taken? Welke problemen heb je ondervonden bij het gebruik ervan? Laat het ons weten in de comments hieronder.
Ontdek meer over: Linux Bash Shell.