• Aide
  • Eurêkoi Eurêkoi

Livre

Programmation shell sous Unix-Linux : ksh, bash, norme POSIX : avec exercices corrigés

Résumé

Un manuel de référence pour les utilisateurs et les administrateurs souhaitant se former à l'écriture de scripts shell. L'auteure présente les fonctionnalités des shells ksh88, ksh93, bash ainsi que le shell Bourne et explique leurs principales différences. L'ouvrage aborde également la programmation proprement dite et les aspects avancés de la programmation shell. ©Electre 2022


  • Éditeur(s)
  • Date
    • C 2022
  • Notes
    • La couv. porte en plus : "En téléchargement : des exercices et corrigés, des exemples de scripts" ; "Informatique technique" ; "+ quiz" ; "Version en ligne offerte ! pendant 1 an"
    • Contient un "flashcode" permettant d'accéder à un contenu via Internet
  • Langues
    • Français
  • Description matérielle
    • 1 vol. (540 p.) : ill. ; 21 cm
  • Collections
  • Sujet(s)
  • ISBN
    • 978-2-409-03802-0
  • Indice
  • Quatrième de couverture
    • Programmation shell sous Unix/Linux

      ksh, bash, norme POSIX (avec exercices corrigés)

      Ce livre sur la programmation shell s'adresse aux utilisateurs et administrateurs des systèmes Unix/Linux souhaitant se former à l'écriture de scripts shell. Les fonctionnalités des shells ksh88, ksh93 et bash sont détaillées et leurs différences signalées. Le cas échéant, la conformité à la norme POSIX est mentionnée. Il en sera de même pour la compatibilité avec le shell historique Bourne. Les thèmes sont présentés de manière progressive et pédagogique, ce qui fait de cet ouvrage un support Idéal destiné aussi bien à la formation professionnelle qu'à l'autoformation.

      Les premiers chapitres sont consacrés au fonctionnement du shell : lancement d'une commande, caractères spéciaux du shell couramment employés (redirections, tubes...), paramétrage de l'environnement de travail de l'utilisateur (variables et fichiers d'environnement...).

      La suite de l'ouvrage est dédiée à la programmation proprement dite. Les bases de la programmation (variables, structures de contrôle, commandes de test et de calculs...) sont présentées et illustrées par de nombreux exemples. Sont ensuite détaillés les aspects avancés de la programmation shell (gestion des fichiers, fonctions...).

      Les mécanismes internes du shell sont expliqués en détail et illustrés par de nombreux schémas.

      La dernière partie de l'ouvrage traite des outils annexes indispensables au traitement de chaînes de caractères et de fichiers texte : les expressions régulières basiques et étendues, l'éditeur non interactif sed, un panorama étendu du langage awk enrichi de fonctionnalités gawk, ainsi que les principales commandes filtres des systèmes Unix. Le chapitre Comment faire résume les principales problématiques et présente différentes méthodes de résolution.

      Des exercices permettront au lecteur de pratiquer l'écriture de scripts shell tout au long de l'ouvrage. Les solutions sont présentées dans le dernier chapitre. Les exemples de scripts présentés dans l'ouvrage, ainsi que les scripts solutions des exercices sont disponibles en téléchargement sur le site www.éditions-eni.fr.


  • Tables des matières
      • Programmation shell sous Unix/Linux - ksh, bash, norme POSIX

      • Editions Eni

      • Avant-propos
      • Chapitre 1
      • Introduction
      • 1. Définition du shell21
      • 2. Caractéristiques d'un interpréteur de commandes21
      • 3. Interpréteurs de commandes (shells)22
      • 3.1 Historique22
      • 3.2 Avec quel shell faut-il programmer ?24
      • 3.3 Nom des exécutables à invoquer25
      • 4. Shells abordés dans cet ouvrage26
      • Chapitre 2
      • Mécanismes essentiels du shell
      • 1. Présentation29
      • 2. Commandes internes et externes29
      • 2.1 Les commandes externes29
      • 2.2 Les commandes internes31
      • 2.3 Implémentation interne et implémentation externe32
      • 3. Affichage à l'écran34
      • 3.1 La commande echo34
      • 3.1.1 Le caractère \n35
      • 3.1.2 Le caractère \c35
      • 3.1.3 Le caractère \t36
      • 3.2 Les commandes print et printf36
      • 4. Le caractère ~ (tilde)37
      • 5. La commande interne cd38
      • 6. Substitution de noms de fichiers39
      • 6.1 Expressions basiques39
      • 6.1.1 Le caractère *39
      • 6.1.2 Le caractère ?39
      • 6.1.3 Les caractères [ ]40
      • 6.2 Expressions étendues42
      • 6.2.1 ?(expression)43
      • 6.2.2 *(expression)43
      • 6.2.3 +(expression)43
      • 6.2.4 @(expression)44
      • 6.2.5 !(expression)44
      • 6.2.6 Alternatives44
      • 6.3 Interprétation du shell45
      • 7. Séparateur de commandes46
      • 8. Redirections47
      • 8.1 Entrée et sorties standards des processus47
      • 8.1.1 Entrée standard47
      • 8.1.2 Sortie standard47
      • 8.1.3 Sortie d'erreur standard48
      • 8.2 Héritage48
      • 8.3 Redirection des sorties en écriture49
      • 8.3.1 Sortie standard49
      • 8.3.2 Sortie d'erreur standard50
      • 8.3.3 Sortie standard et sortie d'erreur standard51
      • 8.3.4 Se protéger d'un écrasement involontaire de fichier52
      • 8.3.5 Éliminer les affichages53
      • 8.3.6 Mécanisme interne53
      • 8.4 Redirection de l'entrée standard54
      • 8.5 Rediriger les descripteurs 1 et 2 vers le même fichier56
      • 8.6 La double redirection en lecture57
      • 8.7 Fermeture d'un descripteur58
      • 9. Tubes de communication59
      • 9.1 Commandes ne lisant pas leur entrée standard61
      • 9.2 Commandes lisant leur entrée standard61
      • 9.2.1 Exemples triviaux61
      • 9.2.2 Cas des filtres62
      • 9.3 Compléments66
      • 9.3.1 Enchaîner des tubes66
      • 9.3.2 Dupliquer les sorties66
      • 9.3.3 Envoyer la sortie standard et la sortie d'erreur standard dans le tube67
      • 10. Regroupement de commandes68
      • 10.1 Les parenthèses68
      • 10.2 Les accolades69
      • 10.3 Conclusion70
      • 11. Processus en arrière-plan71
      • 11.1 Principe71
      • 11.2 Contrôle de tâches (jobs)72
      • 12. Exercices74
      • 12.1 Fonctionnalités diverses74
      • 12.1.1 Exercice 1 : commandes internes et externes74
      • 12.1.2 Exercice 2 : génération de noms de fichiers74
      • 12.1.3 Exercice 3 : séparateur de commandes75
      • 12.2 Redirections75
      • 12.2.1 Exercice 175
      • 12.2.2 Exercice 275
      • 12.2.3 Exercice 375
      • 12.2.4 Exercice 476
      • 12.2.5 Exercice 576
      • 12.2.6 Exercice 676
      • 12.3 Tubes de communication76
      • 12.3.1 Exercice 176
      • 12.3.2 Exercice 276
      • 12.3.3 Exercice 376
      • 12.3.4 Exercice 477
      • Chapitre 3
      • Paramétrage de l'environnement de travail
      • 1. Présentation79
      • 2. Variables d'environnement79
      • 2.1 Liste des variables79
      • 2.2 Affichage de la valeur d'une variable80
      • 2.3 Modification de la valeur d'une variable80
      • 2.4 Principales variables81
      • 2.4.1 HOME81
      • 2.4.2 PATH81
      • 2.4.3 PWD83
      • 2.4.4 PS183
      • 2.4.5 PS287
      • 2.4.6 SHELL87
      • 2.4.7 TMOUT88
      • 2.4.8 TERM88
      • 2.4.9 LOGNAME88
      • 2.4.10 BASHOPTS88
      • 2.5 Processus et variables d'environnement89
      • 2.6 Exportation des variables du shell89
      • 2.6.1 Liste des variables exportées89
      • 2.6.2 Variables devant être exportées90
      • 2.6.3 Exporter une variable91
      • 3. Les options du shell94
      • 3.1 Activer et désactiver une option du shell94
      • 3.2 Visualiser la liste des options94
      • 3.3 Principales options95
      • 3.3.1 ignoreeof95
      • 3.3.2 noclobber95
      • 3.3.3 emacs et vi96
      • 3.3.4 xtrace96
      • 4. Les alias97
      • 4.1 Définir un alias97
      • 4.2 Visualiser la liste des alias97
      • 4.2.1 Visualiser tous les alias97
      • 4.2.2 Visualiser un alias en particulier98
      • 4.3 Supprimer un alias98
      • 5. Historique de commandes98
      • 5.1 Paramétrer le rappel de commandes en ksh99
      • 5.1.1 Option vi99
      • 5.1.2 Option emacs101
      • 5.2 Paramétrer le rappel de commandes en bash105
      • 5.3 La complétion de noms de fichiers105
      • 5.3.1 La complétion du bash105
      • 5.3.2 La complétion du ksh106
      • 5.3.3 Tableau récapitulatif108
      • 5.4 Autres complétions108
      • 6. Les fichiers d'environnement109
      • 6.1 Caractéristiques des fichiers d'environnement109
      • 6.1.1 Shell de connexion109
      • 6.1.2 Fichiers d'environnement lus par le shell de connexion110
      • 6.2 Session utilisant un Korn shell113
      • 6.3 Session utilisant un Bourne Again shell116
      • 6.4 Session utilisant un Bourne shell118
      • 7. Exercices119
      • 7.1 Variables d'environnement119
      • 7.1.1 Exercice 1119
      • 7.1.2 Exercice 2119
      • 7.2 Alias de commandes120
      • 7.2.1 Exercice 1120
      • 7.2.2 Exercice 2120
      • Chapitre 4
      • Les bases de la programmation shell
      • 1. Présentation121
      • 2. Les variables utilisateur121
      • 2.1 Nommer une variable121
      • 2.2 Définir une variable122
      • 2.2.1 Affecter une valeur à une variable122
      • 2.2.2 Affecter une valeur contenant au moins un espace122
      • 2.2.3 Variable indéfinie123
      • 2.2.4 Retirer la définition d'une variable123
      • 2.2.5 Isoler le nom d'une variable124
      • 2.2.6 Variables numériques125
      • 2.2.7 Variables complexes126
      • 2.2.8 Variables accessibles en lecture seule126
      • 2.3 Substitution de variables127
      • 3. Substitution de commandes129
      • 4. Caractères de protection131
      • 4.1 Les apostrophes (simples quotes)131
      • 4.2 Le caractère\132
      • 4.3 Les guillemets133
      • 5. Récapitulatif des caractères spéciaux134
      • 6. Interprétation d'une ligne de commande134
      • 7. Écriture et lancement d'un script shell135
      • 7.1 Définition135
      • 7.2 Exécution d'un script par un shell enfant136
      • 7.3 Exécution d'un script par le shell courant139
      • 7.4 Commentaires141
      • 8. Variables réservées du shell142
      • 8.1 Les paramètres positionnels142
      • 8.2 La commande shift144
      • 8.2.1 Syntaxe144
      • 8.2.2 Principe144
      • 8.3 Code de retour d'une commande146
      • 8.3.1 La variable $?146
      • 8.3.2 La commande exit147
      • 8.4 Autres variables spéciales148
      • 8.4.1 PID du shell interpréteur148
      • 8.4.2 PID du dernier processus lancé en arrière-plan149
      • 9. La commande read151
      • 9.1 Syntaxe151
      • 9.2 Lectures au clavier151
      • 9.3 Code de retour153
      • 9.4 La variable IFS154
      • 10. Exécution de tests155
      • 10.1 Introduction155
      • 10.2 La commande [[ ]]155
      • 10.2.1 Syntaxes156
      • 10.2.2 Tests sur les fichiers157
      • 10.2.3 Tests sur les chaînes de caractères159
      • 10.2.4 Tests numériques162
      • 10.2.5 Les opérateurs163
      • 10.2.6 Exemple concret d'utilisation164
      • 10.3 La commande [ ] (commande test)164
      • 10.3.1 Syntaxe165
      • 10.3.2 Tests sur les fichiers165
      • 10.3.3 Tests sur les chaînes de caractères168
      • 10.3.4 Tests sur les nombres170
      • 10.3.5 Les opérateurs logiques171
      • 10.3.6 Exemple concret d'utilisation172
      • 11. Les opérateurs du shell172
      • 11.1 Évaluation de l'opérateur &&173
      • 11.2 Évaluation de l'opérateur | |174
      • 11.3 Inverser le code de retour d'une commande175
      • 12. L'arithmétique176
      • 12.1 La commande (( ))176
      • 12.1.1 Syntaxe176
      • 12.1.2 Opérateurs177
      • 12.2 La commande let179
      • 12.3 La commande expr180
      • 12.3.1 Syntaxe180
      • 12.3.2 Opérateurs180
      • 13. Substitution d'expressions arithmétiques183
      • 14. Arithmétique sur les flottants185
      • 14.1 ksh93185
      • 14.2 Autres shells185
      • 15. Mise au point d'un script186
      • 15.1 Option -x186
      • 15.2 Autres options189
      • 16. Les structures de contrôle189
      • 16.1 if189
      • 16.2 case193
      • 16.2.1 Syntaxe193
      • 16.2.2 Principe194
      • 16.2.3 Utilisation195
      • 16.3 Boucle for199
      • 16.3.1 Syntaxe classique199
      • 16.3.2 Autre syntaxe203
      • 16.4 Boucle while204
      • 16.4.1 Syntaxe204
      • 16.4.2 Utilisation205
      • 16.4.3 Boucle infinie206
      • 16.5 until208
      • 16.5.1 Syntaxe208
      • 16.5.2 Utilisation209
      • 16.6 break et continue213
      • 17. Exercices215
      • 17.1 Variables, caractères spéciaux215
      • 17.1.1 Exercice 1 : variables215
      • 17.1.2 Exercice 2 ; variables216
      • 17.1.3 Exercice 3 : substitution de commande216
      • 17.1.4 Exercice 4 : caractères de protection216
      • 17.2 Variables, affichages et lectures clavier217
      • 17.2.1 Exercice 1 : variables217
      • 17.2.2 Exercice 2 : paramètres positionnels217
      • 17.2.3 Exercice 3 : lectures clavier217
      • 17.3 Tests et arithmétique218
      • 17.3.1 Exercice 1 : tests sur des fichiers218
      • 17.3.2 Exercice 2 : tests de chaînes de caractères218
      • 17.3.3 Exercice 3 ; tests numériques219
      • 17.3.4 Exercice 4 : arithmétique219
      • 17.3.5 Exercice 5 : opérateurs logiques des commandes [ ] et [[ ]] et opérateurs logiques du shell219
      • 17.4 Structures de contrôle if, case, boucle for220
      • 17.4.1 Exercice 1 : les commandes [ ] et [[ ]], la structure de contrôle if220
      • 17.4.2 Exercice 2 ; structures de contrôle case, boucle for220
      • 17.5 Boucles221
      • 17.5.1 Exercice 1 : boucle for, commande tr221
      • 17.5.2 Exercice 2 : boucle for, arithmétique221
      • 17.5.3 Exercice 3 ; boucles for, while222
      • Chapitre 5
      • Aspects avancés de la programmation shell
      • 1. Présentation223
      • 2. Comparatif des variables $* et $@223
      • 2.1 Utilisation de $* et de $@ sans guillemets223
      • 2.2 Utilisation de "$*" entre guillemets225
      • 2.3 Utilisation de "$@" entre guillemets226
      • 3. Manipulation de variables227
      • 3.1 Longueur de la valeur contenue dans une variable227
      • 3.2 Retirer le plus petit fragment en début de chaîne227
      • 3.3 Retirer le plus grand fragment en début de chaîne228
      • 3.4 Retirer le plus petit fragment en fin de chaîne228
      • 3.5 Retirer le plus grand fragment en fin de chaîne229
      • 4. Tableaux indicés numériquement230
      • 4.1 Définition et initialisation d'un tableau230
      • 4.2 Assigner un élément de tableau231
      • 4.3 Valeur d'un élément232
      • 4.4 Référencer tous les éléments d'un tableau232
      • 4.5 Obtenir le nombre d'éléments d'un tableau232
      • 4.6 Obtenir la longueur d'un élément d'un tableau233
      • 4.7 Parcourir un tableau indicé numériquement233
      • 5. Tableaux associatifs235
      • 5.1 Définition et initialisation d'un tableau associatif235
      • 5.2 Afficher la valeur associée à une clé236
      • 5.3 Afficher la liste des clés236
      • 5.4 Afficher la liste des valeurs236
      • 5.5 Boucler sur un tableau associatif237
      • 6. Initialisation des paramètres positionnels avec set237
      • 7. Les fonctions238
      • 7.1 Définition d'une fonction238
      • 7.2 Code de retour d'une fonction240
      • 7.3 Portée des variables242
      • 7.4 Définition de variables locales243
      • 7.5 Passage d'arguments244
      • 7.6 Variable référence246
      • 7.7 Exploiter l'affichage d'une fonction248
      • 8. Commandes d'affichage250
      • 8.1 La commande print250
      • 8.1.1 Utilisation simple250
      • 8.1.2 Suppression du saut de ligne naturel de print250
      • 8.1.3 Afficher des arguments commençant par le caractère250
      • 8.1.4 Écrire sur un descripteur particulier251
      • 8.2 La commande printf251
      • 9. Gestion des entrées/sorties d'un script253
      • 9.1 Redirection des entrées/sorties standards253
      • 9.2 Gestion de fichiers257
      • 9.2.1 Descripteurs de fichiers257
      • 9.2.2 Ouverture de fichier257
      • 9.2.3 Lecture à partir d'un fichier ouvert257
      • 9.2.4 Écriture dans un fichier ouvert257
      • 9.2.5 Fermeture d'un fichier258
      • 9.3 Traitement d'un fichier260
      • 9.3.1 Informations préalables260
      • 9.3.2 Les différentes façons d'exploiter un fichier260
      • 9.3.3 Découper une ligne en champs265
      • 9.3.4 Lire plusieurs lignes avec un appel à read266
      • 9.3.5 Modifier le séparateur de ligne267
      • 10. La commande eval268
      • 11. Gestion des signaux271
      • 11.1 Principaux signaux271
      • 11.2 Ignorer un signal272
      • 11.3 Modifier le traitement associé à un signal273
      • 11.4 Repositionner le traitement par défaut du shell vis-à-vis d'un signal274
      • 11.5 Utiliser trap à partir d'un script shell275
      • 12. Gestion de menus avec select276
      • 13. Analyse des options d'un script avec getopts278
      • 14. Gestion d'un processus en arrière-plan284
      • 15. Compatibilité d'un script entre bash et ksh285
      • 15.1 Récupérer le nom du shell interpréteur du script285
      • 15.2 Gestion des séquences d'échappement avec echo286
      • 15.3 Gestion des caractères étendus287
      • 15.4 Script complet287
      • 16. Script d'archivage incrémental et transfert SFTP automatique288
      • 16.1 Objectif288
      • 16.2 Le fichier uploadBackup.sh291
      • 16.3 Le fichier fonctions.inc.sh294
      • 17. Exercices297
      • 17.1 Fonctions297
      • 17.1.1 Exercice 1 : fonctions simples297
      • 17.1.2 Exercice 2 : fonctions simples, statut de retour298
      • 17.1.3 Exercice 3 : passage de paramètres, retour de valeur299
      • 17.1.4 Exercice 4 ; fichiers300
      • 17.1.5 Exercice 5 : fichiers, fonctions, menu select301
      • 17.1.6 Exercice 6 : fichiers, tableaux associatifs (bash 4, ksh93)302
      • Chapitre 6
      • Les expressions régulières
      • 1. Présentation303
      • 2. Caractères communs aux ERb et ERe304
      • 3. Caractères spécifiques aux ERb307
      • 4. Caractères spécifiques aux ERe308
      • 5. Exploitation des expressions régulières par les commandes310
      • 5.1 La commande vi310
      • 5.2 La commande grep310
      • 5.3 La commande expr312
      • 5.4 sed et awk316
      • 6. Exercices316
      • 6.1 Expressions régulières316
      • 6.1.1 Exercice 1 : expressions régulières avec vi316
      • 6.1.2 Exercice 2 : grep317
      • Chapitre 7
      • La commande sed
      • 1. Présentation319
      • 2. Utilisation de la commande sed319
      • 3. Exemples322
      • 3.1 Utilisation de sed en ligne de commande322
      • 3.1.1 La commande d (delete)322
      • 3.1.2 La commande p (print)323
      • 3.1.3 La commande w (write)324
      • 3.1.4 Négation d'une commande (!)324
      • 3.1.5 La commande s (substitution)325
      • 3.2 Script sed327
      • 4. Exercices328
      • 4.1 Expressions régulières328
      • 4.1.1 Exercice 1 : insertion de balises dans un fichier328
      • 4.1.2 Exercice 2. : formatage de fichier329
      • Chapitre 8
      • Le langage de programmation awk
      • 1. Présentation331
      • 1.1 Syntaxe331
      • 1.2 Version de gawk332
      • 1.3 Variables spéciales332
      • 1.3.1 Variables prédéfinies dès le lancement de awk332
      • 1.3.2 Variables initialisées lors du traitement d'une ligne333
      • 1.3.3 Exemples simples334
      • 1.4 Critères de sélection336
      • 1.4.1 Expressions régulières336
      • 1.4.2 Tests logiques337
      • 1.4.3 Intervalles de lignes338
      • 1.5 Structure d'un script awk339
      • 1.5.1 BEGIN339
      • 1.5.2 Sections intermédiaires339
      • 1.5.3 END339
      • 1.5.4 Commentaires339
      • 1.5.5 Variables339
      • 1.5.6 Exemple340
      • 2. Opérateurs341
      • 3. La fonction printf343
      • 4. Redirections345
      • 5. Lecture de la ligne suivante : next347
      • 6. Structures de contrôle348
      • 6.1 if348
      • 6.2 switch348
      • 6.3 for350
      • 6.4 while351
      • 6.5 do-while351
      • 6.6 break351
      • 6.7 continue351
      • 7. Terminer un script352
      • 8. Tableaux352
      • 8.1 Tableaux indicés par un nombre352
      • 8.2 Tableaux indicés par une chaîne de caractères353
      • 8.3 Tester l'existence d'un élément355
      • 8.4 Supprimer un élément356
      • 8.5 Nombre d'éléments d'un tableau357
      • 8.6 Ordre de parcours des éléments357
      • 8.7 Trier un tableau360
      • 9. Tableaux multidimensionnels362
      • 9.1 Simulation de tableaux multidimensionnels362
      • 9.2 Vrais tableaux multidimensionnels364
      • 9.3 Tester si une variable est un tableau365
      • 10. Les arguments de la ligne de commande366
      • 11. Fonctions intégrées368
      • 11.1 Fonctions travaillant sur les chaînes368
      • 11.2 Fonctions mathématiques369
      • 11.3 Fonctions liées aux tableaux370
      • 11.4 Autres fonctions370
      • 11.4.1 La fonction getline370
      • 11.4.2 La fonction close374
      • 11.4.3 La fonction system375
      • 12. Fonctions utilisateur376
      • 13. Inclusions de fichiers377
      • 14. Exercices379
      • 14.1 awk en ligne de commande379
      • 14.1.1 Exercice 1 : awk et autres filtres379
      • 14.1.2 Exercice 2 : critères de sélection379
      • 14.1.3 Exercice 3 : critères de sélection, affichage de champs, sections BEGIN et END380
      • 14.2 Scripts awk381
      • 14.2.1 Exercice 4 : fonctions381
      • 14.2.2 Exercice 5 : analyse d'un fichier de log383
      • 14.2.3 Exercice 6 : génération d'un fichier d'étiquettes384
      • Chapitre 9
      • Les commandes filtres
      • 1. Présentation385
      • 2. Syntaxe d'appel des commandes filtres385
      • 3. Visualisation de données386
      • 3.1 Consultation de données, création de fichiers : cat386
      • 3.2 Valeur des octets d'un flux de données : od387
      • 3.3 Filtrage de lignes : grep388
      • 3.4 Dernières lignes d'un flux de données : tail392
      • 3.5 Premières lignes d'un flux de données : head393
      • 3.6 Duplication de la sortie standard : tee394
      • 3.7 Numérotation de lignes : nl394
      • 3.8 Présentation d'un flux de données : pr395
      • 4. Traitement de données397
      • 4.1 Comptage de lignes, de mots et de caractères : wc397
      • 4.2 Extraction de caractères : cut399
      • 4.3 Tri de données : sort401
      • 4.4 paste403
      • 4.5 split405
      • 4.6 Transformation de caractères : tr406
      • 4.7 Dédoublonnage : uniq408
      • 5. Compressions, archivages et conversions409
      • 5.1 Compressions : gzip, bzip2409
      • 5.2 Archives tar411
      • 5.3 Archives cpio413
      • 5.4 Copie physique, transformations : dd415
      • 5.5 Changement d'encodage : iconv417
      • 6. Commandes réseau sécurisées418
      • 6.1 Connexion à distance : ssh418
      • 6.2 Transfert de fichier : sftp419
      • 6.2.1 Commandes de sftp s'exécutant sur la machine locale420
      • 6.2.2 Commandes s'exécutant sur la machine distante421
      • 6.2.3 Commandes de transfert422
      • 6.2.4 Connexion automatique sans mot de passe423
      • 7. Autres commandes425
      • 7.1 La commande xargs425
      • 7.2 Comparer deux fichiers : cmp427
      • 7.3 Lignes communes à deux fichiers : comm429
      • Chapitre 10
      • Comment faire... (synthèse)
      • 1. Présentation431
      • 2. Informations431
      • 3. Modèles de noms de fichiers432
      • 4. Tester le code retour d'une commande433
      • 5. Test d'égalité entre deux chaînes434
      • 6. Test d'inégalité entre deux chaînes435
      • 7. Correspondance d'une variable par rapport à un modèle436
      • 8. Non-correspondance d'une variable par rapport à un modèle437
      • 9. Retirer le début ou la fin d'une chaîne438
      • 10. Calculer la longueur d'une chaîne440
      • 11. Récupérer le champ d'une ligne441
      • 12. Ne pas afficher certaines lignes d'un flux443
      • 13. Tests numériques444
      • 14. Calculs445
      • 15. Lancer un script d'un autre langage à partir d'un shell446
      • 16. Accéder à une base MySQL à partir d'un shell447
      • Chapitre 11
      • Compléments sur les mécanismes internes du shell
      • 1. Présentation449
      • 2. Redirection des descripteurs 1 et 2 vers le même fichier449
      • 3. Regroupement de commandes avec les parenthèses454
      • 4. Regroupement de commandes avec les accolades458
      • 5. Interprétation d'un script par un shell enfant461
      • Chapitre 12
      • Annexes
      • 1. Caractères spéciaux du shell465
      • 2. Commandes internes au shell466
      • 3. Classes de caractères POSIX469
      • 4. Ordre d'interprétation d'une commande470
      • Chapitre 13
      • Solutions des exercices
      • 1. Solutions du chapitre Mécanismes essentiels du shell471
      • 1.1 Fonctionnalités diverses471
      • 1.1.1 Exercice 1 : commandes internes et externes471
      • 1.1.2 Exercice 2 : génération de noms de fichiers471
      • 1.1.3 Exercice 3 : séparateur de commandes473
      • 1.2 Redirections473
      • 1.2.1 Exercice 1473
      • 1.2.2 Exercice 2473
      • 1.2.3 Exercice 3474
      • 1.2.4 Exercice 4474
      • 1.2.5 Exercice 5474
      • 1.2.6 Exercice 6474
      • 1.3 Tubes de communication475
      • 1.3.1 Exercice 1475
      • 1.3.2 Exercice 2475
      • 1.3.3 Exercice 3475
      • 1.3.4 Exercice 4475
      • 2. Solutions du chapitre Paramétrage de l'environnement de travail476
      • 2.1 Variables d'environnement476
      • 2.1.1 Exercice 1476
      • 2.1.2 Exercice 2476
      • 2.2 Alias de commandes477
      • 2.2.1 Exercice 1477
      • 2.2.2 Exercice 2478
      • 3. Solutions du chapitre Les bases de la programmation shell479
      • 3.1 Variables, caractères spéciaux479
      • 3.1.1 Exercice 1 : variables479
      • 3.1.2 Exercice 2 : variables479
      • 3.1.3 Exercice 3 : substitution de commande480
      • 3.1.4 Exercice 4 ; caractères de protection480
      • 3.2 Variables, affichages et lectures clavier481
      • 3.2.1 Exercice 1 : variables481
      • 3.2.2 Exercice 2 : paramètres positionnels482
      • 3.2.3 Exercice 3 : lectures clavier483
      • 3.3 Tests et arithmétique484
      • 3.3.1 Exercice 1 : tests sur des fichiers484
      • 3.3.2 Exercice 2 : tests de chaînes de caractères485
      • 3.3.3 Exercice 3 ; tests numériques486
      • 3.3.4 Exercice 4 : arithmétique487
      • 3.3.5 Exercice 5 : opérateurs logiques des commandes [ ] et [[ ]] et opérateurs logiques du shell488
      • 3.4 Structures de contrôle if, case, boucle for489
      • 3.4.1 Exercice 1 : les commandes [ ] et [[ ]], la structure de contrôle if489
      • 3.4.2 Exercice 2 : structures de contrôle case, boucle for490
      • 3.5 Boucles491
      • 3.5.1 Exercice 1 : boucle for, commande tr491
      • 3.5.2 Exercice 2 : boucle for, arithmétique492
      • 3.5.3 Exercice 3 : boucles for, while493
      • 4. Solutions du chapitre Aspects avancés de la programmation shell.494
      • 4.1 Fonctions494
      • 4.1.1 Exercice 1 : fonctions simples494
      • 4.1.2 Exercice 2 : fonctions simples, statut de retour496
      • 4.1.3 Exercice 3 : passage de paramètres, retour de valeur497
      • 4.1.4 Exercice 4 ; fichiers499
      • 4.1.5 Exercice 5 : fichiers, fonctions, menu select500
      • 4.1.6 Exercice 6 : fichiers, tableaux associatifs (bash 4, ksh93)502
      • 5. Solutions du chapitre Les expressions régulières503
      • 5.1 Expressions régulières503
      • 5.1.1 Exercice 1 : expressions régulières avec vi503
      • 5.1.2 Exercice 2 : grep505
      • 6. Solutions du chapitre La commande sed506
      • 6.1 Expressions régulières506
      • 6.1.1 Exercice 1 : insertion de balises dans un fichier506
      • 6.1.2 Exercice 2 : formatage de fichier507
      • 7. Solution du chapitre Le langage de programmation awk508
      • 7.1 awk en ligne de commande508
      • 7.1.1 Exercice 1 : awk et autres filtres508
      • 7.1.2 Exercice 2 : critères de sélection508
      • 7.1.3 Exercice 3 ; critères de sélection, affichage de champs, sections BEGIN et END509
      • 7.2 Scripts awk510
      • 7.2.1 Exercice 4 : fonctions510
      • 7.2.2 Exercice 5 : analyse d'un fichier de log512
      • 7.2.3 Exercice 6 : génération d'un fichier d'étiquettes513
      • Index517

  • Origine de la notice:
    • Electre
  • Disponible - 681.44(07) DEF

    Niveau 3 - Informatique