Scripts sous Linux

Scripts sous Linux

Ce livre est une introduction à la programmation par scripts sous Linux. Il permet d’aborder l’écriture de scripts shell, l’utilisation des expressions rationnelles, et les outils Grep, Sed et Awk. On aborde également d’écriture de scripts en langage Perl. Ces premiers langages sont étudiés jusqu’à atteindre un niveau de programmation assez avancé.
Ensuite, les langages Tcl/Tk, Python, et Ruby sont étudiés avec un niveau plus simple et plus courant.

La seconde édition de ce livre (datant de 2003) est épuisée aujourd’hui. Certains langages abordés comme Perl, Python ou Ruby ont un peu évolué depuis sa rédaction. En ce qui concerne la programmation shell avancée, je vous conseille de vous tourner vers mon nouveau livre Scripts shell pour Linux et Unix par la pratique.

La première édition, nommée « Langages de scripts sous Linux » a été publiée fin 2001.

Scripts sous Linux

On trouve également cette édition d’occasion sur Price Minister.

Suppléments

Cette archive au format tar+gz contient l’ensemble des scripts fournis en exemple du livre. Les exemples de la première éditions sont dans une archive différente car les chapitres avaient été renumérotés entre temps.

Table des matières

  • Avant-propos
  • Introduction
    • Interpréteurs de commandes
      • Principes
      • Automatisation de tâches
      • Outils spécialisés
      • Programmation rapide
    • Interpréteurs étudiés
      • Les shells
      • principaux outils système
      • Perl
      • Tcl
      • Python
      • Ruby
      • Récapitulatif
    • Exécution d’un script
      • Invocation de l’interpréteur
      • Lancement direct par le noyau
      • Interprétation par le shell
    • Conclusion
  • Chapitre 1 – Introduction au shell Bash
    • Exécution des scripts
    • Premier aperçu
      • Premier script, rm_secure
      • Analyse détaillée
      • Performances
      • Exemple d’exécution
    • Conclusion
  • Chapitre 2 – Évaluation d’expressions avec Bash
    • Variables
    • Précisions sur l’opérateur $
      • Délimitation du nom de variable
      • Extraction de sous-chaîne et recherche de motifs
      • Longueur de chaîne
      • Actions par défaut
      • Calcul arithmétique
      • Invocation de commande
    • Portées et attributs des variables
      • Restriction de portée
      • Extension de portée – Environnement
      • Attributs des variables
    • Paramètres
      • Paramètres positionnels
      • Paramètres spéciaux
    • Protection des expressions
      • Protection par le caractère backslash
      • Protection par apostrophes
      • Protection par guillemets
    • Tableaux
    • Évaluation explicite d’une expression
    • Conclusion
  • Chapitre 3 – Éléments de programmation avec Bash
    • Commandes simples et composées, code de retour
      • Commande simple
      • Pipelines
      • Listes de pipelines
      • Commandes composées
    • Redirections d’entrées-sorties
      • Entrées-sorties standards
      • Redirection des entrées-sorties standards
      • Redirections avancées
    • Structures de contrôle
      • Sélection d’instructions
      • Itérations d’instructions
      • Fonctions
    • Conclusion
  • Chapitre 4 – Commandes, variables et utilitaires système
    • Commandes internes
      • Comportement du shell
      • Exécution des scripts et commandes
      • Interactions avec le système
    • Variables internes
      • $?
      • $$, $!, PPID
      • UID, EUID
      • HOME, PWD, OLDPWD
    • Commandes externes
    • Conclusion
  • Chapitre 5 – Programmation avancée avec Bash
    • Processus fils, parallélisme
    • Fonctionnement en arrière-plan, démons
    • Signaux
      • Envoi d’un signal
      • Réception d’un signal
      • Distribution des signaux
      • Signaux temps-réel
      • Attente de signaux
    • Communication entre processus
    • Entrées-sorties
      • tee
      • xargs
    • Interface utilisateur
      • stty
      • tput
      • dialog
    • Déboguer un script
    • Virgule flottante
    • Conclusion
  • Chapitre 6 – Programmer sous d’autres shells
    • Différences entre Bash 2 et Bash 1.14
      • Tableaux
      • Fonctions internes et variables
    • Le shell Bourne
    • Korn shell et Pdksh
    • Tcsh
    • Conclusion
  • Chapitre 7 – Expressions rationnelles – Grep
    • Introduction
    • Expressions rationnelles simples
      • Le symbole générique `.’
      • Début et fin de chaînes
      • Alternatives
      • Listes
      • Intervalles
      • Classes
      • Répétitions
      • Groupements
      • Références arrière
    • Expressions rationnelles étendues
    • Outil grep
    • Recherche récursive avec find
    • Conclusion
  • Chapitre 8 – Écriture de scripts Sed
    • Présentation
    • Utilisations de sed
    • Fonctionnement de Sed
    • Commandes Sed
      • Suppression de ligne
      • Commentaires
      • Substitution
      • Commandes composées
    • Autres commandes usuelles
      • Passage à la ligne suivante
      • Ajout de lignes
      • Remplacement de blocs
      • Conversion de caractères
    • Récapitulatif des commandes étudiées
    • Conclusion
  • Chapitre 9 – Scripts avancés avec Sed
    • Branchements
    • Entrées-sorties vers un fichier
      • Écriture dans un fichier
      • Lecture d’un fichier
    • Commandes multilignes
      • Chargement d’une ligne
      • Effacement d’une ligne
      • Affichage d’une ligne
    • Utilisation d’une mémoire secondaire
      • Recherche sans distinction de casse
      • Recherche d’alternative
      • Utilisation de variables
    • Association entre sed et le shell
      • Paramétrage d’un script Sed
    • Applications diverses
      • Machines de Turing
      • Tables indexées
    • Conclusion
  • Chapitre 10 – Introduction à Awk
    • Caractéristiques principales
      • Les motifs
      • Les actions
      • Les variables
      • Fichiers d’entrée
    • Enregistrements et champs
      • Les enregistrements
      • Les champs
    • Fonctions
    • Détails sur les variables
      • Conversions
      • Variables locales
      • Tableaux
      • Tableaux multidimensionnels
      • Variables spéciales
    • Expressions
    • Structures de contrôle
      • Structures de test
      • Structures de boucle
      • Ruptures de séquence
    • Options en ligne de commande
      • Options standards
      • Options Gnu

      Conclusion

  • Chapitre 11 – Fonctions internes de Awk
    • Retour sur les affichages
    • Fonctions mathématiques
      • sqrt(x)
      • atan2(x, y)
      • cos (x)
      • sin (x)
      • exp(x)
      • log(x)
      • int()
      • rand(), srand()
    • Traitement de chaînes de caractères
    • Interactions avec le système
    • Entrées-sorties
    • Arguments de la ligne de commande
    • Fichiers spéciaux
    • Conclusion
  • Chapitre 12 – Programmation avancée avec Awk
    • Comptes-rendus et statistiques
    • Script interactif
    • Évaluation dynamique d’expressions
    • Calculatrice en ligne de commande
    • Mathématiques avancées
    • Conclusion
  • Chapitre 13 – Introduction à la programmation Perl
    • Généralités
      • Disponibilité
      • Utilisation
    • Expressions et variables
      • Variables scalaires
      • Tables classiques
      • Protection des expressions
      • Tables de hachage
    • Opérateurs
      • Opérateurs numériques
      • Opérateurs de chaîne
      • Recherche d’expression rationnelle
      • Substitution d’expressions rationnelles
      • Conversions de caractères
    • Structures de contrôle
      • Structure de test
      • Structure de boucles
    • Définitions de fonctions
      • Définition et invocation
      • Paramètres et résultats
      • Passage des arguments
      • Portée des variables
      • Références symboliques de routines
      • Prototypes
    • Conclusion
  • Chapitre 14 – Bibliothèque interne de Perl
    • Entrées-sorties
      • Fichiers de texte
      • Fichiers binaires
    • Manipulation des données
      • Type des données
      • Fonctions numériques
      • Chaînes de caractères
      • Expressions rationnelles
      • Tableaux et listes
      • Tables de hachage
    • Interaction avec le système d’exploitation
      • Gestion de la mémoire
      • Fichiers et répertoires
      • Action bas niveau sur les fichiers
      • Exécution du processus
      • Information système
      • Date et heure
    • Communication
      • Signaux
      • Tube Unix
    • Ce que nous avons ignoré
      • Formats, rapports
      • Communication entre processus
      • Modules et objets

      Conclusion

  • Chapitre 15 – Programmation avancée et objet en Perl
    • Références
      • Références symboliques
      • Références physiques
      • Conteneurs anonymes
      • Routines anonymes
    • Objets
      • Classes et attributs
      • Méthodes
      • Fonctions d’accès
      • Constructeur et destructeur
      • Héritage
    • Modules
      • Objets et modules
      • Méthode AUTOLOAD
      • Méthodes BEGIN et END
      • Contrôle des symboles exportés
    • Conclusion
  • Chapitre 16 – Programmation réseau en Perl
    • Supervision des paquets TCP/IP bruts
    • Serveurs et clients TCP/IP et UDP/IP
      • Serveur TCP/IP
      • Client TCP/IP
      • Serveur UDP/IP
      • Client UDP/IP
    • Client TCP/IP et POP-3
    • Programmation Web
    • Conclusion
  • Chapitre 17 – Nouveautés Perl
    • Unicode
    • Programmation multithreads
      • Principe des threads
      • Création d’un thread
      • Partage des variables
      • Fin d’un thread
      • Identification des threads
    • Conclusion
  • Chapitre 18 – Le langage Tcl
    • Généralités
      • Exécution des scripts
      • Caractéristiques du langage
    • Expressions et variables
      • Opérateurs et expressions
      • Substitution de commandes
      • Variables, tableaux et liste
    • Structures de contrôle
      • Tests
      • Boucles
      • Rupture de séquences
      • Fonctions personnelles
      • Arrêt d’exécution
      • Gestion des erreurs
    • Fonctions internes
      • Entrées-sorties
      • Mathématiques
      • Traitement de chaînes
      • Traitement de listes
      • Traitement de tableaux
      • Fonctions système
      • Exécution du script
    • Programmation avancée
      • Collaboration avec le langage C

      Conclusion

  • Chapitre 19 – La bibliothèque Tk
    • Généralités
      • Positionnement
    • Widgets
      • Les frames
      • Les boutons
      • Les étiquettes
      • Les zones de saisie
      • Les menus
      • Listes et échelles
      • Barres de défilement
      • Zones de dessin
    • Événements
    • Fenêtres et boîtes de dialogue
    • Conclusion
  • Chapitre 20 – Perl/Tk
    • La bibliothèque Perl/Tk
    • Syntaxe
    • Exemple
    • Conclusion
  • Chapitre 21 – Notions de Python
    • Introduction
    • Structures de contrôle
      • Boucle while
      • Boucle for
      • Test if
      • Ruptures de séquences
      • Définitions de fonction
      • Gestion d’erreur
    • Données et expressions
      • Types de données
      • Données numériques
      • Chaînes
      • Listes
      • n-uplets
      • Dictionnaires
      • Affectations multiples
      • Fichiers
    • Programmation orientée objet
      • Classes et instances
      • Constructeurs
      • Accesseurs
      • Surcharge d’opérateur
      • Héritage
    • Modules
      • Chargement d’un module
      • Rechargement d’un module
      • Importation de symboles
      • Tables des symboles
      • Modules standards

      Conclusion

  • Chapitre 22 – Introduction à Ruby
    • Introduction
    • Programmation objet en Ruby
      • Classes et instances
      • Méthodes – Contrôle d’accès
      • Attributs et accesseurs
      • Attributs et méthodes de classe
      • Héritage
      • Modules
      • Mélanges – Mixings
      • Surcharge des opérateurs
    • Éléments de programmation
      • Types de données
      • Organisation des données
      • Structures de contrôle
    • Librairie standard
  • Chapitre 23 – Pour finir…
  • Bibliographie
    • Livres et articles
    • Sites de références
  • Index

 

 

2 Réponses

  1. FABRE dit :

    Bonjour. Je cherche une version en ANGLAIS de ce livre « languages de scripts sous Linux » ou tout autre ouvrage semblable … Merci d’avance

URL de trackback pour cette page