Présentation
La programmation shell est la base de l'administration des systèmes reposant sur la norme POSIX. Ceci englobe les systèmes UNIX/LINUX, MacOSX et une grande partie des smartPhones.
Maîtriser le shell peut grandement simplifier les tâches répétitives telles les sauvegardes, les synchronisations de systèmes de fichiers...
Cette formation est destinée à vous apprendre à réaliser vos propres scripts dans les langages sh, bash, awk...
Vous serez également guidés dans votre choix vis-à-vis du traitement à réaliser relativement aux divers interpréteurs de commandes existants.
Contenu
- Présentation et rappels
- Le shell en mode interactif
- Les mécanismes de base
- La programmation par scripts
- Mécanismes complémentaires
- Quelques commandes utiles
Participants
Administrateurs système, exploitants, développeurs et utilisateurs Linux avancés.
Pré-requis
Connaissance de base du système d'exploitation UNIX/LINUX et notions de programmation (variables, structures de contrôle).
Travaux pratiques
Écriture de nombreux scripts illustrant les principaux concepts de la programmation en shell.
Programme de la formation
- Présentation et rappels :
- Principes
- Les différents interpréteurs : bourne Shell (sh), C Shell (csh), Korn Shell (ksh), Bourne again shell (ksh)...
- Quel interpréteur pour quel système
- La normalisation par POSIX
- Les extensions par GNU
- Les différences entre Bourne Shell/Korn Shell/Bash
- Le shell en mode interactif :
- Les options spécifiques à l'interaction
- Les fichiers de configuration et de démarrage
- La méthode de parcours du PATH et les priorités lors de la recherche des commandes
- Les alias
- L'historique
- Le contrôle des tâches de fond (jobs)
- La complétion des noms et des arguments des commandes.
- Les mécanismes de base :
- Déclaration de variables, notions d'environnement
- Protection des caractères spéciaux par échappement
- Expansion des accolades et des parenthèses, ~ (tilde)
- Substitution des commandes
- Évaluation arithmétique
- Le principes des flux de données : STDIN, STDOUT, STDERR
- La programmation par scripts :
- Les structures de contrôle
- Les fonctions
- La gestion avancée des arguments en ligne de commande (getopts)
- La gestion des signaux
- Les différents modes d'exécution d'une commande : par substitution, en série, dans un sous-shell, en tâche de fond...
- L'utilisation de fichiers temporaires
- Mécanismes complémentaires :
- Debugging d'un shell-script :
- Les commandes de debugging
- Les signaux de trace
- Comment activer les journaux
- Comment vérifier que toutes les variables sont initialisées
- Automatiser l'exécution d'un shell-script par cron
- Debugging d'un shell-script :
- Quelques commandes utiles :
- Obtenir de l'aide par man
- Localiser des fichiers par find
- Manipuler des fichiers à la volée par grep, sed et gawk
- Compresser des répertoires par tar
- Synchroniser des arborescences par rsync
- Annexe sur les expressions régulières