Accueil Formations Développements Documents Présentation Contact
Logiciels
• Netpipe
• IP-multiserv
Autres logiciels…
Articles
• Linux : histoire d'un noyau
• Lancer une application au démarrage de Linux
• Sécuriser l'accès à une station Linux
Autres articles…
Documents
• Aides-mémoire Unix & Linux
• Manuel Linux en français
Livres
• Programmation système en C sous Linux
• Langages de scripts sous Linux
Présentation
• Renseignements
• Contact
Programmer des scripts shell pour Unix et Linux

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

Accueil | Contact | Mentions légales

Conception : Logilin - Formations Linux