programmation en shell

Présentation

La programmation shell est la base de l'administration des systèmes reposant sur la norme POSIX. Ceci englobe les systèmes UNIX/LINUX, MacOSX et une grande partie des smartPhones.

Maîtriser le shell peut grandement simplifier les tâches répétitives telles les sauvegardes, les synchronisations de systèmes de fichiers...

Cette formation est destinée à vous apprendre à réaliser vos propres scripts dans les langages sh, bash, awk...
Vous serez également guidés dans votre choix vis-à-vis du traitement à réaliser relativement aux divers interpréteurs de commandes existants.

Contenu

  • Présentation et rappels
  • Le shell en mode interactif
  • Les mécanismes de base
  • La programmation par scripts
  • Mécanismes complémentaires
  • Quelques commandes utiles

Participants

Administrateurs système, exploitants, développeurs et utilisateurs Linux avancés.

Pré-requis

Connaissance de base du système d'exploitation UNIX/LINUX et notions de programmation (variables, structures de contrôle).

Travaux pratiques

Écriture de nombreux scripts illustrant les principaux concepts de la programmation en shell.

Programme de la formation

  • Présentation et rappels :
    • Principes
    • Les différents interpréteurs : bourne Shell (sh), C Shell (csh), Korn Shell (ksh), Bourne again shell (ksh)...
    • Quel interpréteur pour quel système
    • La normalisation par POSIX
    • Les extensions par GNU
    • Les différences entre Bourne Shell/Korn Shell/Bash
  • Le shell en mode interactif :
    • Les options spécifiques à l'interaction
    • Les fichiers de configuration et de démarrage
    • La méthode de parcours du PATH et les priorités lors de la recherche des commandes
    • Les alias
    • L'historique
    • Le contrôle des tâches de fond (jobs)
    • La complétion des noms et des arguments des commandes.
  • Les mécanismes de base :
    • Déclaration de variables, notions d'environnement
    • Protection des caractères spéciaux par échappement
    • Expansion des accolades et des parenthèses, ~ (tilde)
    • Substitution des commandes
    • Évaluation arithmétique
    • Le principes des flux de données : STDIN, STDOUT, STDERR
  • La programmation par scripts :
    • Les structures de contrôle
    • Les fonctions
    • La gestion avancée des arguments en ligne de commande (getopts)
    • La gestion des signaux
    • Les différents modes d'exécution d'une commande : par substitution, en série, dans un sous-shell, en tâche de fond...
    • L'utilisation de fichiers temporaires
  • Mécanismes complémentaires :
    • Debugging d'un shell-script :
      • Les commandes de debugging
      • Les signaux de trace
      • Comment activer les journaux
      • Comment vérifier que toutes les variables sont initialisées
      • Automatiser l'exécution d'un shell-script par cron
  • Quelques commandes utiles :
    • Obtenir de l'aide par man
    • Localiser des fichiers par find
    • Manipuler des fichiers à la volée par grep, sed et gawk
    • Compresser des répertoires par tar
    • Synchroniser des arborescences par rsync
  • Annexe sur les expressions régulières