7 jours d'essai offerts
Cet ouvrage et des milliers d'autres sont disponibles en abonnement pour 8,99€/mois
ou
Achetez pour : 21,99 €

Lecture en ligne + Téléchargement

Format(s) : EPUB - PDF

sans DRM

Publications similaires

Oracle 10g sous Windows

de editions-eyrolles

Scripting Windows

de editions-eyrolles

Vous aimerez aussi

Pokémon GO 100% non officiel

de editions-eyrolles

J'arrête la malbouffe !

de editions-eyrolles

Le pouvoir des gentils

de editions-eyrolles

suivant
Scripts shell Linux et Unix Avec 30 scripts prêts à l’emploi
C h r i s t o p h eB l a e s s
ScriptsshellLinuxetUnix
Programmer des scripts puissants et portables Les systèmes Linux et plus généralement Unix permettent aux utilisateurs, administrateurs, et développeurs de réa liser des tâches complètes en regroupant simplement quelques instructions dans des fichiers de scripts. Mais pour cela, il faut auparavant maîtriser la puissance du shell, ainsi que la complexité apparente de sa syntaxe. Cet ouvrage vous aidera à comprendre progressivement toutes les subtilités de ce langage de programmation, afin que vous soyez capable d’écrire rapidement des scripts robustes, puissants et portables pour Bash ou shell Korn. Il comporte en outre une présentation détaillée des outils Grep et Find, ainsi que des langages Sed et Awk dans leurs utilisations les plus courantes. Avec à l’appui de nombreux exemples et exercices corrigés, l’auteur insiste sur la mise en pratique des notions abordées : 30 scripts complets prêts à l’usage sont disponibles sur l’extension web du livre, pour illustrer les méthodes de programmation proposées.
Au sommaire Principe des scripts shellLe shell UnixExécution d’un scriptProgrammation shellPremier aperçuPremier script, rm_secureAnalyse détailléePerformancesExemple d’exécutionÉvaluation d’expressionsVariablesCalcul arithmétiqueInvocation de commandePortées et attributs des variablesParamètresProtection des expressionsTableauxÉvaluation explicite d’une expressionÉléments de programmation shellCommandes et code de retourRedirections d’entréessortiesStructures de contrôleCommandes, variables et utilitaires systèmeCommandes internesCommandes externesProgrammation shell avancéeProcessus fils, parallélismeArrièreplan et démonsSignauxCommunication entre processusEntréessortiesInterface utilisateurDéboguer un scriptVirgule flottanteExpressions régulières  GrepOutil GrepRecherche récursive avec findSedPrésentationUtilisation de SedAwkFonctionnement de AwkEnregistrements et champsStructures de contrôleExpressionsRetour sur les affichagesBonne écriture d’un scriptPrésentation généraleVariables Gestion des erreursFonctionsScripts completsAdministration systèmeFichiers et bases de donnéesScripts diversQCM d’évaluationSolutions des exercices.
À qui s’adresse cet ouvrage? er e – Aux étudiants en informatique (1et 2cycles universitaires, écoles d’ingénieurs…) – Aux programmeurs Linux et Unix – Aux administrateurs système en charge d’un parc Linux ou Unix
Sur le site http://christopheblaess.com @ – Téléchargez le code source de tous les scripts de l’ouvrage – Dialoguez avec l’auteur
C. Blaess Diplômé de l’Esigelec et titulaire d’un DEA de l’université de Caen, Christophe Blaessest un expert de Linux dans l’industrie. Il conduit de nombreux projets (applications de contrôle aérien, systèmes d’interfaçage avec des automates industriels...) et réalise des prestations d’ingénierie et de conseil dans différents domaines liés à Linux : télévision numérique, informatique médicale, ingénierie aérienne embarquée, traitement radar... Soucieux de partager ses connaissances et son savoirfaire, il dispense depuis plusieurs années des formations professionnelles (Linux temps réel et embarqué, écriture de drivers, programmation noyau...) dans de nombreux centres de formation, en particulier avec la société Logilin qu’il a créée en 2004.
Scripts shell Linux et Unix
chez le même éditeur
Du même auteur
c.Blaess. –Solutions temps réel sous Linux. N°13382, 2012, 294 pagEs.
c.Blaess. –Développement système sous Linux. Ordonnancement multitâches, gestion mémoire, communications, programmation réseau.N°12881, 2011, 1004 pagEs.
Autres ouvrages
d.Taylor. –100 scripts shell Unix. N°11483, 2004, 366 pagEs.
e i.HurBain, e. Dreyfus. –édition)Mémento Unix/Linux (2. N°13306, 2011, 14 pagEs.
r.HerTzog,r.Mas. –Debian Squeeze.GNU / Linux.N°13248, 2011, 500 pagEs.
r.HerTzog,r.Mas. –Debian.GNU / Linux(foRMaT sEMI-poCHE).N°12505, 2009, 428 pagEs.
l.DricoT. –Ubuntu efficace.N°12362, 2009, 326 pagEs.
K.novak. –Linux aux petits oignons.N°12424, 2009, 546 pagEs.
e J.-F.BoucHauDy. –édition)Linux Administration – Tome 1 (2. N°12624, 2009, 200 pagEs.
e J.-F.BoucHauDy. –édition)Linux Administration – Tome 2 (2. N°12882, 2011, 504 pagEs.
e J.-F.BoucHauDy. –édition)Linux Administration – Tome 3 (2. N°13462, 2012, 400 pagEs.
e B.BouTHerin, B. Delaunay. –Sécuriser un réseau Linux (3édition). N°11960, 2007, 250 pagEs.
e P.ficHeux, É.BÉnarD. –édition)Linux embarqué (4. Nouvelle étude de cas – Traite d’OpenEmbedded.N°13482, 2012, 540 pagEs.
Scripts shell Linux et Unix
C h r i s t o p h eB l a e s s
ÉDITIONS EYROLLES 61, bd Saint-Germain 75240 Paris Cedex 05 www.editions-eyrolles.com
En application de la loi du 11 mars 1957, il est interdit de reproduire intégralement ou partiellement le présent ouvrage, sur quelque support que ce soit, sans l’autorisation de l’Éditeur ou du Centre Français d’exploitation du droit de copie, 20, rue des Grands Augustins, 75006 Paris. © Groupe Eyrolles, 2008, 2012, ISBN : 978-2-212-13579-4
Avant-propos
Sur les systèmes Linux et Unix actuels, l’utilisateur est généralement confronté en premier lieu à un environnement graphique disposant de navigateurs Internet, d’outils graphiques pour parcourir les répertoires et visualiser le contenu des fichiers, d’applica-tions pour la bureautique, de jeux, etc. Le shell ne constitue plus nécessairement le premier contact entre l’utilisateur et le système.
Pourtant, il s’agit toujours d’un passage obligé pour qui veut maîtriser et administrer correctement une machine Linux ou Unix. Le shell est tout d’abord une interface efficace pour passer des ordres ou des commandes au système. Il est plus rapide d’employer une ligne comme
$ cp/tmp/fic-0* /home/user/test/
que de lancer un gestionnaire de fichiers, se placer dans le répertoire source, sélectionner les fichiers intéressants, utiliser la commande « copier », se déplacer dans le répertoire destination et enfin utiliser la commande « coller ».
Hormis l’aspect d’efficacité et de rapidité des commandes, le shell est un outil extrême-ment puissant puisqu’il permet de programmer des actions exécutées intelligemment et automatiquement dans de nombreuses situations : démarrage du système (boot), tâches administratives, lancement d’applications, analyse de fichiers journaux, etc.
Nous verrons dans ce livre qu’il est également possible d’écrire des scripts shell pour programmer de véritables petites applications utiles au quotidien et facilement personna-lisées par l’utilisateur. Le langage de programmation du shell est assez ardu, peu intuitif et peu tolérant, aussi conseillerais-je au lecteur de mettre le plus vite possible ses connaissances en pratique, en faisant «tourner »les exercices et les exemples, en les modifiant, en les personnalisant.
Dans cette deuxième édition, j’ai souhaité inclure plus de scripts complets, prêts à l’usage ou demandant peu de configuration, afin de fournir rapidement une base de travail assez complète pour l’étude des scripts. Le code des exemples, des exercices corrigés et des scripts supplémentaires sont disponibles à l’adresse web suivante: http://christophe.blaess.fr.
Table des matières
CHAPITRE 1 Principes des scripts shell. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. .  . Le shell Unix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Pourquoi écrire un script shell ?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Outils nécessaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Exécution d’un script. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . Invocation de l’interpréteur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Appel direct. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ligne shebang. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Exercices .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
CHAPITRE 2 Programmation shell. .  .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Premier aperçu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Premier script, rm_secure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Analyse détaillée .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Performances. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . Exemple d’exécution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Conclusion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Exercices .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . .
1 2 4 5 5 6 7 9 11 11
13 14 14 16 23 24 26 26
Scripts shell Linux et Unix VIII
CHAPITRE 3 Évaluation d’expressions .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . Variables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Précisions sur l’opérateur $. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Calcul arithmétique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Invocation de commande. .  .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Portées et 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. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Exercices. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
CHAPITRE 4 Éléments de programmation shell .. . . . . . . . . . . . . . . . . . . . . . . . . Commandes et 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 et sorties standards . . . . . . . . . . . . . . . . . . . . . . . . Redirections avancées. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Structures de contrôle. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sélection d’instructions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Itérations d’instructions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fonctions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29 29 31 44 47 48 59 59 63 67 68 69 69 71 72 75 75
77 77 77 79 81 89 90 90 91 100 104 104 112 120