in deze beginnersvriendelijke gids gaan we u door de bouwstenen van Mac scripting leiden, en dan zullen we zien hoe het gebruik van scripts met uw mobile device management (MDM) – oplossing kan helpen om apparaten van het bedrijf effectiever te beheren.
Hier is een kort overzicht van enkele onderwerpen die we zullen behandelen:
- Wat zijn Scripts?
- Scripts gebruiken met een MDM-oplossing
- Terminalcommando ‘ s vs. Shell Scripts
- Wat zijn Shells: Bash vs. Zsh?,
- basis van scripts met Bash
Wat zijn Scripts?
Scripts zijn kleine computerprogramma ‘ s die een reeks opdrachten in één bestand verzamelen. Terwijl het typen van opdrachten in Apple ‘ s Terminal wordt meestal één voor één gedaan, met een script, kunt u een lange lijst van opdrachten uit te voeren met slechts één interactie.
hoewel u gewoonlijk geen Mac-scripts gebruikt om grotere programma ‘ s te maken, kunt u ze gebruiken om routinematig computergedrag te automatiseren. Als je bijvoorbeeld een tijdrovende routine hebt die veel klikken vergt, kun je een script schrijven en het met slechts één doen.,
Apple zet het goed in hun Shell Scripting Primer:
Het schrijven van een shell script is als fietsen. Je valt eraf en schraapt je knieën in het begin veel. Met een beetje meer ervaring, word je comfortabel rijden ze rond de stad, maar ook snel ontdekken waarom de meeste mensen rijden auto ‘ s voor langere reizen.
Shell scripting wordt algemeen beschouwd als een lijmtaal, ideaal voor het maken van kleine stukjes code die andere gereedschappen met elkaar verbinden. Hoewel shell scripts kunnen worden gebruikt voor meer complexe taken, zijn ze meestal niet de beste keuze.,
het leren van een script is vergelijkbaar met het leren van een programmeertaal. Je begint met de basis en bouwt vanaf daar je kennis op.
dus, in deze gids, gaan we ons richten op de bouwstenen van scripting. De informatie die we hier behandelen zal nuttig zijn in tal van instellingen, maar we gaan ons uiteindelijk richten op hoe scripting u kan helpen acties uit te voeren op meerdere apparaten met behulp van een MDM-oplossing.
wat kunnen Scripts doen?
in wezen laten scripts je ingewikkelde dingen snel, nauwkeurig en gemakkelijk doen.,
- snel omdat het gebruik van Mac-scripts in een MDM vervelende taken kan automatiseren, zoals het openen van een computerprogramma op 100 bedrijfsapparaten – met nul klikken in plaats van 100.
- nauwkeurig omdat een goed script elke keer een gedefinieerde actie op dezelfde manier uitvoert – terwijl een persoon de taak handmatig uitvoert, kan dit leiden tot fouten, inconsistentie en verwarring.
- gemakkelijk omdat u een echt ingewikkelde en genuanceerde taak kunt uitvoeren met een reeks eenvoudige scripts die deze in kleinere stukken opsplitsen.,
Scripts gebruiken met een MDM-oplossing
scripts op zichzelf gebruiken kan u helpen tijd te besparen, maar ze gebruiken met een MDM-oplossing, zoals ons product Kandji, biedt veel meer kracht en vrijheid. Nadat u een script dat u wilt schrijven, kunt u het uitvoeren door uw MDM-oplossing toe te passen op alle apparaten van uw bedrijf.
hoe scripts worden gebruikt in MDM-oplossingen zal verschillen afhankelijk van het product, maar met Kandji kunt u ze gebruiken om dingen te doen zoals aangepaste app-installatie aanpassen aan de exacte behoeften van uw bedrijf., (U kunt onze gids voor app deployment lezen als u een primer op deze nodig hebt.)
in dit geval, als uw bedrijf een aangepaste app op alle bedrijfsapparaten wil installeren, kunt u bepaalde preinstall-of postinstall-acties opgeven door scripts toe te voegen aan hun respectieve invoervakken (zie onderstaande afbeelding):
Preinstall-Scripts
u kunt een preinstall-script maken als u een actie wilt uitvoeren voordat de installatie plaatsvindt., Preinstall scripts worden over het algemeen gebruikt om:
- opruimtaken uit te voeren die normaal handmatig zouden worden uitgevoerd voordat u de software opnieuw installeert, zoals het verwijderen van licenties, caches, databasebestanden en meer.
- start configuratiebestanden. Veel toepassingen maken gebruik van massa-deployment opties die werken door het vinden van configuratiebestanden geplaatst voordat het installatieprogramma wordt uitgevoerd. Bijvoorbeeld, je zou een preinstall script kunnen gebruiken om een bepaalde map aan te maken, en schrijf een bestand in die map met een soort identifier., Wanneer de installatie plaatsvindt, vindt de installateur deze informatie en gebruikt deze om de toepassing automatisch te configureren.
Postinstall Scripts
U kunt ook een PostInstall script maken, dat over het algemeen wordt gebruikt om toepassingsvoorkeuren in te stellen voordat de software wordt uitgevoerd. Als u een veelvoorkomend voorbeeld wilt delen, kunt u een posinstall-script gebruiken om gebruikersvoorkeuren voor Google Chrome te configureren en ervoor te zorgen dat automatische updates worden geconfigureerd.,
zoals je je kunt voorstellen, geeft scripting van dit gedrag je veel meer controle over het installatie proces, en het kan je IT team veel tijd besparen als ze het anders handmatig zouden moeten doen.
aangepaste Scripts
Kandji heeft ook een aangepaste scriptfunctie waarmee u elk script kunt toevoegen dat door macOS wordt ondersteund. Deze Mac-scripts kunnen eenmaal per apparaat of continu worden uitgevoerd. Er is ook een herstel script optie die u kunt opnemen wanneer dat nodig is., U kunt meer van de beschikbare opties zien op Kandji ‘ s aangepaste Script pagina hieronder:
bouwstenen van Scripting
nu we een werkende definitie hebben van wat scripts zijn en weten wat ze kunnen bereiken, laten we leren hoe het allemaal werkt. In deze sectie, zullen we een aantal van de belangrijkste bouwstenen van Mac scripting, waaronder Terminal commando ‘ s, shell scripts, en twee gemeenschappelijke shells.
Wat zijn Terminalcommando ‘ s?
Terminal is de macOS command line interface (CLI)., Het laat gebruikers geavanceerde wijzigingen aan hun Mac met behulp van commando ‘ s, die zijn gewoon instructies voor je Mac met betrekking tot wat je wilt dat het te doen.
Afbeeldingsbron: support.apple.com
Een woord van waarschuwing, hoewel: Terminal is een ongelooflijk krachtige tool. Grondig onderzoek en test commando ‘ s alvorens ze uit te voeren, en indien mogelijk, test met een VM in plaats van een productiemachine.
wanneer u commando ‘ s intypt in Terminal, laat het u communiceren met een interpreter, of shell. De tolk neemt code en vertaalt het in machinetaal die het besturingssysteem kan begrijpen.,
om Terminal te openen, klikt u op “Applications”, opent u de “Utilities” map en dubbelklikt u vervolgens op de “Terminal” app. U kunt Terminal commando ‘ s gebruiken voor alles wat u kunt bereiken in de GUI – en nog veel meer.,
Hier zijn een aantal elementaire voorbeelden van commando ‘ s:
- tekst Toevoegen aan een document (als het document niet bestaat, zal deze worden gemaakt)
echo 'Welcome to my document!' > ~/Desktop/myDocument.txt
- Maak een map op een bepaalde locatie
mkdir ~/Desktop/myFolder
- een document Verplaatsen naar een bepaalde locatie
mv ~/Desktop/myDocument.txt ~Desktop/myFolder
- Open een document vanaf een bepaalde locatie
open ~/Desktop/myFolder/myDocument.txt
Dit is een geweldige manier om te zien hoe je kan commando ‘ s gebruiken om je Mac uitvoeren van bepaalde gedragingen, maar het is niet erg praktisch als u wilt voor het uitvoeren van een aantal taken., We zullen zien hoe scripts dit mogelijk maken in de volgende sectie.
Wat zijn Mac Shell Scripts?
natuurlijk zal het één voor één inpluggen van Terminalcommando ‘ s behoorlijk vervelend worden wanneer je probeert wijzigingen uit te rollen voor honderden Mac-apparaten die eigendom zijn van het bedrijf. Dus in plaats van individuele commando ’s uit te voeren zoals ons voorbeeld in de laatste sectie, kun je al je commando’ s omzetten in één script – een shell script – dat kan draaien zonder directe interactie. Dit maakt het gemakkelijker om herhaalde of multi-stap processen uit te voeren terwijl het minimaliseren van fouten.,
een shellscript is slechts een tekstbestand met UNIX commando ’s (commando’ s die met uw besturingssysteem praten – macOS is een op UNIX gebaseerd besturingssysteem). Alles wat je kunt doen met Terminal commando ‘ s die je kunt doen met Mac shell scripts, gewoon een stuk gemakkelijker. Je kunt zelfs shell scripts automatiseren met tools zoals launchd.
Shell Script uitvoeren: Mac Terminal
Het is eigenlijk vrij eenvoudig om een shell script uit te voeren. Als we een Mac script zouden maken van de Terminal commando ‘ s die hierboven zijn geïntroduceerd, dan zouden we het volgende moeten doen:
- Type #!/ bin / bash in de eerste regel., De eerste twee personages, genaamd een “shebang” (#!), laat Terminal weten dat je een shell script typt. De rest van de regel geeft aan met welke shell de scripts moeten draaien. In dit geval is het bash, maar je zou ook “zsh” kunnen specificeren, wat een andere shell is die we ook zullen behandelen in de volgende sectie.
- voeg de commando ‘ s toe aan een scriptbewerker. Net als tekstverwerkers zijn gespecialiseerd voor het schrijven, script editors zijn gespecialiseerd voor scripting, het doen van dingen zoals kleur codering woorden van bepaalde functionele categorieën en het markeren van fouten., Er zijn veel script editors, maar twee van de meer populaire (en gratis) degenen zijn Atom en bbedit.
- sla het op als ” myscript.bash ” of zoals elke andere naam-zorg ervoor dat u de bestandsextensie (het deel na de periode) gelabeld als bash. Anders zal Terminal niet in staat zijn om het goed uit te voeren.
- geef Terminal toestemming om uw script uit te voeren. Nu hoef je alleen maar Terminal toestemming te geven om je script uit te voeren., Kopieer en plak de inhoud niet – je moet Terminal vertellen om het scriptbestand uitvoerbaar te maken met behulp van het chmod +x Commando, bijvoorbeeld:
chmod +x ~/Desktop/myFolder/myscript.bash
- druk op “enter” om het shell script uit te voeren. Mac ‘ S Terminal zal de rest afhandelen!
dat is het-het programma zal de lijst met commando ‘ s in volgorde uitvoeren. Het zal waarschijnlijk sneller gebeuren dan je kunt volgen, maar dat is gewoon een ander voordeel van Mac scripting – het is echt snel.,
voordat we praten over andere dingen die je kunt doen met scripts, laten we een overzicht krijgen van wat shells zijn (zoals “bash”, degene die we in dit voorbeeld hebben gebruikt).
Wat zijn Shells?
wanneer u Terminal opent, start het systeem een shell-programma. Shells zijn command line interpreters die, simpel gezegd, betekent dat ze je commando ‘ s nemen en ze aan het besturingssysteem geven om in actie te brengen.
standaard gebruikt Mac zsh (z shell) of bash (Bourne-again Shell) als shell of command-line interpreter. De standaard shell van uw Mac is afhankelijk van de iteratie van macOS die u gebruikt.,
- zsh (Mac Catalina): Als u een nieuw gebruikersaccount hebt aangemaakt op macOS Catalina beta of hoger, dan is uw standaard shell zsh. macOS iteraties voor dit gebruik bash.
- bash (eerdere macOS): als u macOS Mojave en eerder gebruikt, dan is bash uw standaard shell.
of uw account een bash of zsh Mac standaard shell gebruikt, u kunt het in slechts een paar stappen wijzigen., Dit is wat u moet doen:
- klik op het Apple menu
- kies Systeemvoorkeuren > gebruikers & groepen
- klik op het slot en voer uw accountnaam en wachtwoord in.
- controle-klik op uw gebruikersnaam in de lijst met gebruikers > kies Geavanceerde opties
- kijk in het menu “Login shell” en kies een shell
- klik op OK wanneer u de gewenste shell gevonden hebt
Bash vs., Zsh: Mac Scripting
Bash en zsh hebben eigenlijk veel functies gemeen, en je kunt van de ene naar de andere overschakelen zonder te veel van een leercurve te raken. Dus, voordat we ingaan op wat ze anders maakt, Laten we een paar plaatsen zien waar ze elkaar overlappen.
- Z Commando: het Z commando laat ontwikkelaars gemakkelijk door hun mappen navigeren, waardoor ze de mogelijkheid krijgen om een recent of vaak bezochte map te bezoeken door “z” te typen gevolgd door de naam van de map., Dit is sneller dan het typen van de volledige locatie zoals we moesten doen toen we het document in de terminal command sectie geopend.
- Automatisch aanvullen: beide shells bevatten ook een functie voor Automatisch aanvullen van de opdrachtregel. Om deze functie te gebruiken, je hoeft alleen maar te typen een opdracht, druk op de “-” toets, en druk vervolgens op tab. Je ziet een lijst met beschikbare opties voor het commando, die je kunt doorlopen totdat je degene vindt die je wilt.,
- automatische correctie: beide shells gebruiken een vorm van automatische correctie, maar de functie van bash moet eerst worden ingeschakeld terwijl zsh een ingebouwde automatische correctiefunctie heeft die automatisch kleine typefouten detecteert.
- Color-Customization: zowel zsh als bash bieden veel hulpmiddelen voor kleuraanpassing die het begrijpen van het script in één oogopslag gemakkelijker maken.
als het gaat om verschillen, bash is de standaard shell voor macOS-gebruikers tot Catalina, en het is nog steeds de meest gebruikte shell onder IT-beheerders., Omdat bash een enorme aanhang heeft, zijn er veel middelen die er zijn, waardoor het geweldig is voor beginners.
Bash maakt deel uit van de Bourne familie van shells, een categorie die ook sh, ash, zsh en ksh omvat. Het is geladen met meer functies dan we realistisch kunnen hier een lijst, maar sommige van de unieke functies omvatten looping, conditionele constructies, tilde en brace uitbreidingen, en aliassen.,
Zsh, Mac Catalina ‘ s standaard shell, aan de andere kant, is niet zo populair als bash, maar het heeft nog steeds een enorme aanhang, inclusief open source frameworks zoals Oh My Zsh, en wordt alom geprezen om zijn functionaliteit. Zsh biedt een aantal unieke functies, zoals File globbing, laadbare modules, pad uitbreiding, opstarten/shutdown scripts, en meer. In deze gids gaan we ons voornamelijk richten op bash.
de basis van Bash
nu we begrijpen hoe scripts en shells werken, is het tijd om een paar tips over scripting met bash door te nemen., Daarna duiken we in de basisprincipes zoals het toewijzen van variabelen en het schrijven van conditionals.
Woordscheiding
een van de eerste belangrijke bouwstenen om je hoofd rond te wikkelen is hoe bash woordscheidingstekens gebruikt. Als je naar voorbeelden van script kijkt, zie je metacharacters zoals ; en &. Dit zijn slechts twee van de zeven karakters die bash gebruikt om woorden te scheiden tijdens het scrippen.
We zullen een lijst van alle zeven hieronder opnemen. Als je deze ziet, maak je geen zorgen. Ze houden alles georganiseerd., Zoals je later in de sectie conditionals zult zien, hangt het type gebruikte syntaxis af van wat je probeert te bereiken.
- <
- >
- ;
- &
handige organisatie commando ‘s
bash geeft u ook een aantal commando’ s die u kunt gebruiken om bestanden te organiseren. We hebben een aantal van deze behandeld in de Terminal commando sectie, maar hier zijn er nog een paar:
- mkdir (make directory) wordt gebruikt om een nieuwe map of map aan te maken.,
- mv (move) wordt gebruikt om een of meer bestanden of mappen naar een andere plaats te verplaatsen.
- rm (verwijderen) wordt gebruikt om bestanden te verwijderen.
- rmdir (map verwijderen) wordt gebruikt om een map te verwijderen.
Weergavecommando ‘s
Als u meer wilt doen dan alleen bestanden verplaatsen, kunt u enkele van deze weergavecommando’ s gebruiken om de informatie te zien die de bestanden bevatten. Hier zijn er twee:
- cat (concatenate) leest de inhoud van een of meer bestanden en geeft deze weer. Dit is ideaal voor kortere bestanden.,
- less is een ander weergavecommando dat geweldig is voor het bekijken van langere bestanden omdat het slechts één scherm met informatie per keer toont en handige navigatiefuncties bevat om naar specifieke woorden te zoeken of naar de volgende of vorige pagina te gaan.
Wat zijn variabelen?
variabelen worden placeholders genoemd die naar een bepaalde waarde verwijzen. Wanneer u de naam van de variabele intypt, behandelt het systeem het alsof u de waarde waarnaar het verwijst hebt ingevoerd. U kunt variabelen een naam geven met cijfers, letters, bestandsnamen of andere soorten gegevens.,
variabelen maken het makkelijker om scripts te schrijven die specifieke stukjes gegevens gebruiken — zelfs als die gegevens altijd veranderen, zoals gebruikersnamen. In plaats van aparte commando ‘ s te schrijven voor meerdere variaties van Gebruikersnamen, kun je gewoon een variabele gebruikersnaam definiëren en deze gebruiken als een plaatshouder voor alle variaties die gebruikers zouden kunnen gebruiken.
het toewijzen van variabelen is vrij eenvoudig. Je hoeft alleen maar een variabele naam en een waarde op te geven, zoals zo:
Variable_Name=value
hoofdletters maken hier niet uit., De variabele naam en waarde kunnen ongeveer zijn wat je wilt, zoals:
x=1
var1=hello
var2=GOODBYE
Dat gezegd hebbende, zijn er enkele beperkingen over welke woorden of tekens Je kunt gebruiken voor variabelen (die we hierna zullen behandelen). Maar eerst is het belangrijk op te merken dat bash geen spaties voor of na het gelijkteken gebruikt tijdens het toewijzen van variabelen.,
dat betekent dat u een variabele niet met spaties kunt toewijzen, zoals dit:
Incorrect:
x = 1
u moet deze zonder spaties toewijzen, zoals dit:
Correct:
x=1
U kunt echter spaties in namen van variabelen gebruiken door aanhalingstekens te gebruiken, zoals dit:
correct:
x="Number one"
we moeten ook vermelden dat u een Mac-script kunt gebruiken om Terminal te vertellen de waarde van een variabele aan u terug te geven. Je kunt dit op twee manieren doen., In beide voorbeelden is “x” de variabele waarde die u zoekt:
$x
${x}
U kunt ook een variabele verwijzen naar het resultaat van een commando, zoals:
variable1=$(Some Bash Command)
variabele restricties
So, what zijn die variabele beperkingen waar we het net over hadden? Bash heeft twintig “gereserveerde woorden” die je niet kunt gebruiken voor variabelen omdat ze al zijn toegewezen aan andere belangrijke functies binnen de shell., Wanneer u variabelen toewijst, moet u deze woorden vermijden en zult u geen problemen met uw script tegenkomen.
Hier zijn ze:
- ! en time
- ]
- { en }
- if, then, elif, else, and fi
- case and esac
- select and in
- while, until, for, do, and done
- functie
single vs., Dubbele aanhalingstekens
'
tekst ingekapseld in enkele aanhalingstekens betekent dat het strikt die tekst als gelezen bevat – het zal geen betekenis geven aan speciale tekens, zoals variabelen of variabele beperkingen.
"
dubbele aanhalingstekens behouden de letterlijke waarde van sommige tekens, maar het kan enkele variabelen of tekens bevatten met een speciale betekenis erin, waaronder:
$
'
\
!
de Betekenis van het teken !, Binnen dubbele aanhalingstekens wordt alleen bewaard als geschiedenis uitbreiding is ingeschakeld, en \ moet worden gevolgd door een ander speciaal teken (of een nieuwe regel).
Wat zijn voorwaarden?
de volgende grote stap in het leren van Mac-scripts is uitzoeken hoe conditionals te gebruiken. In wezen, conditionals zijn als / dan verklaringen, die voorwaarden stellen en dan zien of ze worden voldaan (dat wil zeggen als het 6am, dan zeggen “goedemorgen”).
In bash ziet de syntaxis van if / then statements er als volgt uit:
if <condition>; then
<command(s)>
fi
laten we dat opsplitsen.,
- begin met” if ” en volg het onmiddellijk met zijn voorwaarden.
- gebruik een puntkomma om de “IF” – voorwaarde te scheiden en het “THEN” – commando te starten. Dit commando zal alleen plaatsvinden als aan de voorwaarde” als ” is voldaan.
- sluit tot slot het if/then statement met ” fi “– dit is gewoon” if ” achterwaarts gespeld.
Hier is een voorbeeld:
if ; then
echo "That number is greater than or equal to 4"
fi
Hier controleren we of een getal, 5, groter of gelijk is aan (dat is de”- ge”) een ander getal, 4., Als dat zo is, zal het” then “commando uitgevoerd worden, en ons gevraagd worden met een bericht:” dat getal is groter dan of gelijk aan 4.”Stel je voor hoe het veranderen van de 5 en het gebruik van een variabele in plaats daarvan zou kunnen verbeteren van de functionaliteit van dit script.
zodra u deze statements te pakken krijgt, kunt u leren hoe u “else” gebruikt om uw commando ‘ s een alternatieve actie te geven in het geval dat niet aan de “als” voorwaarden wordt voldaan. Voor meer gecompliceerde commando ‘ s kun je zelfs “elif” (else if) gebruiken om voorwaarden toe te voegen aan “else” zonder dat je meer “else” voorwaarden moedwillig herschrijft.,
scripts met MDM-oplossingen
net zoals het gebruik van Mac-scripts individuele terminalcommando ‘ s krachtiger kan maken, kan het gebruik van scripts met uw MDM-oplossing uw volledige beheerpotentieel naar buiten brengen.
of u nu gebruik maakt van onze aangepaste Script functie of het specificeren van pre – en postinstall gedrag voor aangepaste apps, scripting met een MDM kunt u tal van geavanceerde apparaat beheer acties.,
hopelijk heb je geleerd dat je scripts kunt gebruiken om multi-step taken sneller en nauwkeuriger te voltooien – en dat je geavanceerde beleidsregels kunt script en ze naar alle apparaten van je bedrijf kunt sturen met behulp van een MDM-oplossing, zoals Kandji.
naast het in actie brengen van uw scripts, heeft Kandji tal van andere geweldige functies, zoals één-klik naleving van belangrijke beveiligingsbenchmarks en zero-touch implementatie. Het is alles wat uw bedrijf nodig heeft om uw vloot te beheren, van implementatie tot pensionering.