Formation “Scripts shell pour Linux et Unix”

Formation Scripts ShellLe 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.

Points-clés

Durée : 3 jours (2 jours en formation individuelle)

Tarifs 2017-2018 :

  • En nos locaux à Évry (91) : 1710 €HT (déjeuners et collations offerts).
    Tarif dégressif si plusieurs inscrits de la même société à la même session.

Pré-requis : connaissance de Linux (utilisateur) ou d’un autre système Unix.

Plan : Téléchargez le plan détaillé au format PDF.

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 : principes et évolutions des shells Unix, 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.

3ème séquence 13h15-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-17h30

  • 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, 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.

3ème séquence 13h15-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-17h30

  • 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.

3ème séquence 13h15-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

Conclusion

  • Discussions libres sur l’ensemble des thèmes abordés.
  • Travaux pratiques : expérimentations libres suivant les demandes des participants.