Public
Cette formation s'adresse aux développeurs, techniciens et administrateurs Unix/Linux.
Pré-requis
Connaissances de base d'un système Linux/Unix et de la programmation. Expérience souhaitable de l'utilisation d'un de ces systèmes.
Objectifs
- Connaître les différentes instructions utilisables dans un script shell.
- Écrire des scripts simples d'exploitation Unix/Linux.
- Effectuer le debugging d'un script shell.
- Enrichir un script shell avec des fonctions et sous-shells.
- Manipuler les fichiers avec les commandes grep, find, sed, awk.
Programme
Module 1 : Présentation et Rappels
- Les différents interpréteurs : Bourne Shell, Korn Shell, Bash, C Shell, Tcsh...
- Disponibilité des interpréteurs sur les divers systèmes Unix.
- Le point sur la normalisation (impacts sur l'écriture des scripts).
- Les apports GNU (gawk, gsed...).
- Différences Bourne Shell/Korn Shell/Bash.
Module 2 : Programmation par Scripts
- Outils de développement.
- Mécanisme d'exécution des scripts.
- Règles de recherche des commandes.
- Principes d'exécution d'une commande (exec, pipeline, sous-shell, background...).
- Principes d'exécution d'un script.
Module 3 : Mécanismes de Base
- Lecture et analyse de la ligne de commande.
- Expansion des accolades, développement du tilde, remplacement des paramètres.
- Substitution des commandes et évaluation arithmétique.
- Procédés d'échappement (banalisation).
- Les redirections (entrée et sortie standard, fichiers, tubes, document en ligne).
Module 4 : Fonctionnement en Interactif
- Invocation du shell (options).
- Les différents fichiers de démarrage.
- Notions d'environnement (variables, alias, fonctions).
- Historique et rappel des commandes.
- Contrôle de jobs.
- La complémentation des noms.
- Terminaison du shell.
Module 5 : Construction de Shell-Scripts Portables (ksh/bash)
- Interface avec un shell-script.
- Structuration d'un shell-script. Notions de sous-shell.
- Appel d'un shell : les différentes méthodes. Options utilisables.
- Compléments sur l'environnement. Options et arguments.
- Préambule du shell-script : qui interprète le shell-script ? Commentaires.
- Paramètres de position (initialisation, sauvegarde, décalages).
- Variables locales. Variables globales.
- Déclaration et visibilité des fonctions.
- Sortie du shell-script. Fonction de sortie. Conventions utilisées.
- Enchaînement de shell-scripts.
- Structures de contrôle du shell : commandes simples, pipelines, listes de pipelines.
- Commandes composées, sous-shells et fonctions. Mécanismes de sélection et d'itération. Menus.
- Entrées/sorties. Interactions avec le système. Arguments en ligne de commande.
- Opérations de tests. Compléments sur les instructions. Redirection locale dans les fichiers de commande.
Module 6 : Robustesse, Debugging
- Robustesse d'un shell-script : vérifier l'initialisation des variables.
- Gestion avancée des arguments en ligne de commande (getopts).
- Tests sur le type des variables (expr). La commande eval.
- Gestion des signaux.
- Nommage et destruction des fichiers temporaires.
- Cas particulier d'exécution d'un shell-script par cron (la crontab).
- Debugging d'un shell-script : commandes de debugging.
- Signaux de trace. Journalisation.
Module 7 : Extensions du Korn Shell et Bash
- Tableaux de variables.
- Notations spécifiques.
- Opérations arithmétiques.
- Les alias suivis.
- Notion de coprocessus.
- Les commandes internes spécifiques.
Module 8 : Outils Supplémentaires (grep, find, sed, awk)
- Outils d'assistance pour la création de scripts : grep et find.
- Expressions rationnelles : outil grep.
- Recherche et traitement de fichiers : outil find.
- Sed : principes et aspects des scripts. Commandes simples de recherche, remplacement, insertion.
- Manipulation de flux de texte avec sed. Aperçu des commandes avancées.
- Éléments généraux de programmation avec awk. Utilisation des variables et des fonctions.
- Exemples complets de scripts awk (statistiques système, calculs...).
- Présentation des fonctions intégrées awk : mathématique, traitement de chaîne, interaction avec le système.
