loader image

Gate Training

logo-png
Unix - Linux - macOS

Formation Écriture de script en Shell

3 Jours

Description de la formation shell

Objectif Formation Shell : Le shell est le programme auquel nous soumettons nos instructions quand nous dialoguons avec un système d’exploitation, soit à travers une simple commande tapée au clavier, soit à travers des fichiers appelés shellscripts. Son fonctionnement et sa batterie de caractères spéciaux (*, [, &, #, ‘,(,|, \, « , $, ;, !, etc.) le rendrent très puissant (mais pas très lisible au début), d’autant plus qu’il est programmable (if, while, fonction, etc.).
Cette formation présente les mécanismes détaillés du fonctionnement du shell standard sous Linux (bash), puis de sa programmation. Vous serez ainsi totalement à l’aise quand vous taperez des commandes complexes.
Surtout, vous serez autonome dans la programmation de shellscripts dans des domaines d’applications du quotidien : surveillance des ressources du système, occupation des filesystems, processus consommateurs,  connexions en cours, déclenchement d’alertes, génération de ses propres journaux sous forme texte ou HTML pour publication Web, envoi de mails ou de SMS, transfert de fichiers automatisés, etc.

Objectifs

Objectif opérationnel :

Écrire des commandes et programmer en Shell.

Objectifs pédagogiques :

  • Comprendre les mécanismes de substituions du shell ($, `, ‘,  *, \, etc.)
  • Lancer un shell (PATH, filiation, exec, fork, &, |, ;, etc.)
  • Maîtriser les structures de contrôles (if, while, …)
  • Programmer et debugger un shellscript
  • Maîtriser les expressions régulières
  • Utiliser les outils sed et awk dans des shellscripts
  • Faire le lien entre les concepts et outils présentés dans cette formation avec les besoins du quotidien des développeurs de shellscripts

À qui s’adresse cette formation ?

Public :

Ce cours s’adresse aux informaticiens chargés de développer des shell-scripts, mais aussi aux correspondants informatiques ayant la responsabilité de grosses applications et aux responsables système ou d’exploitation.

 

Prérequis :

Les participants à ce stage doivent avoir une formation de base à l’utilisation d’un système UNIX/Linux.

 

Contenu du cours shell

Présentation et rappels

Principes
Les différents interpréteurs : Bourne Shell, Korn Shell, Bash, C Shell.,Tcsh…
Disponibilité des interpréteurs sur les divers systèmes.
Le point sur la normalisation (impacts sur l’écriture des scripts)
Les apports GNU (gawk, gsed…)
Différences Bourne Shell/Korn Shell/Bash

Programmation par scripts

Outils de développement
Mécanisme d’exécution des scripts
Règles de recherche des commandes
Principes d’exécution d’une commande (exec, pipeline, sous-shell, background…)

Mécanismes de base

Lecture et analyse de la ligne de commande
Expansion des accolades, développement du tilde, remplacement des paramètres
Substitution des commandes et évaluation arithmétique
Procédés d’échappement (banalisation)
Les redirections (entrée et sortie standards, fichiers, tubes, document en ligne)

Fonctionnement en interactif

Invocation du shell (options).
Les différents fichiers de démarrage.
Notions d’environnement (variables, alias, fonctions).
Historique et rappel des commandes. Contrôle de jobs.
La complémentation des noms. Terminaison du shell.

Construction de shell-scripts portables (ksh/bash)

Interface avec un shell-script.
Structuration d’un shell-script.

Appel d’un shell-script

Rappels sur les différentes méthodes.
Options utilisables.
Notions de sous-shell.
Compléments sur l’environnement.
Options et arguments.

Préambule du shell-script

Qui interprète le shell-script ?
Commentaires.
Paramètres de position (initialisation, sauvegarde, décalages).
Variables locales.
Variables globales.
Déclaration et visibilité des fonctions.

Postambule et retour de shell-script

Sortie du shell-script.
Fonction de sortie.
Conventions utilisées.
Valeur de retour.
Enchaînement de shell-scripts.

Structures de contrôle du shell

Commandes simples, pipelines, et listes de pipelines
Commandes composées, sous-shells et fonctions
Mécanismes de sélection et d’itération
Menus

Commandes internes et externes

Entrées/Sorties.
Interactions avec le système.
Arguments en ligne de commande.
Opérations de tests.
Compléments sur les instructions.
Redirection locale dans les fichiers de commande

Mécanismes complémentaires

Debugging d’un shell-script

Commandes de debugging.
Signaux de trace.
Journalisation.

Robustesse d’un shell-script

Vérifier l’initialisation des variables.
Gestion avancée des arguments en ligne de commande (getopts).
Tests sur le type des variables (expr).
Gestion des signaux

Autres points

Nommage et destruction des fichiers temporaires.
Cas particulier d’exécution d’un shell-script par cron.
La commande eval
Le bêtisier du shell.

Extensions du Korn Shell et Bash

Tableaux de variables. Notations spécifiques.
Opérations arithmétiques. Les alias suivis.
Notion de coprocessus.
Les commandes internes spécifiques.

Outils supplémentaires

Outils d’assistance pour la création de scripts

Utilitaires système SUSv3
Expression rationnelles : outil grep
Recherche et traitement de fichiers : outil find

Manipulation de flux de texte avec sed

Principes et aspects des scripts.
Commandes simples de recherche, remplacement, insertion.
Aperçu des commandes avancées (traitement multiligne, mémoire secondaire…)

Automatisation de tâches avec awk

Éléments généraux de programmation avec awk.
Utilisation des variables et des fonctions
Présentation des fonctions intégrées : mathématique, traitement de chaîne, interaction avec le système…
Exemples complets de scripts Awk (statistiques système, calculs…)

Réf:

006

Tarif:

600 Dt

Niveau:

Fondamental

Classe à distance:

Possible