Ce livre est divisé en cinq parties, qui présentent en détail les compétences en programmation shell, diverses commandes et syntaxes UNIX, et implique également le traitement de texte sous UNIX et un petit nombre de problèmes de gestion système. Ce livre a un contenu complet et un texte concis et fluide, ce qui le rend adapté aux programmeurs Shell pour l'apprendre et s'y référer.
Table des matières Préface du traducteur, première partie
Chapitre 1 Sécurité des fichiers et autorisations 1
1.1 Document 1
1.2 Type de fichier 2
1.3 Autorisation 2
1.4 Modifier le bit d'autorisation 4
1.4.1 Mode Symbole 4
1.4.2 Exemple de commande chmod 5
1.4.3 Mode absolu 5
1.4.4 Autres exemples de commande chmod 6
1.4.5 Vous pouvez choisir d'utiliser le mode symbolique ou le mode absolu 7
1.5 Sommaire 7
1.6 suid/guide 7
1.6.1 Pourquoi utiliser suid/guid 8
1.6.2 Exemple de paramétrage suid/guid 8
1.7 chown et chgrp 9
1.7.1 exemple présenté 9
1.7.2 chgrp exemple 9
1.7.3 Découvrez à quels groupes d'utilisateurs vous appartenez 9
1.7.4 Découvrez à quels groupes appartiennent les autres utilisateurs10
1.8masque 10
1.8.1 Comment calculer la valeur umask 10
1.8.2 Valeur umask 11 couramment utilisée
1.9 Liens symboliques 12
1.9.1 Utilisation de liens symboliques pour enregistrer plusieurs images d'un fichier 12
1.9.2 Exemple de lien symbolique 12
1.10 Résumé 13
Chapitre 2 Utiliser find et xargs 14
2.1 Rechercher les options de commande 14
2.1.1 Utilisation de l'option de nom 15
2.1.2 Utilisation de l'option permanente 16
2.1.3 Ignorer un répertoire 16
2.1.4 Utilisation des options utilisateur et nouser 16
2.1.5 Utilisation des options group et nogroup 16
2.1.6 Rechercher des fichiers en fonction de l'heure de modification 17
2.1.7 Rechercher des fichiers plus récents ou plus anciens qu'un certain fichier 17
2.1.8 Utilisation de l'option de type 17
2.1.9 Utilisation de l'option de taille 18
2.1.10 Utilisation de l'option de profondeur 18
2.1.11 Utilisation de l'option de montage 18
2.1.12 Utilisation de l'option cpio 18
2.1.13 Utilisez exec ou ok pour exécuter les commandes shell 19
2.1.14 Exemple 20 de commande find
2.2 xargs20
2.3 Résumé 21
Chapitre 3 Exécution de commandes en arrière-plan 22
3.1 cron et crontab 22
3.1.1 domaine crontab 22
3.1.2 Exemples d'entrées crontab 23
3.1.3 option de commande crontab 23
3.1.4 Créer un nouveau fichier crontab 24
3.1.5 Liste des fichiers crontab 24
3.1.6 Modifier le fichier crontab 24
3.1.7 Supprimer le fichier crontab 25
3.1.8 Récupérer les fichiers crontab perdus 25
3.2 au commandement 25
3.2.1 Utiliser la commande at pour soumettre des commandes ou des scripts 26
3.2.2 Liste des missions soumises 27
3.2.3 Effacer une tâche 27
3.3 & Commande 27
3.3.1 Soumettre la commande en arrière-plan 28
3.3.2 Utilisez la commande ps pour visualiser le processus 28
3.3.3 Tuer les processus en arrière-plan 28
3.4 commande nohup 29
3.4.1 Utiliser la commande nohup pour soumettre des tâches 29
3.4.2 Soumettre plusieurs travaux à la fois 29
3.5 Résumé 30
Chapitre 4 Remplacement du nom de fichier 31
4.1 Utilisation* 31
4.2 Utilisation ? 32
4.3 Utilisation de [...] et [!...] 32
4.4 Résumé 33
Chapitre 5 Entrée et sortie du shell 34
5.1 écho 34
5.2 lire 35
5.3 chat 37
5.4 Pipeline 38
5,5 té 39
5.6 Entrées, sorties et erreurs standard 40
5.6.1 Entrée standard 40
5.6.2 Sortie standard 40
5.6.3 Erreur type 40
5.7 Redirection de fichiers 40
5.7.1 Redirection de la sortie standard 41
5.7.2 Redirection de l'entrée standard 42
5.7.3 Redirection de l'erreur type 42
5.8 Utilisation conjointe de la sortie standard et de l'erreur standard 43
5.9 Fusion de la sortie standard et de l'erreur standard 43
5.10 exécutable 44
5.11 Utilisation des descripteurs de fichiers 44
5.12 Résumé 45
Chapitre 6 Séquence d'exécution des commandes 46
6.1 Utilisation de && 46
6.2 Utilisation || 46
6.3 Utilisez () et { } pour combiner les commandes 47
6.4 Résumé 48
Partie 2 Filtrage de texte Chapitre 7 Introduction aux expressions régulières 49
7.1 Utiliser des points pour faire correspondre des caractères uniques 50
7.2 Faire correspondre une chaîne ou une séquence de caractères avec ^ au début de la ligne 50
7.3 Faire correspondre la chaîne ou le caractère 51 avec $ en fin de ligne
7.4 Utilisez * pour faire correspondre un seul caractère ou sa séquence répétée dans une chaîne 51
7.5 Utiliser pour masquer la signification d'un caractère spécial 52
7.6 Utilisez [] pour faire correspondre une plage ou un ensemble52
7.7 Utilisez {} pour faire correspondre le nombre de fois où le résultat du modèle apparaît 53
7.8 Résumé 55
Chapitre 8 famille grep 56
8.1 grappin 57
8.1.1 Guillemets doubles 57
8.1.2 option grep 57
8.1.3 Interroger plusieurs fichiers 57
8.1.4 Correspondance de ligne 57
8.1.5 Nombre de lignes 58
8.1.6 Afficher les lignes qui ne correspondent pas 58
8.1.7 Correspondance exacte 58
8.1.8 Sensibilité à la casse58
8.2 grep et expressions régulières 58
8.2.1 Plage de modes 59
8.2.2 Ne correspond pas au début de la ligne 59
8.2.3 Coffret 59
8.2.4 Faire correspondre n'importe quel caractère 59
8.2.5 Requête de date 59
8.2.6 Combinaison de gammes 60
8.2.7 Probabilité d'apparition de motifs 60
8.2.8 Utiliser grep pour faire correspondre les modèles « AND » ou « OR » 61
8.2.9 Ligne vide 61
8.2.10 Faire correspondre les caractères spéciaux 61
8.2.11 Requête du nom de fichier formaté 61
8.2.12 Requête d'adresse IP 61
8.3 Nom de la classe 62
8.4 Commande système grep 62
8.4.1 Table des matières 63
8.4.2 fichier mot de passe 63
8.4.3 Utilisation de la commande ps 63
8.4.4 Utiliser grep 64 sur une chaîne
8.5 egrep 64
8.6 Résumé 65
Chapitre 9 Introduction à AWK 66
9.1 Appeler awk 66
9.2 Script awk 67
9.2.1 Modèles et actions 67
9.2.2 Domaines et enregistrements 67
9.2.3 Expressions régulières et leurs opérations dans awk 70
9.2.4 Métacaractères 70
9.2.5 Opérateurs conditionnels 70
9.2.6 Variables intégrées awk 73
9.2.7 NF, NR et NOM DE FICHIER 74
9.2.8 opérateur maladroit 75
9.2.9 Fonctions de chaîne intégrées 78
9.2.10 Séquence de masquage de chaîne 80
9.2.11 fonction de sortie awk printf 81
9.2.12 modificateur printf 81
9.2.13 tableau awk 86
9.3 Résumé 88
Chapitre 10 Introduction à l'utilisation de sed 89
10.1 Comment lire des données avec sed 89
10.2 Appel de sed 89
10.2.1 Sauvegarde de la sortie sed 90
10.2.2 Comment utiliser sed pour interroger du texte dans un fichier 90
10.2.3 Commandes d'édition sed de base 90
10.3 sed et expressions régulières 91
10.4 Exemples de programmation de base de sed 91
10.4.1 Utilisation de p(rint) pour afficher la ligne 91
10.4.2 Plage d'impression 91
10.4.3 Mode impression 92
10.4.4 Interrogation à l'aide de modèles et de numéros de ligne 92
10.4.5 Correspondance des métacaractères 92
10.4.6 Afficher l'intégralité du fichier 92
10.4.7 N'importe quel caractère 92
10.4.8 Première ligne 92
10.4.9 Dernière ligne 93
10.4.10 Imprimer le numéro de ligne 93
10.4.11 Texte complémentaire 93
10.4.12 Créer un fichier de script sed 94
10.4.13 Insérer du texte 94
10.4.14 Modifier le texte 95
10.4.15 Supprimer le texte 96
10.4.16 Texte de remplacement 96
10.5 Modification de chaînes par substitution 97
10.6 Écrire les résultats de sed dans la commande file 97
10.7 Lecture de texte à partir d'un fichier 98
10.8 Quitter 98 après la correspondance
10.9 Afficher les caractères de contrôle dans les fichiers 99
10.10 Utilisation du système sed 99
10.10.1 Manipulation des caractères de contrôle 99
10.10.2 Traitement de la sortie de message 101
10.10.3 Supprimer le numéro 101 en début de ligne
10.10.4 Texte complémentaire 102
10.10.5 Passage de la valeur 102 du shell à sed
10.10.6 Définition des variables shell à partir de la sortie sed 102
10.11 Commandes rapides sur une ligne 102
10.12 Résumé 103
Chapitre 11 Fusion et scission 104
11.1 Utilisation du tri 104
11.1.1 Aperçu 104
11.1.2 options de tri 104
11.1.3 Sauvegarde de la sortie 105
11.1.4 Méthode de démarrage du tri 105
11.1.5 Comment le tri fait référence aux domaines 105
11.1.6 Si le dossier a été classifié105
11.1.7 Tri de base 106
11.1.8 inversion de classification de tri 106
11.1.9 Classification par domaine désigné 106
11.1.10 Classification des champs numériques 106
11.1.11 Classification d'unicité 107
11.1.12 Autres méthodes de tri utilisant k 108
11.1.13 Utilisation de k pour le tri des clés de classification 108
11.1.14 Spécifier la séquence de tri 108
11.1.15 Utilisation des positions 108
11.1.16 Classer la sortie à l'aide de la tête et de la queue 109
11.1.17 awk utilise le tri pour afficher les résultats 109
11.1.18 Fusionner deux fichiers de classification 110
11.2 Tri système 110
11.3 Utilisation unique 111
11.4 Utilisation de la jointure 112
11,5 utilisation de coupe 114
11.5.1 Utilisation de séparateurs de domaine 115
11.5.2 Couper le champ spécifié 115
11.6 Utilisation du collage 116
11.6.1 Spécification des colonnes 116
11.6.2 Utilisation de différents délimiteurs de champs 116
11.6.3 Entrée du pipeline de commande Coller 117
11.7 utilisation fractionnée 117
11.8 Résumé 118
Chapitre 12 tr Utilisation 119
12.1 À propos du tr 119
12.1.1 Plage de caractères 119
12.1.2 Sauvegarde de la sortie 120
12.1.3 Supprimer les caractères répétés 120
12.1.4 Supprimer les lignes vides 120
12.1.5 Majuscules vers minuscules 121
12.1.6 Minuscules vers majuscules 121
12.1.7 Supprimer les caractères spécifiés 121
12.1.8 Conversion des caractères de contrôle 122
12.1.9 Conversion rapide 122
12.1.10 Faire correspondre plusieurs caractères 123
12.2 Résumé 123
Partie 3 Environnement de connexion Chapitre 13 Environnement de connexion 125
13.1 /etc/profil 125
13.2 $HOME.profile de l'utilisateur 128
13.3 Utilisation du style 129
13.4 Créer un fichier .logout 131
13.5 Résumé 131
Chapitre 14 Variables d'environnement et shell 132
14.1 Que sont les variables shell132
14.2 Variables locales 132
14.2.1 Afficher les variables 133
14.2.2 Effacer les variables 133
14.2.3 Afficher toutes les variables shell locales 133
14.2.4 Combinaison de valeurs de variables 134
14.2.5 Tester si une variable a été définie 134
14.2.6 Utiliser des variables pour enregistrer les paramètres de commande système 135
14.2.7 Définition des variables en lecture seule 135
14.3 Variables d'environnement 136
14.3.1 Définition des variables d'environnement 136
14.3.2 Afficher les variables d'environnement 136
14.3.3 Effacer les variables d'environnement 137
14.3.4 Incorporation de variables shell 137
14.3.5 Autres variables d'environnement 139
14.3.6 commande set 140
14.3.7 Exportation de variables vers des processus enfants 140
14.4 Paramètres des variables de position 141
14.4.1 Utilisation de paramètres de position dans les scripts 142
14.4.2 Passage de paramètres aux commandes système 142
14.4.3 Paramètres variables spécifiques 143
14.4.4 Statut de sortie final 144
14.5 Résumé 145
Chapitre 15 Citations 146
15.1 Nécessité de citation 146
15.2 Guillemets doubles 146
15.3 Guillemets simples 147
15.4 Backtictics147
15.5 Barre oblique inverse 148
15.6 Résumé 149
Partie 4 Programmation Shell de base Chapitre 16 Introduction aux scripts Shell 151
16.1 Raisons d'utiliser les scripts shell 151
16.2 Contenu du script 151
16.3 Exécuter un script 152
16.4 Résumé 153
Chapitre 17 Tests conditionnels 154
17.1 État du fichier de test 154
17.2 Utilisation d'opérateurs logiques lors des tests 155
17.3 Test des chaînes 155
17.4 Valeur d'essai 156
17,5 utilisation expr. 157
17.5.1 Comptage incrémental 158
17.5.2 Tests numériques 158
17.5.3 Correspondance de modèles 158
17.6 Résumé 159
Chapitre 18 Structures de flux de contrôle 160
18.1 État de sortie 160
18.2 Structure de contrôle 160
18.2.1 Contrôle du débit 161
18.2.2 Boucles 161
18.3 instruction if then else 161
18.3.1 Instruction if simple 162
18.3.2 Test des valeurs variables 162
18.3.3 inspection de sortie grep 163
18.3.4 Test de la sortie grep avec des variables 163
18.3.5 Vérification de la sortie de copie de fichier 164
18.3.6 Test du répertoire courant 164
18.3.7 Test d'autorisation de fichier 165
18.3.8 Paramètres de test passés dans les scripts 165
18.3.9 Déterminer si le script est en mode interactif165
18.3.10 Instruction if else simple 166
18.3.11 Test de réglage variable 166
18.3.12 Détection de l'utilisateur exécutant le script 166
18.3.13 Passer les paramètres du script dans les commandes système 167
18.3.14 null : utilisation des commandes 167
18.3.15 Résultats de création du répertoire de test 168
18.3.16 Une autre instance de copie 169
18.3.17 Instructions if multiples 169
18.3.18 Test et définition des variables d'environnement 169
18.3.19 Détection du dernier état de commande 170
18.3.20 Ajout et vérification de valeurs entières 171
18.3.21 Script de connexion sécurisé simple 172
18.3.22 Utilisation d'elif 173
18.3.23 Utilisation d'elif pour la détection multi-conditions 173
18.3.24 Détection d'emplacements de fichiers multiples 174
18.4 Exposé du cas 175
18.4.1 Exposé de cas simple 175
18.4.2 Utilisation de modèles de correspondance | 176
18.4.3 Invite à saisir y ou n 177
18.4.4 cas et paramètre de commande passant 177
18.4.5 Capturer une entrée et exécuter une commande vide 178
18.4.6 Valeurs des variables par défaut 179
18,5 pour la boucle 180
18.5.1 Boucle for simple 181
18.5.2 Impression d'une liste de chaînes 181
18.5.3 Utilisation de la commande ls avec une boucle for 181
18.5.4 Utiliser des paramètres avec des boucles for 182
18.5.5 Utilisation de la boucle for pour se connecter au serveur 183
18.5.6 Utilisation de la boucle for pour sauvegarder des fichiers 183
18.5.7 Conversion de plusieurs fichiers 183
18.5.8 Opérations de suppression sed multiples 184
18.5.9 Nombre de boucles 184
18.5.10 pour les boucles et les documents locaux 184
18.5.11 pour l'intégration de boucles 185
18,6 jusqu'à la boucle 186
18.6.1 Simple jusqu'à la boucle 186
18.6.2 Suivi des fichiers 187
18.6.3 Surveillance de l'espace disque 187
18,7 boucle while 188
18.7.1 Boucle while simple 188
18.7.2 Utiliser la boucle while pour lire la saisie au clavier 188
18.7.3 Lire les données d'un fichier à l'aide d'une boucle while 189
18.7.4 Lecture de fichiers avec IFS 189
18.7.5 Traitement des fichiers avec conditions de test 190
18.7.6 Analyse des lignes de fichier pour le compte 191
18.7.7 Lecture d'une paire d'enregistrements à la fois 193
18.7.8 Ignorer le caractère # 193
18.7.9 Traitement des rapports formatés 194
18.7.10 Boucles while et descripteurs de fichiers 196
18.8 Utilisation des boucles break et continue pour contrôler les boucles 197
18.8.1 pause 197
18.8.2 Sortir de l'énoncé de cas 197
18.8.3 suite 197
18.8.4 Parcourir les lignes du fichier 198
18.9 Menu 199
18.10 Résumé 201
Chapitre 19 Fonctions Shell 202
19.1 Définir des fonctions dans les scripts 203
19.2 Utiliser des fonctions dans des scripts 203
19.3 Passage de paramètres aux fonctions 203
19.4 Renvoi de 203 depuis la fonction appelante
19.5 Test de la valeur de retour de la fonction 204
19.6 Utiliser des fonctions dans le shell 204
19.7 Création de fichiers de fonctions 204
19.8 Localisation des fichiers 205
19.9 Vérification des fonctions de chargement 205
19.10 Exécution des fonctions shell 205
19.10.1 Supprimer la fonction shell 206
19.10.2 Modification des fonctions shell 206
19.10.3 Exemples de fonctions 207
19.10.4 Regroupement de fonctions 219
19.11 Appels de fonction 219
19.11.1 Appel de fonctions dans des scripts 219
19.11.2 Appel de fonctions à partir de fichiers de fonctions 220
19.12 La localisation de fichiers ne concerne pas uniquement les fonctions 222
19.13 Résumé 223
Chapitre 20 Passage de paramètres aux scripts 224
20.1 commande de changement de vitesse 225
20.1.1 Utilisation simple de la commande shift 225
20.1.2 Le dernier paramètre saisi sur la ligne de commande 225
20.1.3 Utilisation de Shift pour traiter la conversion de fichiers 226
20.2 getopts 229
20.2.1 Exemple de script getopts 229
20.2.2 Comment utiliser getopts 231
20.2.3 Utiliser getopts pour spécifier les valeurs des variables 231
20.2.4 Méthode de valeur d'accès 232
20.2.5 Utilisation de getopts pour gérer la conversion de fichiers 233
20.3 Résumé 235
Chapitre 21 Création d'une sortie d'écran 236
21.1 Utilisation du port 236
21.1.1 Sortie de chaîne 236
21.1.2 Sortie numérique 237
21.1.3 Sortie booléenne 237
21.2 Utilisation du tput 237
21.2.1 Définition de la commande tput 237
21.2.2 Utilisation de la sortie booléenne 237
21.2.3 Utilisation de tput dans les scripts 237
21.2.4 Génération de séquences d'échappement 238
21.2.5 Position du curseur 239
21.2.6 Afficher du texte au centre de l'écran 240
21.2.7 Recherche des attributs du terminal 240
21.2.8 Utilisation des touches de fonction dans les scripts 241
21.2.9 Utilisation de la couleur 242
21.2.10 Génération de couleur 243
21.2.11 Créer un menu exquis 246
21.3 Résumé 251
Chapitre 22 Création d'une saisie à l'écran 252
22.1 Ajouter des enregistrements 252
22.2 Supprimer des enregistrements 262
22.3 Enregistrements de modifications 266
22.4 Afficher les enregistrements 270
22.5 Résumé 273
Chapitre 23 Scripts de débogage 274
23.1 Erreurs générales 274
23.1.1 Erreur de boucle 274
23.1.2 Guillemets manquants typiques 274
23.1.3 Erreur de test 274
23.1.4 Cas des caractères 275
23.1.5 pour la boucle 275
23.1.6 écho 275
23.2 commande set 275
23.3 Résumé 276
Chapitre 24 Commandes d'intégration de shell 277
24.1 Liste complète des commandes intégrées au shell 277
24.1.1 mot de passe 277
24.1.2 ensemble 278
24.1.3 fois 278
24.1.4 tapez 278
24.1.5 limite 279
24.1.6 attendre 279
24.2 Résumé 279
Partie 5 Techniques avancées de programmation Shell Chapitre 25 Discussion approfondie
Développer