Scripting Shell : votre boîte à outils pour macOS

1.990,00  HT

Stagiaires *

 
Durée : 4 jours – Dernière mise à jour : 09/07/2025

 
Niveau avancé

 
Contenu de cette formation au format PDF

 
Livre d’or des formations

Vous utilisez le Terminal de temps en temps, mais vous avez le sentiment de faire toujours les mêmes manipulations ? Et si vous commenciez à automatiser vos tâches quotidiennes ? Cette formation vous guide dans vos premiers pas en scripting Shell, avec une approche progressive et concrète : créer votre boîte à outils. Script après script, vous apprendrez à construire des fonctions réutilisables, à gérer des paramètres et organiser votre code.

Cette formation permettra également aux détenteurs de la certification Jamf Certified Admin – Jamf Pro de renforcer leurs connaissances en scripting Shell afin d’aborder la formation officielle Jamf 400 dans les meilleures conditions.
L’esprit de cette formation — Cette formation n’a pas pour objectif de proposer un enseignement académique ou exhaustif du scripting Shell. Elle s’inscrit dans une démarche pragmatique, orientée vers la réalisation de solutions fonctionnelles et adaptées aux besoins concrets. Les participants disposeront du temps nécessaire pour présenter leurs propositions, chacune étant considérée comme valable dès lors qu’elle est cohérente, opérationnelle et compréhensible. L’accent est mis sur la diversité des approches, l’efficacité des scripts et le partage d’expériences.
Cette formation sera animée par Franck Sartori, directeur technique et ingénieur système chez Agnosys.

Objectifs

• Poser les bases d’une démarche d’automatisation sur macOS
• Comprendre et gérer les permissions des fichiers et dossiers
• Utiliser CodeRunner pour écrire, tester et exécuter des scripts Shell
• Maîtriser les éléments fondamentaux du scripting : variables, conditions et boucles
• Afficher des messages et interagir avec l’utilisateur avec AppleScript
• Manipuler des tableaux, des fichiers .plist et des fonctions
• Déployer ou exécuter un script Shell à distance via une solution MDM

Qui peut s’inscrire ?

Cette formation s’adresse aux administrateurs de Mac souhaitant débuter en scripting Shell et structurer une démarche d’automatisation.

Pré-requis

Pour s’inscrire à cette formation, les participants doivent :
– avoir suivi la formation Fondamentaux de l’administration de macOS (Réf. SE/ASMOS)
– ou avoir des responsabilités d’administration de macOS au quotidien.

Participants et matériels sous la responsabilité d’Agnosys

Cette formation est limitée à six participants maximum.

Les démonstrations effectuées par le formateur seront réalisées avec un Mac équipé de la version la plus récente de macOS.

La classe sera dotée d’une solution MDM permettant de déployer ou d’exécuter un script Shell à distance.

Matériels sous la responsabilité exclusive des participants

Chacun des participants devra être équipé sous sa responsabilité d’un Mac de test équipé de la version la plus récente disponible du système d’exploitation macOS, avec un compte administrateur connu, et connecté à un réseau autorisant un accès libre à Internet.

Attention — La formation prévoit d’utiliser le logiciel CodeRunner. Celui-ci est disponible à l’adresse https://coderunnerapp.com/ en cliquant sur le bouton « Download ». Les participants doivent s’assurer que le logiciel peut être exécuté, soit parce que la période d’essai est toujours active pour toute la durée de la formation, soit parce qu’ils disposent d’une licence valide.

Attention — Le Mac ne doit pas être inscrit dans une solution MDM. Il peut appartenir à un programme de déploiement Apple mais ne doit pas être associé à un profil d’inscription automatisée des appareils. La formation prévoit une inscription manuelle de ce Mac dans la solution MDM de la classe via une URL Web.

Recommandation — Pour fluidifier la réalisation des travaux pratiques, notamment lors des tâches requérant un changement de compte utilisateur, nous recommandons aux participants de suivre la formation depuis un autre ordinateur Mac ou PC ou une tablette, équipé d’une caméra et d’un micro, qui servira uniquement à l’utilisation du logiciel Zoom et à l’affichage des ressources du cours.

Avant de vous inscrire à cette formation à distance, veuillez consulter la page Informations pour vérifier que vous pouvez réunir les pré-requis.

Commandes essentielles dans le Terminal

– Lancer le Terminal
– Afficher le dossier courant
– Lister le contenu d’un dossier

– Se déplacer dans l’arborescence
– Créer un dossier ou un fichier vide
– Copier, déplacer, renommer, supprimer
– Vérifier et modifier les permissions
– Localiser une commande dans le PATH
– Afficher la page de manuel d’une commande
– Exécuter une commande en tant que root

Travaux pratiques :
– Ouverture du Terminal
– Utilisation des commandes pwd, ls, cd, mkdir, touch, cp, mv, rm, chmod, chown, which, man et sudo

Mon premier script dans CodeRunner

– Installer et lancer CodeRunner
– Configurer CodeRunner pour écrire un script Shell en bash ou zsh
– Vérifier le shebang
– Ajouter des commentaires
– Afficher le résultat d’une commande sur la sortie standard
– Enregistrer le résultat d’une commande dans un fichier texte
– Différencier une redirection de type création et ajout
– Initialiser une variable et rappeler une variable
– Découvrir « Command substitution » et « If statement »
– Utiliser des commandes telles que date, echo, awk, tr, wc, open, system_profiler, say
– Sauvegarder et exécuter le script, en tant que l’utilisateur connecté ou root

Travaux pratiques :
– Installer, lancer et configurer CodeRunner
– Utiliser les commandes date et echo et les redirections de type create et append
– Initialiser une variable avec « Command substitution » et l’utiliser dans un « If statement »
– Exécuter le script en tant que l’utilisateur connecté ou root

Affichage de messages et interactions avec l’utilisateur

– Affichage d’un message avec AppleScript
– Demande d’une entrée utilisateur avec AppleScript
– Exécution d’un AppleScript depuis un script Shell
– Récupération de la réponse de l’utilisateur dans une variable
– Insérer des valeurs dynamiques dans les dialogues affichés

Travaux pratiques :
– Création de dialogues avec AppleScript
– Ouverture des dialogues à partir d’un script Shell
– Capturer les réponses de l’utilisateur et/ou les boutons cliqués dans des variables

Utilisation des boucles pour automatiser des traitements répétitifs

– Présentation des boucles for, while et until
– Définition des conditions d’entrée et de sortie d’une boucle
– Parcours d’un fichier CSV ligne à ligne
– Sortie d’une boucle en fonction d’une condition (break)
– Passage à l’itération suivante sans terminer la boucle (continue)
– Mise en œuvre des boucles imbriquées

Travaux pratiques :
– Mise en œuvre des boucles for, while et until
– Lecture et traitement d’un fichier CSV ligne par ligne
– Pratique des commandes break et continue

Stockage de valeurs dans des tableaux

– Déclaration d’un tableau
– Ajout de valeurs dans un tableau
– Itération sur les éléments d’un tableau
– Suppression d’une valeur et réindexation du tableau
– Insertion d’une valeur à un index donné

Travaux pratiques :
– Mise en œuvre des tableaux
– Lecture et traitement des éléments d’un tableau
– Suppression et insertion de valeurs dans un tableau

Stockage de valeurs dans des fichiers .plist

– Les domaines de préférences
– Utilisation de la commande defaults pour des opérations simples
– Utilisation de la commande PlistBuddy pour des opérations complexes
– Insertion de dictionnaires et de tableaux
– Itération sur les éléments d’un tableau
– Ajout, modification et suppression de valeurs

Travaux pratiques :
– Mise en œuvre des commandes defaults et PlistBuddy
– Lecture et traitement des éléments d’un tableau
– Manipulation des valeurs dans un dictionnaire et un tableau

Organisation du code avec des fonctions

– Déclaration d’une fonction
– Différence entre variables locales et variables globales
– Appels de fonctions avec des arguments positionnels
– Récupération du code de retour d’une fonction

Travaux pratiques :
– Refactorisation d’un script en fonctions réutilisables
– Appels de fonctions avec arguments et traitement des codes de retour

Exécution automatisée d’un script

– Le processus launchd, les LaunchDaemons et les LaunchAgents
– Emplacement des LaunchDaemons et des LaunchAgents
– Structure d’un fichier LaunchDaemon et LaunchAgent
– Planification avec StartInterval, StartCalendarInterval, RunAtLoad, LaunchOnlyOnce
– Découverte d’un générateur de dictionnaire StartCalendarInterval
– Application des permissions correctes
– Chargement d’un LaunchDaemon en mémoire sans redémarrer le Mac
– Chargement d’un LaunchAgent en mémoire sans fermer la session actuelle
– Vérification de l’intégrité d’un LaunchDaemon et d’un LaunchAgent
– Vérification de l’état de chargement en mémoire d’un LaunchDaemon et d’un LaunchAgent
– Déchargement de la mémoire d’un LaunchDaemon et d’un LaunchAgent
– Exécution manuelle d’un LaunchDaemon hors de sa planification

Travaux pratiques :
– Création d’un LaunchDaemon à partir d’un modèle
– Création d’un LaunchAgent à partir d’un modèle
– Chargement et déchargement d’un LaunchDaemon et d’un LaunchAgent
– Exécution manuelle d’un LaunchDaemon hors de sa planification

Ecriture dans le stockage depuis un script principal

– Syntaxe d’un here document
– Utilisation de here document pour générer un LaunchDaemon autonome
– Utilisation de here document pour générer un script secondaire appelé par un LaunchDaemon
– Automatisation de l’application des permissions correctes
– Automatisation du déchargement et du chargement du LaunchDaemon

Travaux pratiques :
– Automatisation de l’écriture d’un mécanisme autonome depuis un script principal
– Vérification du fonctionnement du mécanisme autonome

Déploiement d’un mécanisme autonome depuis une solution MDM

– Présentation de la méthode de déploiement depuis la solution MDM de la classe
– Passage du contexte root au contexte utilisateur
– Détermination de l’utilisateur actuellement connecté
– Ecriture du script principal dans le dossier départ de l’utilisateur connecté
– Exécution du script principal dans l’environnement de l’utilisateur connecté

Travaux pratiques :
– Inscription du Mac de test dans la solution MDM
– Ajout de la détermination de l’utilisateur connecté dans le script principal
– Ecriture du script principal sur le Bureau de l’utilisateur connecté
– Exécution du script principal dans l’environnement de l’utilisateur connectée

En fonction du temps disponible une fois l’ensemble des sujets traités, les participants seront invités à réaliser des scripts illustrant les compétences attendues pour aborder sereinement la formation officielle Jamf 400, sans qu’il soit nécessaire que la solution Jamf Pro soit déployée dans leur organisation.

Référence Agnosys

SE/SSTB

Durée

4 jours

Certification

Non

Support de cours

En français