Maîtriser la puissance
des logiciels
libres
Accueil Formations Documents Présentation Contact Connexion

Écriture de Scripts Shell

Référence formation : ULS

Filière : Linux - Utilisation

Écriture de Scripts Shell

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.

Téléchargez cette fiche détaillée au format PDF.

 Organisation

Durée cours classique : 3 jours (20 heures)
Durée formation individuelle : 2 jours (14 heures)
Pré-requis : Utilisateur habitué au système Linux
Conseil cursus : A la suite de cette formation, on peut compléter ses connaissances avec le cours Utilisateur Linux Avancé, ou aborder la filière Administration Linux.

 Devis

Tarifs : Prochaine session dans nos locaux à Ris-Orangis (91) :
    du 18 au 20 octobre : 1580 euros HT

Intervenant : Christophe BLAESS
Pour vous inscrire à cette session, veuillez nous contacter.

Si vous préférez une session dans votre entreprise, calculez votre devis.

 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.

Accueil | Contact | Mentions légales