Course objectives
Objectif opérationnel :
Écrire des commandes et programmer en Shell.
Objectifs pédagogiques :
- Comprendre les mécanismes de substituions du shell ($, `, ‘, *, \, etc.)
- Lancer un shell (PATH, filiation, exec, fork, &, |, ;, etc.)
- Maîtriser les structures de contrôles (if, while, …)
- Programmer et debugger un shellscript
- Maîtriser les expressions régulières
- Utiliser les outils sed et awk dans des shellscripts
- Faire le lien entre les concepts et outils présentés dans cette formation avec les besoins du quotidien des développeurs de shellscripts
Who is this course for?
Ce cours s’adresse aux informaticiens chargés de développer des shell-scripts, mais aussi aux correspondants informatiques ayant la responsabilité de grosses applications et aux responsables système ou d’exploitation.
Prerequisites
Les participants à ce stage doivent avoir une formation de base à l’utilisation d’un système UNIX/Linux.
Programme
Présentation et rappels
- Principes Les différents interpréteurs : Bourne Shell, Korn Shell, Bash, C Shell.,Tcsh… Disponibilité des interpréteurs sur les divers systèmes. Le point sur la normalisation (impacts sur l’écriture des scripts) Les apports GNU (gawk, gsed…) Différences Bourne Shell/Korn Shell/Bash
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…)
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 standards, fichiers, tubes, document en ligne)
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.
Construction de shell-scripts portables (ksh/bash)
- Interface avec un shell-script. Structuration d’un shell-script.
Appel d’un shell-script
- Rappels sur les différentes méthodes. Options utilisables. Notions de sous-shell. 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.
Postambule et retour de shell-script
- Sortie du shell-script. Fonction de sortie. Conventions utilisées. Valeur de retour. Enchaînement de shell-scripts.
Structures de contrôle du shell
- Commandes simples, pipelines, et listes de pipelines Commandes composées, sous-shells et fonctions Mécanismes de sélection et d’itération Menus
Commandes internes et externes
- 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
Mécanismes complémentaires
Debugging d’un shell-script
- Commandes de debugging. Signaux de trace. Journalisation.
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). Gestion des signaux
Autres points
- Nommage et destruction des fichiers temporaires. Cas particulier d’exécution d’un shell-script par cron. La commande eval Le bêtisier du shell.
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.
Outils supplémentaires
Outils d’assistance pour la création de scripts
- Utilitaires système SUSv3 Expression rationnelles : outil grep Recherche et traitement de fichiers : outil find
Manipulation de flux de texte avec sed
- Principes et aspects des scripts. Commandes simples de recherche, remplacement, insertion. Aperçu des commandes avancées (traitement multiligne, mémoire secondaire…)
Automatisation de tâches avec awk
- Éléments généraux de programmation avec awk. Utilisation des variables et des fonctions Présentation des fonctions intégrées : mathématique, traitement de chaîne, interaction avec le système… Exemples complets de scripts Awk (statistiques système, calculs…)
Description de la formation shell
Objectif Formation Shell : Le shell est le programme auquel nous soumettons nos instructions quand nous dialoguons avec un système d’exploitation, soit à travers une simple commande tapée au clavier, soit à travers des fichiers appelés shellscripts. Son fonctionnement et sa batterie de caractères spéciaux (*, [, &, #, ‘,(,|, \, « , $, ;, !, etc.) le rendrent très puissant (mais pas très lisible au début), d’autant plus qu’il est programmable (if, while, fonction, etc.).
Cette formation présente les mécanismes détaillés du fonctionnement du shell standard sous Linux (bash), puis de sa programmation. Vous serez ainsi totalement à l’aise quand vous taperez des commandes complexes.
Surtout, vous serez autonome dans la programmation de shellscripts dans des domaines d’applications du quotidien : surveillance des ressources du système, occupation des filesystems, processus consommateurs, connexions en cours, déclenchement d’alertes, génération de ses propres journaux sous forme texte ou HTML pour publication Web, envoi de mails ou de SMS, transfert de fichiers automatisés, etc.
Topics: Script Unix - Linux

