Heb je ooit 'scripting' willen leren in Linux? Ze maken is gemakkelijker dan je zou denken. Soms zijn scripts (vaak shell- of bash-scripts genoemd) echte programma's met ingewikkelde code erin. Andere keren zijn het slechts een lange lijst met taken die gebruikers samenstellen om dingen sneller en gemakkelijker onder Linux te doen.

In dit artikel hebben we besloten om een ​​korte handleiding te maken met uitleg over het maken van een basishulscript onder Linux. Deze tutorial zal je niet veranderen in een Bash- of scripting-expert. In plaats daarvan laat het u zien hoe eenvoudig het is om aan de slag te gaan (en de best practices) te scripten in Linux.

Waarom zou je een script maken?

Het maken van scripts in Linux is een zeer nuttige vaardigheid om te hebben. Zelfs als u Bash niet volledig begrijpt, kunt u uw beperkte kennis van de terminal gebruiken om sommige taken te automatiseren en "massaal" te volbrengen, of eenvoudig om meerdere toepassingen gelijktijdig te openen.

Bijvoorbeeld: misschien hebt u Arch Linux helemaal opnieuw gebouwd. Het besturingssysteem is geïnstalleerd, samen met alle basispakketten, en het kan naar de terminal opstarten wanneer het besturingssysteem opstart. Arch Linux kost tijd om op te zetten, dus het proces is niet voltooid.

Op dit punt kan de gebruiker een Bash-script schrijven en alles tegelijk uitvoeren. Niets van dit is programmeren, of geavanceerd voor die kwestie. Gezien het feit dat de gebruiker voldoende begrijpt over de manier waarop Arch Linux werkt, kunnen ze bijna het hele post-setup-proces (bureaubladomgeving, stuurprogramma's, gebruikersinstellingen, enz.) Automatiseren.

De enige limiet voor je bash-script is je eigen Linux en Bash-kennis! Ze maken is gemakkelijker dan je zou denken.

Aan de slag - Shebangs

Bij het schrijven van code moeten dingen worden gespecificeerd en resources worden geladen. Bij het scripten met de shell, moeten sommige dingen ook worden gespecificeerd. Bij bash scripting staat dit bekend als een "shebang." De scribans die in scripts worden gebruikt, vertellen het script naar welke tolk het zou moeten uitvoeren. Dit kan Bash zijn of een ander script dat beschikbaar is in uw systeem. Houd er rekening mee dat verschillende talen hun eigen krabbels hebben.

Bijvoorbeeld: bij het schrijven van een Python-script zou de shebang #!/usr/bin/python, etc. zijn.

Bash heeft veel verschillende shebangs die kunnen worden gebruikt, maar de meeste gebruikers hebben waarschijnlijk alleen #!/bin/bash . Als algemene regel, gebruik #!/bin/bash bij het schrijven van een eenvoudig script en plan het niet af van Linux. Alle moderne Linux-distributies bevinden zich in dezelfde versie van bash en de bash-shell bevindt zich meestal op dezelfde plaats.

Een andere shebang die zichzelf nuttig blijkt te zijn, is de #!/usr/bin/env bash shebang. Deze is ontworpen voor draagbaarheid en moet worden gebruikt als het script is ontworpen om te worden uitgevoerd op andere Unix-achtige besturingssystemen (BSD's, macOS, enz.).

Beste praktijken

Het schrijven van scripts in Bash kan een ingewikkeld proces zijn als de schrijver het zo maakt. Vaker wel dan niet, scripts zijn slechts een verzameling van verschillende bewerkingen. Een bestand verplaatsen, iets downloaden, programma's installeren en zoiets.

  • Houd er rekening mee dat Bash een taal is die is ontworpen om bestanden en processen op het systeem te manipuleren. Als Bash voldoet aan je behoeften, is dat goed. Begrijp echter wel dat Bash voor geavanceerde programmering niet echt de juiste keuze is en dat het het beste is om naar iets als Python te gaan.
  • Maak uw scripts "SH" -compatibel en in de ".sh" -indeling als u van plan bent om scripts op meer dan alleen een Linux-platform te gebruiken. Hoewel andere UNIX-achtige besturingssystemen "bash-achtige" shells kunnen hebben, hebben sommigen helemaal geen bash en het is goed om hierop voorbereid te zijn.
  • Leer de Bash-shell en hoe het werkt. Het helpt je om je scripts beter te schrijven.
  • Gebruik altijd een shebang en nog belangrijker: gebruik de juiste . Het kan het verschil betekenen tussen een goed script en een slecht script dat niet goed werkt.
  • Rapporteer altijd elke bewerking. Over zes maanden kom je misschien terug naar je script en vraag je je af wat alles betekent. Het is dus van cruciaal belang dat je script goed en gemakkelijk te begrijpen is (voor jou en voor iedereen die het misschien ziet).
  • Maak uw code leesbaar. Zelfs als je script niet ingewikkeld is, moet het toch logisch zijn en het maken ervan eenvoudiger dan je zou denken.
  • Test je script op fouten voordat je het aan anderen geeft. Laat anderen geen fouttest voor je maken. Idealiter zouden scripts moeten werken voordat je ze naar mensen stuurt om ze te gebruiken.

Een script maken

Als u wilt beginnen met scripten, heeft u alleen maar een teksteditor nodig. Elke eenvoudige teksteditor zal het doen - het hoeft geen gecompliceerde of uitgebreide tekst te zijn. Voor dit voorbeeld maken we een eenvoudig Ubuntu-updatescript met Gedit.

 #! / Bin / bash 

Dit eerste deel van het script is de shebang, zoals eerder vermeld. Hierdoor kan het script aan de tolk vertellen wat het moet gebruiken om de code te begrijpen.

Laten we vervolgens een opmerking schrijven. Hierdoor kan iedereen die het script gebruikt begrijpen wat de code moet doen. Opmerkingen kunnen aan een script worden toegevoegd door een "#" -symbool te plaatsen. Alles hierna zal niet worden opgepikt door het script.

 # My Simple Ubuntu Update Script 

Nu is het tijd om de code aan het script toe te voegen. In dit geval werken we aan het maken van een bash-script waarmee de twee updatecommando's van Ubuntu achter elkaar worden uitgevoerd. Begin met de opdracht update-softwarebronnen.

 sudo apt update 

Het tweede deel van het script is de apt upgrade opdracht. Met deze opdracht kunnen de eerder gecontroleerde updates worden geïnstalleerd. Voeg een -y aan het einde zodat het script geen gebruikersinteractie nodig heeft. Hierdoor kan de opdracht zelf worden bijgewerkt.

 sudo apt upgrade -y 

Sla het script op met de extensie ".sh". Bijvoorbeeld "myscript.sh."

Om het script uit te voeren, opent u een terminal en typt u:

 sudo chmod + x myscript.sh 

Dit markeert het nieuw gemaakte script als uitvoerbaar bestand. Dit doen aan scripts is niet altijd nodig, want grotendeels zal Bash het toch uitvoeren. Hoe dan ook, dit is een goede oefening bij het scripten.

Voer de volgende opdracht uit om het nieuw gemaakte script uit te voeren:

 sudo bash myscript.sh. 

Bestandsextensies

Er is geen verschil in bestandsextensies voor scripts. Het benoemen van een bestand met de extensie ".sh" heeft weinig invloed op de manier waarop het "programma" wordt uitgevoerd. Een Bash-script wordt nog steeds uitgevoerd zonder bestandsextensie: lege tekstbestanden en alles daartussen zolang de juiste opdrachten en argumenten aanwezig zijn.

Hoewel de Bash-shell extensies negeert, betekent dat niet dat de scriptschrijver dat zou moeten doen. Sommige bureaubladomgevingen die het instellen van shellscripts bij het opstarten mogelijk maken, zijn afhankelijk van het script met de juiste extensie ".sh". Dit helpt ook voor organisatiedoeleinden.

Als het er op aan komt, worden de meeste shellscripts opgeslagen als ".sh" -bestanden voor draagbaarheid. De "sh" heeft niets te maken met Bash zelf, en het script kan met elke compatibele shell worden uitgevoerd.

Als alternatief kunnen scripts worden opgeslagen als .bash, .ksh (Unix korn shell), enz. Deze bestandsextensies zijn inferieur en beperken echt het nut van een script. Dit komt door het feit dat ze alleen zijn ontworpen voor de shells die deze extensies gebruiken.

Code middelen

Voor degenen die op zoek zijn naar bruikbare Bash-scripts, bekijk de Bash User Repository op Reddit. Het is een verzameling nette en nuttige scripts die gratis te gebruiken en aan te passen zijn!

Daarnaast moeten degenen die op zoek zijn naar het geavanceerde karakter van Bash en het programmeren met de shell Freecode willen bekijken. De website heeft een volledige lesgids die alles te weten komt over geavanceerde Bash-scripting.

Conclusie

Hoewel scripting met Bash op Linux geen unieke eigenschap is (Macs hebben ook bash), heeft dit de neiging om Linux-gebruikers meer algemeen te helpen. Gezien zoveel Linux kan worden bereikt onder de terminal, is het erg handig om te leren hoe je de shell kunt manipuleren.

Welke Bash-scripts gebruik je onder Linux om je leven gemakkelijker te maken? Vertel het ons hieronder!

Functieafbeelding: Jm3