|
Le shell représente à la fois l'interface frontale du système Unix et un véritable langage
de programmation. Sa maîtrise est un atout essentiel pour l'utilisateur et l'administrateur Unix.
Ce cours met en relief les aspects importants de l'écriture d'un script à la fois robuste et
performant, mais également portable sur les différents systèmes Unix actuels.
On trouvera en outre dans ce cours une brève introduction aux langages de scripts Sed et Awk,
qui sont très utilisés pour étendre les possibilités des scripts shell.
* * * Offre spéciale * * *
Lors de la session du 18 au 20 octobre 2010 que j'animerai à Ris-Orangis (organisée par
Logilin) chaque participant se verra offrir un exemplaire
de mon livre
"Shells Linux et Unix par la pratique".
Organisation
Durée : 3 jours.
Pré-requis : les participants doivent avoir une connaissance
du système Unix/Linux (niveau utilisateur).
Il est important de noter que les scripts étudiés dans ce cours s'appliquent aux shells
de type Bourne (comme Ksh , le Korn Shell ou Bash) mais pas au shell "C".
Thèmes abordés
- Programmation par scripts : les différents shells, les contraintes liées
à l'écriture de scripts ;
- Fonctionnement du shell : analyse détaillée de l'interprétation des lignes
de commande par le shell ;
- Déroulement des scripts : enchaînement des commandes, structures de contrôle
- Commandes Unix standards : survol des commandes essentielles et présentations des
commandes avancées utiles ;
- Bonne écriture d'un script : règles pratiques pour améliorer la qualité, la robustesse
et la lisibilité des scripts shell ;
- Expressions rationnelles : mise en pratique avec l'utilitaire Grep des expressions
rationnelles (expressions régulières) augmentant la portée des scripts shell ;
- Langages Sed et Awk : présentation simple des commandes les plus utiles des langages
Sed et Awk pour automatiser le traitement de fichiers de données.
Plan détaillé
Première journée
1ère séquence 9h00-10h30
Introduction et historique : principes et évolutions des shells Unix.
Principaux types de shells : shells Bourne et C, standard SUSv3.
2ème séquence 10h45-12h15
Exécution des scripts : interprétation et compilation, éditeurs de texte,
invocation des scripts, permissions d'exécution, fonctionnement
de la ligne shebang.
Travaux pratiques :
interpréteurs de commandes disponibles, éditeurs de textes, invocation d'un script,
chemin de recherche, variable PATH et cheval de Troie, shell interactif et shell de script.
Utilité de la ligne shebang.
Pause déjeuner
3ème séquence 13h30-15h15
Interprétation d'une commande : boucle générale, lecture analyse, exécution.
Etapes d'analyse : expansion des accolades, développement du tilde,
remplacement des paramètres, substitution des commandes, évaluation arithmétique,
découpage des mots, développement des noms de fichiers.
Travaux pratiques :
Manipulation des variables, protection des expressions, caractères génériques,
invocation de commandes et évaluation arithmétique.
4ème séquence 15h30-17h00
Redirections des entrées-sorties : entrées-sorties standards d'un processus,
redirections, tube, document en ligne.
Variables et environnement : variables, tableaux, paramètres, environnement
d'un processus.
Travaux pratiques :
Redirection des sorties, paramètres de la ligne de commande, extraction de
préfixes et suffixes.
Deuxième journée
1ère séquence 9h00-10h30
Commandes : commandes simples, pipelines, listes de pipelines.
Composition : commandes composées, fonctions, sous-shell.
2ème séquence 10h45-12h15
Structures de contrôle : sélection et tests, itération de liste et boucles.
Travaux pratiques :
structures de boucles for et while, comptage à rebours, parallélisme,
priorités, boucles imbriquées, tests des caractéristiques d'un fichier,
mise en correspondance de chaînes, fonctions récursives.
Pause déjeuner
3ème séquence 13h30-15h15
Exécution des commandes :
ordre de recherche, exécution de commandes binaires et de scripts dans un processus
fils ou dans le processus père.
Commandes essentielles pour les scripts : entrées-sorties, interactions avec le
système, configuration du shell, arguments de ligne de commande.
Commandes Unix standards : manipulation des fichiers, contenu des fichiers,
interactions avec le système.
Travaux pratiques : saisie renforcée d'une réponse de l'utilisateur,
choix d'une option, conversion entre minuscules et majuscules, lecture d'un fichier.
4ème séquence 15h30-17h00
Bonne écriture d'un script : présentation générale, commentaires, variables,
indentation, utilisation des fonctions.
Améliorations supplémentaires : gestion des erreurs, messages de débogage,
bibliothèques de fonction.
Travaux pratiques :
Automatisation de transfert FTP, études des processus créés par les commandes Unix,
arithmétique avancée.
Troisième journée
1ère séquence 9h00-10h30
Utilitaire Grep : fonctionnement de Grep, variantes et options, principe des expressions rationnelles
(expressions régulières), association entre Find et Grep.
Expressions rationnelles simples : caractères normaux et spéciaux, listes et intervalles, classes de
caractères.
2ème séquence 10h45-12h15
Expressions rationnelles étendues : répétitions, alternatives et groupements, références arrières.
Récapitulatif sur les expressions régulières
Travaux pratiques : options de Grep, correspondance d'expressions rationnelles, écriture
d'expression simple, construction progressive d'expressions rationnelles complexes.
Pause déjeuner
3ème séquence 13h30-15h15
Langage Sed : introduction, commandes essentielles, commandes supplémentaires, commandes complexes.
4ème séquence 15h30-16h30
Introduction à Awk : présentation, essentiel de Awk, structures de contrôle, opérateurs,
fonctions, exemple complet.
Travaux pratiques : remplacement de chaîne dans plusieurs fichiers, extraction de portions de fichier,
extraction d'une ligne donnée, remplacements de motifs complexes, élimination de balises HTML
|