Linux

Écriture de scripts en Shell sous Unix/Linux

Objectifs de la formation

  • Connaître les différentes instructions utilisables dans un script shell
  • Ecrire des scripts simples d'exploitation Unix/Linux
  • Effectuer le debugging d'un script shell
  • Enrichir un script shell avec des fonctions et sous-shells
  • Manipuler les fichiers avec les commandes grep, find, sed, awk


Programme de la formation

Présentation et rappels

  • Les différents interpréteurs : Bourne Shell, Korn Shell, Bash, C Shell,Tcsh...
  • Disponibilité des interpréteurs sur les divers systèmes Unix.
  • 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...).
  • Principes d'exécution d'un script.

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 standard, 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. Notions de sous-shell.
  • Appel d'un shell : les différentes méthodes. Options utilisables. 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.
  • 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, listes de pipelines.
  • Commandes composées, sous-shells et fonctions. Mécanismes de sélection et d'itération. Menus.
  • 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.

Robustesse, debugging

  • 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). La commande eval.
  • Gestion des signaux.
  • Nommage et destruction des fichiers temporaires.
  • Cas particulier d'exécution d'un shell-script par cron (la crontab).
  • Debugging d'un shell-script : commandes de debugging.
  • Signaux de trace. Journalisation.
  • Journalisation.

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 (grep, find, sed, awk)

  • Outils d'assistance pour la création de scripts : grep et find.
  • Expressions rationnelles : outil grep.
  • Recherche et traitement de fichiers : outil find.
  • Sed : principes et aspects des scripts. Commandes simples de recherche, remplacement, insertion.
  • Manipulation de flux de texte avec sed. Aperçu des commandes avancées.
  • Eléments généraux de programmation avec awk. Utilisation des variables et des fonctions.
  • Exemples complets de scripts awk (statistiques système, calculs...).
  • Présentation des fonctions intégrées awk : mathématique, traitement de chaîne, interaction avec le système...

Please login to get access to the quiz
Linux, installation et administration (Prev Lesson)
Back to Linux
Public

Développeurs, techniciens et administrateurs Unix/Linux.

Pré-requis

Connaissances de base d'un système Linux/Unix et de la programmation. Expérience souhaitable de l'utilisation d'un de ces systèmes.

Sur le même thème