Guida per Apple IT: Introduzione allo scripting Mac

Guida per Apple IT: Introduzione allo scripting Mac

In questa guida per principianti, ti guideremo attraverso gli elementi costitutivi dello scripting Mac e poi vedremo come l’utilizzo di script con la soluzione MDM (Mobile Device Management) può aiutarti a gestire in modo più efficace i dispositivi di proprietà dell’azienda.

Ecco una rapida panoramica di alcuni degli argomenti che tratteremo:

  • Cosa sono gli script?
  • Utilizzo di script con una soluzione MDM
  • Comandi di terminale vs script di Shell
  • Cosa sono le shell: Bash vs. Zsh?,
  • Nozioni di base di Scripting con Bash

Cosa sono gli script?

Gli script sono piccoli programmi per computer che raccolgono una serie di comandi in un unico file. Durante la digitazione comandi nel terminale di Apple è in genere fatto uno per uno, con uno script, è possibile eseguire una lunga lista di comandi con una sola interazione.

Mentre in genere non si utilizzano gli script Mac per creare programmi più grandi, è possibile utilizzarli per automatizzare i comportamenti di routine del computer. Ad esempio, se hai una routine che richiede molto tempo e richiede molti clic, puoi scrivere uno script e farlo con uno solo.,

Apple lo mette bene nella loro Shell Scripting Primer:

Scrivere uno script di shell è come andare in bicicletta. Si cade e raschiare le ginocchia un sacco in un primo momento. Con un po ‘ più di esperienza, ti senti a tuo agio a guidarli in città, ma scopri anche rapidamente perché la maggior parte delle persone guida le auto per viaggi più lunghi.

Lo scripting della shell è generalmente considerato un linguaggio glue, ideale per creare piccoli pezzi di codice che collegano insieme altri strumenti. Mentre gli script di shell possono essere utilizzati per attività più complesse, di solito non sono la scelta migliore.,

Imparare a scrivere è simile all’apprendimento di un linguaggio di programmazione. Si inizia con le basi e costruire la vostra conoscenza da lì.

Quindi, in questa guida, ci concentreremo sugli elementi costitutivi dello scripting. Le informazioni che trattiamo qui saranno utili in molte impostazioni, ma alla fine ci concentreremo su come lo scripting può aiutarti a eseguire azioni su più dispositivi utilizzando una soluzione MDM.

Cosa possono fare gli script?

In sostanza, gli script consentono di fare cose complicate in modo rapido, preciso e semplice.,

  • Rapidamente perché l’utilizzo di script Mac in un MDM può automatizzare attività noiose, come l’accesso a un programma per computer su 100 dispositivi aziendali, con zero clic anziché 100.
  • Accuratamente perché un buon script eseguirà un’azione definita allo stesso modo ogni volta – mentre fidarsi di una persona per completare l’attività manualmente potrebbe portare a errori, incoerenza e confusione.
  • Facilmente perché si può realizzare un compito davvero complicato e sfumato con una serie di semplici script che scompongono in pezzi più piccoli.,

Usare gli script con una soluzione MDM

Usare gli script da soli può aiutarti a risparmiare tempo, ma usarli con una soluzione MDM, come il nostro prodotto Kandji, apre molta più potenza e libertà. Dopo aver scritto uno script che ti piace, puoi eseguirlo attraverso la tua soluzione MDM per applicarlo a tutti i dispositivi della tua azienda.

Il modo in cui gli script vengono utilizzati nelle soluzioni MDM sarà diverso a seconda del prodotto, ma con Kandji puoi usarli per fare cose come personalizzare l’installazione di app personalizzate per soddisfare le esigenze esatte della tua azienda., (Puoi leggere la nostra guida alla distribuzione delle app se hai bisogno di un primer su questo.)

In questo caso, se la tua azienda desidera installare un’app personalizzata su tutti i dispositivi aziendali, puoi specificare determinate azioni di preinstallazione o postinstallazione aggiungendo script alle rispettive caselle di input (vedi nell’immagine sotto):

Script di preinstallazione

Puoi creare uno script di preinstallazione se vuoi eseguire un’azione prima che si verifichi l’installazione., Gli script di preinstallazione sono generalmente utilizzati per:

  • Eseguire attività di pulizia che normalmente verrebbero eseguite manualmente prima di reinstallare il software, come la rimozione di licenze, cache, file di database e altro ancora.
  • Eseguire i file di configurazione. Molte applicazioni utilizzano opzioni di distribuzione di massa che funzionano trovando i file di configurazione posizionati prima dell’esecuzione del programma di installazione. Ad esempio, è possibile utilizzare uno script di preinstallazione per creare una particolare cartella e scrivere un file all’interno di tale cartella contenente una sorta di identificatore., Quando si verifica l’installazione, il programma di installazione trova queste informazioni e le utilizza per configurare automaticamente l’applicazione.

Script Postinstall

È inoltre possibile creare uno script postinstall, che viene generalmente utilizzato per configurare le preferenze dell’applicazione prima dell’esecuzione del software. Per condividere un esempio comune, è possibile utilizzare uno script posinstall per configurare le preferenze utente per Google Chrome e assicurarsi che siano configurati gli aggiornamenti automatici.,

Come puoi immaginare, lo scripting di questi comportamenti ti dà molto più controllo sul processo di installazione e può far risparmiare molto tempo al tuo team IT se dovesse farlo manualmente altrimenti.

Script personalizzati

Kandji ha anche una funzione di script personalizzato che consente di aggiungere qualsiasi script supportato da macOS. Questi script Mac possono essere eseguiti una volta per dispositivo o continuamente. C’è anche un’opzione di script di correzione che puoi includere quando necessario., Puoi vedere altre opzioni disponibili nella pagina di script personalizzato di Kandji qui sotto:

Blocchi di script

Ora che abbiamo una definizione funzionante di quali script sono e sappiamo cosa possono realizzare, impariamo come funziona tutto. In questa sezione, analizzeremo alcuni dei principali elementi costitutivi dello scripting Mac, inclusi comandi da terminale, script di shell e due shell comuni.

Cosa sono i comandi da terminale?

Il terminale è la CLI (Command Line Interface) di macOS., Consente agli utenti di apportare modifiche avanzate al proprio Mac utilizzando i comandi, che sono solo istruzioni per il tuo Mac su ciò che vuoi che faccia.

Fonte immagine: support.apple.com

Una parola di avvertimento, però: Terminal è uno strumento incredibilmente potente. Ricercare e testare accuratamente i comandi prima di eseguirli e, quando possibile, testare con una VM anziché una macchina di produzione.

Quando si digitano i comandi nel Terminale, consente di comunicare con un interprete o una shell. L’interprete prende il codice e lo traduce in linguaggio macchina che il sistema operativo può capire.,

Per aprire Terminal, basta fare clic su “Applicazioni”, aprire la cartella “Utility”, quindi fare doppio clic sull’app “Terminal”. È possibile utilizzare i comandi del terminale per tutto ciò che si può realizzare nella GUI – e molto altro ancora.,

di seguito alcuni esempi di base di comandi:

  • Aggiungere del testo a un documento (se il documento non esiste, ne verrà creata)
echo 'Welcome to my document!' > ~/Desktop/myDocument.txt
  • creare una cartella in una certa posizione
mkdir ~/Desktop/myFolder
  • Spostare un documento di una certa posizione
mv ~/Desktop/myDocument.txt ~Desktop/myFolder
  • Aprire un documento da una determinata posizione
open ~/Desktop/myFolder/myDocument.txt

Questo è un ottimo modo per vedere come è possibile utilizzare i comandi per rendere il vostro Mac eseguire determinati comportamenti, ma non è molto pratico, se si desidera eseguire una serie di compiti., Vedremo come gli script rendono questo possibile nella prossima sezione.

Cosa sono gli script di shell Mac?

Naturalmente, collegare i comandi del terminale uno per uno diventerà piuttosto noioso quando si sta cercando di implementare le modifiche per centinaia di dispositivi Mac di proprietà dell’azienda. Quindi, piuttosto che eseguire singoli comandi come il nostro esempio nell’ultima sezione, puoi trasformare tutti i tuoi comandi in uno script – uno script di shell – che può essere eseguito senza interazione diretta. Ciò semplifica l’esecuzione di processi ripetuti o multi-step riducendo al minimo gli errori.,

Uno script di shell è solo un file di testo contenente comandi UNIX (comandi che parlano con il tuo sistema operativo – macOS è un sistema operativo basato su UNIX). Tutto ciò che si può fare con i comandi da terminale si può fare con gli script di shell Mac, solo molto più facilmente. È anche possibile automatizzare gli script di shell con strumenti come launchd.

Esegui Shell Script: Mac Terminal

In realtà è piuttosto semplice eseguire uno script di shell. Se dovessimo creare uno script Mac dai comandi del terminale introdotti sopra, dovremmo solo fare questo:

  1. Digitare #!/ bin / bash nella prima riga., I primi due personaggi, chiamati “shebang” (#!), fai sapere a Terminal che stai digitando uno script di shell. Il resto della riga specifica con quale shell devono essere eseguiti gli script. In questo caso, è bash, ma puoi anche specificare “zsh”, che è un’altra shell che tratteremo anche nella prossima sezione.
  2. Aggiungere i comandi in un editor di script. Proprio come i word processor sono specializzati per la scrittura, gli editor di script sono specializzati per lo scripting, facendo cose come parole di codifica a colori di determinate categorie funzionali e errori di segnalazione., Ci sono molti editor di script là fuori, ma due dei più popolari (e gratuiti) sono Atom e bbedit.
  3. Salvarlo come ” myscript.bash” o come qualsiasi altro nome-assicurati di mantenere l’estensione del file (la parte dopo il periodo) etichettata come bash. Altrimenti, il Terminale non sarà in grado di eseguirlo correttamente.
  4. Autorizza Terminal ad eseguire lo script. Ora devi solo dare il permesso al terminale per eseguire il tuo script., Non copiare e incollare il contenuto – devi dire a Terminal di rendere eseguibile il file di script usando il comando chmod +x, ad esempio:
    chmod +x ~/Desktop/myFolder/myscript.bash
  5. Premere “invio” per eseguire lo script della shell. Il terminale Mac gestirà il resto!

Questo è tutto – il programma eseguirà l’elenco dei comandi in ordine. Probabilmente accadrà più velocemente di quanto tu possa seguire, ma questo è solo un altro vantaggio dello scripting Mac: è davvero veloce.,

Prima di parlare di altre cose che puoi fare con gli script, otteniamo una panoramica di quali shell (come “bash”, quella che abbiamo usato in questo esempio) sono.

Cosa sono le Shell?

Quando si apre il terminale, il sistema avvia un programma di shell. Le shell sono interpreti della riga di comando che, in parole povere, significa che prendono i tuoi comandi e li danno al sistema operativo per metterli in azione.

Per impostazione predefinita, Mac utilizza zsh (Z shell) o bash (Bourne-again Shell) come interprete della shell o della riga di comando. La shell predefinita del Mac dipenderà dall’iterazione di macOS che stai utilizzando.,

  • zsh (Mac Catalina): Se hai creato un nuovo account utente su macOS Catalina beta o versione successiva, la shell predefinita è zsh. Le iterazioni macOS prima di questo uso bash.
  • bash (Earlier macOS): Se stai usando macOS Mojave e versioni precedenti, bash è la shell predefinita.

Se il tuo account utilizza una shell predefinita bash o zsh Mac, puoi cambiarla in pochi passaggi., Ecco cosa devi fare:

  1. Fai clic sul menu Apple
  2. Scegli Preferenze di sistema >Utenti& Gruppi
  3. Fai clic sul blocco e inserisci il nome e la password del tuo account.
  4. Control-click il tuo nome utente nella lista degli utenti > Scegliere Opzioni avanzate
  5. Guarda il menu “Login shell” e scegliere una shell
  6. Fare clic su OK quando hai trovato la shell che si desidera

Bash vs., Zsh: Mac Scripting

Bash e zsh in realtà hanno un sacco di caratteristiche in comune, e si può passare da uno all’altro senza colpire troppo di una curva di apprendimento. Quindi, prima di entrare in ciò che li rende diversi, vediamo alcuni punti in cui si sovrappongono.

  • Comando Z: Il comando Z consente agli sviluppatori di navigare facilmente attraverso le loro directory, dando loro la possibilità di visitare una directory visitata di recente o frequentemente digitando “z” seguita dal nome della directory., Questo è più veloce di digitare la posizione completa come abbiamo dovuto fare quando abbiamo aperto il documento nella sezione dei comandi del terminale.
  • Completamento automatico: entrambe le shell includono anche una funzione di completamento automatico della riga di comando. Per utilizzare questa funzione, devi solo digitare un comando, premere il tasto” -”, quindi premere tab. Vedrete un elenco di opzioni disponibili per il comando, che si può passare attraverso fino a trovare quello che si desidera.,
  • Correzione automatica: entrambe le shell utilizzano una forma di correzione automatica, ma la funzione di bash deve essere abilitata prima mentre zsh ha una funzione di correzione automatica integrata che rileva automaticamente piccoli errori di battitura.
  • Color-Customization: sia zsh che bash offrono molti strumenti di personalizzazione del colore che semplificano la comprensione dello script a colpo d’occhio.

Quando si tratta di differenze, bash è stata la shell predefinita per gli utenti macOS fino a Catalina, ed è ancora la shell più utilizzata tra gli amministratori IT., Perché bash ha un enorme seguito, ci sono un sacco di risorse là fuori, che lo rende grande per i principianti.

Bash fa parte della famiglia di conchiglie Bourne, una categoria che include anche sh, ash, zsh e ksh. È caricato con più funzionalità di quelle che possiamo realisticamente elencare qui, ma alcune delle sue funzioni uniche includono looping, costrutti condizionali, espansioni tilde e brace e alias.,

Zsh, la shell predefinita di Mac Catalina, d’altra parte, non è così popolare come bash, ma ha ancora un enorme seguito, inclusi framework open source come Oh My Zsh, ed è ampiamente elogiato per la sua funzionalità. Zsh offre alcune caratteristiche uniche come globbing file, moduli caricabili, espansione percorso, script di avvio/arresto, e altro ancora. In questa guida, ci concentreremo principalmente su bash.

Le basi di Bash

Ora che abbiamo capito come funzionano gli script e le shell, è il momento di andare oltre alcuni suggerimenti su scripting con bash., Dopo di che, ci immergeremo nelle basi come l’assegnazione di variabili e la scrittura condizionali.

Word Separation

Uno dei primi elementi costitutivi importanti per avvolgere la testa è il modo in cui bash usa i separatori di parole. Guardando esempi di script, vedrai metacaratteri come; e &. Questi sono solo due dei sette caratteri che bash usa per separare le parole durante lo scripting.

Includeremo un elenco di tutti e sette di seguito. Quando li vedi, non preoccuparti. Tengono tutto organizzato., Come vedrai più avanti nella sezione condizionali, il tipo di sintassi utilizzato dipende da ciò che stai cercando di realizzare.

  • (
  • )
  • <
  • >
  • ;
  • &
  • |

Organizzazione Utile Comandi

Bash fornisce anche una serie di comandi che è possibile utilizzare per organizzare i file. Abbiamo coperto alcuni di questi nella sezione dei comandi del terminale, ma qui ci sono alcuni di più:

  • mkdir (make directory) viene utilizzato per creare una nuova directory o cartella.,
  • mv (move) viene utilizzato per spostare uno o più file o directory in un’altra posizione.
  • rm (remove) viene utilizzato per eliminare i file.
  • rmdir (remove directory) viene utilizzato per eliminare una directory.

Comandi di visualizzazione

Se si desidera fare di più che spostare i file, è possibile utilizzare alcuni di questi comandi di visualizzazione per visualizzare le informazioni che i file contengono. Qui ce ne sono due:

  • cat (concatenate) legge il contenuto di uno o più file e lo visualizza. Questo è l’ideale per i file più brevi.,
  • less è un altro comando di visualizzazione che è grande per la visualizzazione di file più lunghi perché visualizza solo una schermata di informazioni alla volta e include funzioni di navigazione utili per la ricerca di parole specifiche o andare alla pagina successiva o precedente.

Cosa sono le variabili?

Le variabili sono denominate segnaposto che si riferiscono a un determinato valore. Quando si digita il nome della variabile, il sistema lo considera come se si fosse digitato il valore a cui si riferisce. È possibile assegnare un nome alle variabili utilizzando numeri, lettere, nomi di file o altri tipi di dati.,

Le variabili semplificano la scrittura di script che utilizzano blocchi specifici di dati, anche se tali dati cambiano sempre, come i nomi utente. Invece di scrivere comandi separati per più varianti di nomi utente, puoi semplicemente definire una variabile username e usarla come segnaposto per tutte le variazioni che gli utenti potrebbero utilizzare.

Assegnare variabili è abbastanza facile da fare. Devi solo specificare un nome di variabile e un valore, in questo modo:

Variable_Name=value

La capitalizzazione non ha importanza qui., Il nome e il valore della variabile possono essere qualsiasi cosa tu voglia, come ad esempio:

x=1
var1=hello
var2=GOODBYE

Detto questo, ci sono alcune restrizioni su quali parole o caratteri puoi usare per le variabili (che tratteremo in seguito). Ma prima, è importante notare che bash non usa spazi prima o dopo il segno di uguale durante l’assegnazione delle variabili.,

il che significa Che non è possibile assegnare una variabile con spazi, come:

Errato:

x = 1

È necessario assegnare senza spazi, come:

Corretto:

x=1

Tuttavia, è possibile utilizzare gli spazi nei nomi di variabili utilizzando le virgolette, come:

Corretto:

x="Number one"

ricordiamo inoltre che è possibile utilizzare un Mac script per raccontare Terminale per restituire il valore di una variabile a voi. Puoi farlo in due modi., In entrambi gli esempi, la “x” è il valore della variabile che stai cercando:

$x
${x}

Si può anche rendere una variabile di vedere il risultato di un comando, ad esempio:

variable1=$(Some Bash Command)

Variabile Restrizioni

Così, che cosa sono quei variabile restrizioni di cui abbiamo appena parlato? Bash ha venti “parole riservate” che non è possibile utilizzare per le variabili perché sono già assegnate ad altre importanti funzioni all’interno della shell., Ogni volta che stai assegnando variabili, devi solo evitare queste parole e non ti imbatterai in alcun problema con il tuo script.

Eccoli:

  • ! e ora
  • ]
  • { e }
  • se, poi, elif, altro, e fi
  • caso e esac
  • seleziona e
  • mentre, fino a quando, per, fare, e il fatto
  • funzione

Singolo vs, Virgolette doppie

'

Il testo incapsulato tra virgolette singole significa che contiene rigorosamente quel testo come letto – non darà significato a caratteri speciali, come variabili o restrizioni variabili.

"

Virgolette conserva il valore letterale di alcuni caratteri, ma può contenere alcune variabili o caratteri con significato speciale in essi, tra cui:

$
'
\
!

Il significato del carattere !, tra virgolette doppie viene mantenuto solo quando l’espansione della cronologia è abilitata e \ deve essere seguito da un altro carattere speciale (o da una nuova riga).

Cosa sono i condizionali?

Il prossimo grande passo nell’apprendimento dello scripting Mac è capire come utilizzare i condizionali. In sostanza, i condizionali sono istruzioni if / then, che impostano le condizioni e poi vedono se vengono soddisfatte (cioè SE sono le 6 del mattino, QUINDI dire “Buongiorno”).

In bash, la sintassi delle istruzioni if/then è la seguente:

if <condition>; then
<command(s)>
fi

Scomponiamolo.,

  1. Inizia con “se” e seguilo immediatamente con le sue condizioni.
  2. Utilizzare un punto e virgola per separare la condizione “IF” e iniziare il comando “THEN”. Questo comando avrà luogo solo se la condizione” SE ” è soddisfatta.
  3. Infine, chiudi l’istruzione if/then con ” fi “– questo è solo” if ” scritto all’indietro.

Ecco un esempio:

if ; then
echo "That number is greater than or equal to 4"
fi

Qui, stiamo controllando se un numero, 5, è maggiore o uguale a (questo è il “-ge”) un altro numero, 4., Se lo è, verrà eseguito il comando” then”, che ci chiederà con un messaggio: “Quel numero è maggiore o uguale a 4.”Immagina come cambiare il 5 e usare una variabile potrebbe invece migliorare la funzionalità di questo script.

Una volta ottenuta queste istruzioni, puoi imparare come usare “else” per dare ai tuoi comandi un’azione alternativa nel caso in cui le condizioni “if” non siano soddisfatte. Per comandi più complicati, puoi persino usare ” elif “(else if) per aggiungere condizioni a” else “senza riscrivere noiosamente più condizioni” else”.,

Lo scripting con soluzioni MDM

Proprio come l’utilizzo di script Mac può rendere più potenti i singoli comandi del terminale, l’utilizzo di script con la soluzione MDM può far emergere il massimo potenziale di gestione.

Che tu stia utilizzando la nostra funzione di script personalizzato o specificando i comportamenti pre e postinstallazione per le app personalizzate, lo scripting con un MDM può consentire di eseguire molte azioni avanzate di gestione dei dispositivi.,

Si spera di aver imparato che è possibile utilizzare gli script per completare le attività multi-step più velocemente e con maggiore precisione – e che è possibile script criteri avanzati e inviarli a tutti i dispositivi della vostra azienda utilizzando una soluzione MDM, come Kandji.

Oltre a mettere in azione i tuoi script, Kandji ha molte altre fantastiche funzionalità come la conformità con un solo clic con i principali benchmark di sicurezza e la distribuzione zero-touch. È tutto ciò di cui la tua azienda ha bisogno per gestire la tua flotta, dalla distribuzione alla pensione.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *