i denna nybörjarvänlig guide kommer vi att gå igenom byggstenarna i Mac scripting, och sedan ser vi hur man använder skript med din mobile device management (MDM) lösning kan hjälpa det mer effektivt hantera företagsägda enheter.
här är en snabb översikt över några av de ämnen som vi kommer att täcka:
- Vad är skript?
- använda skript med en MDM-lösning
- Terminalkommandon vs. skalskript
- Vad är skal: Bash vs. Zsh?,
- grunderna i Scripting med Bash
Vad är Scripts?
skript är små datorprogram som samlar en serie kommandon till en fil. Medan du skriver kommandon i Apples Terminal görs vanligtvis en efter en, med ett skript, kan du utföra en lång lista med kommandon med bara en interaktion.
medan du vanligtvis inte använder Mac-skript för att göra större program kan du använda dem för att automatisera rutinmässiga datorbeteenden. Till exempel, om du har en tidskrävande rutin som tar en hel del klick, Du kan skriva upp ett skript och göra det med bara en.,
Apple lägger det bra i sin Skalskriptprimer:
att skriva ett skalskript är som att cykla. Du faller av och skrapar knäna mycket i början. Med lite mer erfarenhet blir du bekväm att rida dem runt staden, men också snabbt upptäcka varför de flesta kör bilar för längre resor.
Shell scripting anses allmänt vara ett limspråk, perfekt för att skapa små bitar av kod som ansluter andra verktyg tillsammans. Medan skalskript kan användas för mer komplexa uppgifter, är de vanligtvis inte det bästa valet.,
att lära sig manus liknar att lära sig ett programmeringsspråk. Du börjar med grunderna och bygga upp din kunskap därifrån.
så i den här guiden kommer vi att fokusera på byggstenarna i scripting. Informationen vi täcker här kommer att vara användbar i många inställningar, men vi kommer i slutändan att fokusera på hur skript kan hjälpa dig att utföra åtgärder på flera enheter med hjälp av en MDM-lösning.
vad kan skript göra?
i huvudsak låter skript dig göra komplicerade saker snabbt, exakt och enkelt.,
- snabbt eftersom användning av Mac – skript i en MDM kan automatisera tråkiga uppgifter, som att komma åt ett datorprogram på 100 företagsenheter-med noll klick snarare än 100.
- exakt eftersom ett bra skript kommer att utföra en definierad åtgärd på samma sätt varje gång – medan lita på en person att slutföra uppgiften manuellt kan leda till fel, inkonsekvens och förvirring.
- lätt eftersom du kan utföra en riktigt komplicerad och nyanserad uppgift med en serie enkla skript som bryter ner den i mindre bitar.,
använda skript med en MDM-lösning
använda skript på egen hand kan hjälpa dig att spara tid, men att använda dem med en MDM-lösning, som vår produkt Kandji, öppnar upp mycket mer kraft och frihet. När du har skrivit ett skript du vill kan du köra det genom din MDM-lösning för att tillämpa det på alla företagets enheter.
hur skript används i MDM-lösningar kommer att skilja sig beroende på produkten, men med Kandji kan du använda dem för att göra saker som anpassa Anpassad appinstallation för att möta ditt företags exakta behov., (Du kan läsa vår guide till appdistribution om du behöver en primer på detta.om ditt företag vill installera en anpassad app på alla företagsenheter kan du ange vissa preinstall-eller postinstall-åtgärder genom att lägga till skript i sina respektive inmatningsrutor (se i bilden nedan):
Preinstall-skript
Du kan skapa ett Preinstall-skript om du vill utföra en åtgärd innan installationen sker., Förinstallera skript används vanligtvis för att:
- utföra rensningsuppgifter som normalt skulle göras manuellt innan du installerar om programvara, till exempel att ta bort licensiering, cachar, databasfiler och mer.
- kör konfigurationsfiler. Många program använder massdistributionsalternativ som fungerar genom att hitta konfigurationsfiler placerade innan installationsprogrammet körs. Du kan till exempel använda ett Preinstall-skript för att skapa en viss mapp och skriva en fil i den mappen som innehåller någon form av identifierare., När installationen sker hittar installationsprogrammet denna information och använder den för att automatiskt konfigurera programmet.
Postinstall-skript
Du kan också skapa ett postinstall-skript, som vanligtvis används för att konfigurera programinställningar innan programvaran körs. Om du vill dela ett vanligt exempel kan du använda ett posinstall-skript för att konfigurera användarinställningar för Google Chrome och se till att automatiska uppdateringar konfigureras.,
som du kan tänka dig ger skriptet dessa beteenden dig mycket mer kontroll över installationsprocessen, och det kan spara ditt IT-team mycket tid om de skulle behöva göra det manuellt annars.
anpassade skript
Kandji har också en egen Scriptfunktion som låter dig lägga till alla skript som stöds av macOS. Dessa Mac-skript kan köras en gång per enhet eller kontinuerligt. Det finns också en saneringsskript alternativ som du kan inkludera när det behövs., Du kan se mer av de tillgängliga alternativen på Kandjis anpassade Scriptsida nedan:
byggstenar av Scripting
Nu när vi har en fungerande definition av vilka skript som är och vet vad de kan åstadkomma, låt oss lära oss hur allt fungerar. I det här avsnittet kommer vi att bryta ner några av de stora byggstenarna i Mac-skript, inklusive Terminalkommandon, skalskript och två vanliga skal.
Vad är Terminalkommandon?
Terminal är macOS-command line interface (CLI)., Det låter användare göra avancerade ändringar i sin Mac med kommandon, som är bara instruktioner till din Mac om vad du vill att det ska göra.
bildkälla: support.apple.com
Ett varningsord, men: Terminal är ett otroligt kraftfullt verktyg. Noggrant undersöka och testa kommandon innan du kör dem, och när det är möjligt, testa med en VM istället för en produktionsmaskin.
När du skriver in kommandon i Terminal kan du kommunicera med en tolk eller ett skal. Tolken tar kod och översätter den till maskinspråk som operativsystemet kan förstå.,
för att öppna Terminal, klicka bara på ”Program”, öppna mappen ”Verktyg” och dubbelklicka sedan på ”Terminal”-appen. Du kan använda Terminalkommandon för allt som du kan åstadkomma i GUI – och mycket mer.,
här är några grundläggande exempel på kommandon:
- Lägg till text i ett dokument (om dokumentet inte finns kommer en ny att skapas)
echo 'Welcome to my document!' > ~/Desktop/myDocument.txt
- skapa en mapp på en viss plats
mkdir ~/Desktop/myFolder
- flytta ett dokument till en viss plats
mv ~/Desktop/myDocument.txt ~Desktop/myFolder
- öppna ett dokument från en viss plats
open ~/Desktop/myFolder/myDocument.txt
detta är ett bra sätt att se hur du kan använda kommandon för att göra din Mac utföra vissa beteenden, men det är inte särskilt praktiskt om du vill utföra en rad uppgifter., Vi ser hur skript gör det möjligt i nästa avsnitt.
Vad är Mac-Script?
självklart kommer pluggning av Terminalkommandon en efter en att bli ganska tråkig när du försöker rulla ut ändringar för hundratals företagsägda Mac-enheter. Så i stället för att utföra enskilda kommandon som vårt exempel i det sista avsnittet kan du göra alla dina kommandon till ett skript – ett skalskript-som kan köras utan direkt interaktion. Detta gör det lättare att utföra upprepade eller flera steg processer samtidigt minimera fel.,
ett skalskript är bara en textfil som innehåller Unix – kommandon (kommandon som pratar med ditt operativsystem-macOS är ett UNIX-baserat operativsystem). Allt du kan göra med Terminal kommandon Du kan göra med Mac shell skript, bara mycket lättare. Du kan även automatisera skalskript med verktyg som launchd.
kör Shell Script: Mac Terminal
det är faktiskt ganska enkelt att köra ett skalskript. Om vi skulle göra ett Mac-skript av Terminalkommandona som introducerades ovan, skulle vi bara behöva göra det här:
- skriv #!/ bin / bash in i första raden., De två första tecknen, som kallas en ”shebang” ( # !), låt Terminal veta att du skriver ett skalskript. Resten av raden anger vilket skal scripten ska köras med. I det här fallet är det bash, men du kan också ange ”zsh”, vilket är ett annat skal som vi också täcker i nästa avsnitt.
- Lägg till kommandona i en scriptredigerare. Precis som ordbehandlare är specialiserade för att skriva, skriptredigerare är specialiserade för skript, gör saker som färgkodning ord av vissa funktionella kategorier och flaggning fel., Det finns många skriptredigerare där ute, men två av de mer populära (och fria) är atom och BBEdit.
- spara det som ”myscript.bash ” eller som något annat namn-se bara till att du behåller filtillägget (delen efter perioden) märkt som bash. Annars kommer terminalen inte att kunna köra det ordentligt.
- Auktorisera Terminal för att utföra ditt skript. Nu behöver du bara ge Terminal tillstånd att köra ditt manus., Kopiera inte och klistra in innehållet – du måste berätta Terminal för att göra scriptfilen körbar med kommandot chmod +x, till exempel:
chmod +x ~/Desktop/myFolder/myscript.bash
- tryck på ”enter” för att köra skalskript. Macs Terminal tar hand om resten!
det är det – programmet kommer att utföra listan över kommandon i ordning. Det kommer förmodligen att hända snabbare än du kan följa, men det är bara en annan fördel med Mac scripting – det är riktigt snabbt.,
innan vi pratar om andra saker du kan göra med Skript, Låt oss få en översikt över vilka skal (som ”bash”, den som vi använde i det här exemplet) är.
Vad är skal?
När du öppnar Terminal startar systemet ett skalprogram. Skal är kommandoraden tolkar som, enkelt uttryckt, innebär att de tar dina kommandon och ge dem till operativsystemet för att sätta i handling.
som standard använder Mac antingen zsh (Z shell) eller bash (Bourne-again Shell) som skal-eller kommandoradstolk. Din Mac Standard skal beror på iterationen av macOS som du använder.,
- zsh (Mac Catalina): om du har skapat ett nytt användarkonto på MacOS Catalina beta eller senare är ditt standardskal zsh. macOS iterationer före denna användning bash.
- bash (tidigare macOS): om du använder macOS Mojave och tidigare är bash ditt standardskal.
Om ditt konto använder ett bash-eller zsh Mac-standardskal kan du ändra det i några få steg., Här är vad du behöver göra:
- Klicka på Apple-menyn
- välj Systeminställningar> användare& grupper
- Klicka på låset och ange ditt kontonamn och lösenord.
- Kontroll-klicka på ditt användarnamn i listan över användare > välj Avancerade alternativ
- titta på menyn” inloggningsskal ” och välj ett skal
- Klicka på OK när du hittade det skal du vill ha
Bash vs., Zsh: Mac Scripting
Bash och zsh har faktiskt många funktioner gemensamt, och du kan byta från den ena till den andra utan att träffa för mycket av en inlärningskurva. Så, innan vi kommer in i vad som gör dem olika, Låt oss se några ställen där de överlappar varandra.
- z kommando: kommandot Z låter utvecklare navigera genom sina kataloger enkelt, vilket ger dem möjlighet att besöka en nyligen eller ofta besökta katalog genom att skriva ”z” följt av katalognamnet., Det här är snabbare än att skriva ut hela platsen som vi var tvungna att göra när vi öppnade dokumentet i terminalkommandot.
- automatisk komplettering: båda skalen innehåller också en kommandorad automatisk komplett funktion. För att använda den här funktionen måste du bara skriva ut ett kommando, trycka på ” – ” – tangenten och tryck sedan på tab. Du ser en lista över tillgängliga alternativ för kommandot, som du kan gå igenom tills du hittar den du vill ha.,
- Automatisk korrigering: båda skalen använder en form av automatisk korrigering, men bashs funktion måste aktiveras först medan zsh har en inbyggd automatisk korrigering funktion som automatiskt kommer att upptäcka små stavfel.
- color-Customization: både zsh och bash erbjuder en hel del färg anpassning verktyg som gör förståelse script enklare i korthet.
När det gäller skillnader har bash varit standardskalet för MacOS-användare fram till Catalina, och det är fortfarande det mest använda skalet bland IT-administratörer., Eftersom bash har en enorm följande, Det finns en hel del resurser ute, vilket gör det bra för nybörjare.
Bash är en del av Bourne familjen skal, en kategori som även omfattar sh, aska, zsh och ksh. Den är laddad med fler funktioner än vi realistiskt kan lista här, men några av dess unika funktioner inkluderar looping, villkorliga konstruktioner, tilde och brace expansioner och alias.,
zsh, Mac Catalinas standardskal, å andra sidan, är inte lika populär som bash, men det har fortfarande en enorm följande, inklusive Open source ramar som Oh My Zsh, och är allmänt berömd för sin funktionalitet. Zsh erbjuder några unika funktioner som File globbing, lastbara moduler, väg expansion, start/avstängning skript, och mer. I den här guiden kommer vi främst att fokusera på bash.
grunderna i Bash
nu när vi förstår hur skript och skal fungerar är det dags att gå över några tips om skript med bash., Därefter dyker vi in i grunderna som att tilldela variabler och skriva villkor.
Ordavskiljning
ett av de första stora byggstenarna för att linda huvudet runt är hur bash använder ordavskiljare. När du tittar på exempel på skript ser du metacharacters som; och &. Dessa är bara två av de sju tecken som bash använder för att skilja ord medan man skriver.
Vi kommer att inkludera en lista över alla sju nedan. När du ser dessa, oroa dig inte. De håller allt organiserat., Som du ser senare i avsnittet conditionals beror typen av syntax som används på vad du försöker uppnå.
- (
- )
- <
- >
- ;
- &
- /
Användbara Organisationskommandon
bash ger dig också ett antal kommandon som du kan använda för att organisera filer. Vi täckte några av dessa i avsnittet Terminal command, men här är några fler:
- mkdir (make directory) används för att skapa en ny katalog eller mapp.,
- MV (move) används för att flytta en eller flera filer eller kataloger till en annan plats.
- rm (remove) används för att radera filer.
- rmdir (remove directory) används för att ta bort en katalog.
Visningskommandon
om du vill göra mer än att bara flytta filer runt kan du använda några av dessa visningskommandon för att se informationen som filerna innehåller. Här är två av dem:
- cat (concatenate) läser innehållet i en eller flera filer och visar den. Detta är idealiskt för kortare filer.,
- mindre är ett annat visningskommando som är bra för att visa längre filer eftersom det bara visar en skärm med information åt gången och innehåller användbara navigeringsfunktioner för att söka efter specifika ord eller gå till nästa eller föregående sida.
Vad är variabler?
variabler heter platshållare som refererar till ett visst värde. När du skriver in variabelnamnet behandlar systemet det som om du har skrivit in det värde som det refererar till. Du kan namnge variabler med hjälp av siffror, bokstäver, filnamn eller andra typer av data.,
variabler gör det lättare att skriva skript som använder specifika bitar av data-även om dessa data alltid ändras, t.ex. användarnamn. I stället för att skriva separata kommandon för flera varianter av användarnamn, du kan bara definiera ett användarnamn variabel och använda den som en platshållare för alla de variationer som användare kan använda.
att tilldela variabler är ganska lätt att göra. Du behöver bara ange ett variabelnamn och ett värde, som så:
Variable_Name=value
kapitalisering spelar ingen roll här., Variabeln namn och värde kan vara precis vad du vill, till exempel:
x=1
var1=hello
var2=GOODBYE
som sagt, det finns vissa begränsningar om vilka ord eller tecken du kan använda för variabler (som vi kommer att täcka nästa). Men för det första är det viktigt att notera att bash inte använder mellanslag före eller efter lika tecken medan du tilldelar variabler.,
det betyder att du inte kan tilldela en variabel med mellanslag, så här:
felaktigt:
x = 1
Du måste tilldela den utan mellanslag, så här:
korrekt:
x=1
Du kan dock använda mellanslag i variabelnamn med hjälp av citat, så här:
korrekt:
x="Number one"
vi bör också nämna att du kan använda ett Mac-skript för att berätta terminal för att returnera värdet på en variabel till dig. Du kan göra det på två sätt., I båda exemplen är ”x” variabelvärdet som du letar efter:
$x
${x}
Du kan också göra en variabel hänvisa till resultatet av ett kommando, till exempel:
variable1=$(Some Bash Command)
Variabelrestriktioner
Så, vilka är de variabelrestriktioner vi just nämnde? Bash har tjugo ”reserverade ord” som du inte kan använda för variabler eftersom de redan är tilldelade till andra viktiga funktioner inom skalet., När du tilldelar variabler måste du bara undvika dessa ord och du kommer inte att stöta på några problem med ditt manus.
här är de:
- ! och tid
- ]
- { och }
- Om, sedan, elif, else, och fi
- fall och ESAC
- Välj och i
- medan, tills, för, gör och gjort
- funktion
single vs., Double Quotes
'
Text inkapslad i enstaka citat innebär att den innehåller strikt den texten som läst – det kommer inte att ge mening till några specialtecken, såsom variabler eller variabelbegränsningar.
"
dubbla citattecken bevarar bokstavvärdet för vissa tecken, men det kan innehålla vissa variabler eller tecken med särskild betydelse i dem, inklusive:
$
'
\
!
betydelsen av tecknet !, inom dubbla citattecken bevaras endast när historikexpansionen är aktiverad, och \ måste följas av ett annat specialtecken (eller en ny rad).
Vad är Villkor?
nästa stora steg i att lära Mac scripting är att räkna ut hur man använder villkor. I huvudsak villkor är om / sedan uttalanden, som ställer villkor och sedan se om de är uppfyllda (dvs om det är 06: 00, sedan säga ”God morgon”).
i bash ser syntaxen för if/then-uttalanden ut så här:
if <condition>; then
<command(s)>
fi
låt oss bryta ner det.,
- börja med ”if” och följ det omedelbart med dess villkor.
- använd ett semikolon för att separera ”IF” – tillståndet och börja kommandot ”THEN”. Detta kommando kommer endast att äga rum om villkoret” om ” är uppfyllt.
- stäng slutligen if / then – uttalandet med ”fi” – det här är bara ”om” stavat bakåt.
här är ett exempel:
if ; then
echo "That number is greater than or equal to 4"
fi
här kontrollerar vi om ett nummer, 5, är större än eller lika med (det är ”-ge”) ett annat nummer, 4., Om det är, kommer kommandot” då ”att utföras och uppmanar oss med ett meddelande:” det numret är större än eller lika med 4.”Föreställ dig hur du ändrar 5 och använder en variabel istället kan förbättra funktionaliteten i det här skriptet.
När du får tag på dessa uttalanden kan du lära dig att använda ”else” för att ge dina kommandon en alternativ åtgärd om ”if” – villkoren inte uppfylls. För mer komplicerade kommandon kan du till och med använda” elif ”(else if) för att lägga till villkor för” else ”utan att omskriva mer” else ” – villkor.,
skript med MDM-lösningar
precis som att använda Mac-skript kan göra enskilda terminalkommandon kraftfullare, med hjälp av skript med din MDM-lösning kan du få ut din fulla hanteringspotential.
oavsett om du använder vår egen Scriptfunktion eller specificerar pre – och postinstall-beteenden för egna appar kan scripting med en MDM låta dig utföra många avancerade enhetshanteringsåtgärder.,
förhoppningsvis har du lärt dig att du kan använda skript för att slutföra flera steg uppgifter snabbare och mer exakt – och att du kan skript avancerade policyer och skicka dem till alla företagets enheter med hjälp av en MDM-lösning, som Kandji.
utöver att sätta dina skript i handling, Kandji har massor av andra bra funktioner som ett klick överensstämmelse med stora säkerhetsriktmärken och zero-touch distribution. Det är allt ditt företag behöver för att hantera din flotta från utplacering till pensionering.