Au bout d’un moment, à force de refaire 10 fois, 100 fois les même choses, l’informaticien « normal » (c’est quoi être normal ? ) se pose la question de l’automatisation des tâches à exécuter.
Certes il a entendu parler de scripts & même de Bash mais finalement comment ça marche ? Comment écrire un script qui ferait le boulot à ma place ?
Écrire un script est déjà un boulot ! Mais comme tout bon informaticien est un « bon » fainéant (dans le sens ou il préfère que ce soit la machine qui bosse à sa place 🙂 ), arrive le jour où il se décide à se lancer & à écrire son premier script.
Au sommaire :
Les scripts avec le shell Bash
Pourquoi ?
L’origine des scripts se trouve dans la paresse des informaticiens, certaines commandes bash étant difficiles à concevoir & longues à écrire, il était souhaitable de les enregistrer pour les ré-exécuter, à l’identique ou avec des valeurs différentes.
L’auteur forme des Techniciens Supérieurs en Réseaux Informatiques & de Télécommunication (TSRIT). La réduction du temps consacré à Linux dans cette formation, celle du temps consacré à la pratique des scripts, de plus en plus demandée en entreprise & la demande de stagiaires d’un support clair & précis l’a amené à rédiger ce livret.
Ce cours/TP est une réécriture, une adaptation & une extension de deux articles de Tristan COLOMBO parus dans Linux Pratique Hors-Série n°20, Premier pas en script shell & Scripts shell notions avancées. En effet, l’auteur était d’une part soumis à la contrainte de l’article de revue & d’autre part, à une problématique du public différente.
Si remarquables que soient ces deux textes, ils devaient être adaptés à la formation. C’est-à-dire d’une part, à des personnes n’ayant jamais programmé & d’autre part, cherchant à optimiser l’exploitation de serveurs & de postes de travail & non à écrire des logiciels. Cependant l’essentiel en a été conservé.
Pour qui ?
Ce livret est destiné à servir de support complémentaire à des apprentis administrateurs réseaux Linux, devant se colleter avec des scripts d’administration système.
Toutes les personnes ayant pratiqué Linux pendant plus de 100 heures devraient pouvoir faire les exercices proposés, en y consacrant entre 16 & 40 heures de travail (bin oui ça on ne peut pas le faire à votre place, il n’y a pas de formule magique : IL FAUT BOSSER UN PEU 😀 ).
C’est qui, l’auteur ?
Michel SCIFO est né à Arles, il y a un peu plus d’un demi-siècle ; depuis 1999, il vit en région grenobloise.
Petit-fils d’un colporteur italien naturalisé, d’un cantonnier provençal & de leurs épouses respectives, humoriste patenté, économiste de formation il a aussi étudié les bases du droit, de la sociologie, de la psychologie sociale & de la psychologie du travail. Il est ingénieur conseil en informatique. il forme des techniciens supérieurs en réseaux informatiques à l’Association de Formation Professionnelle des Adultes (c’est un collègue 🙂 ).
Grand lecteur, il se met à écrire en 2001. Il souhaitait rédiger ses idées pour éviter les redites ; d’autre part, ayant un esprit de contradiction exacerbé, défendant, selon les interlocuteurs, tantôt des idées de droite, tantôt des idées de gauche 🙂 , il éprouvait le besoin de faire le
point sur les siennes. De là naquirent deux livres destinés à ses proches, disponibles sur son site Internet www.scifo.fr (dans la rubrique : Livres), & une accoutumance à l’écriture.
Il est président de l’ARDEUR (Association pour la Réhabilitation De l’Esperluette Uniformément Répartie). Il emploie ce symbole, noté « & », pour remplacer la conjonction « et ». c’est pour cela que vous avez croisé l’esperluette à de nombreuses reprises depuis le début de l’article !
Bon, on parle du bouquin ?
Voilà, voilà, j’y arrive.
Michel a rédigé ce fascicule à destination des débutants en script bash. Il évoque pour commencer les déboires d’un(e) informaticien(ne) confronté(e) chaque matin à la préparation de l’indispensable café qui démarre sa journée.
Notre informaticien(ne) fainéant comme il se doit, se dit qu’il devrait automatiser cette tâche répétitive. Il imagine alors un robot chargé de ces opérations récurrentes (rien à voir avec la poudre).
Mais au delà de cette innovation vient le moment de dire au robot ce qu’il doit faire ! C’est le moment pour Michel d’introduire les notions d’analyse et de programmation, de niveau de programmation. Une fois l’algorithme écrit, (en français logique), il faudra le traduire en un des langages de programmation existants.
Cela lui permet d’introduire de façon humoristique des notions comme les instructions, fonctions, opérateurs, variables et autres constantes. J’y ai retrouvé les méthodes utilisées en formation d’adultes à partir d’exemples concrets qui permettent d’assimiler des notions en lez ramenant à des choses de la vie courante.
Et après ?
Après on passe au concret, la rédaction de scripts avec Vim ou Geany (tiens Geany est installé d’origine dans les dernières versions de Raspbian JEssie).
On commencera par un « Hello world » à la sauce gauloise, en écrivant « Bonjour » sur l’écran à partir d’un script.
Évidemment, si l’on ne pouvait écrire que des scripts de ce genre, cela ne présenterait aucun intérêt, mais pour en produire de plus complexes, il faut introduire deux notions importantes : celle de données & celle de structure de contrôle.
Lorsque vous cuisinez, même si vous êtes « multi-tâches », vous essayez d’effectuer chaque instruction l’une après l’autre, en séquence. Pourtant, certaines actions entraînent une rupture de séquence : vous ne pouvez pas passer à la ligne suivante tant que vous n’avez pas terminé l’action en cours. Ainsi quand vous découpez une carotte en rondelle, vous effectuez une itération consistant à découper une rondelle de la carotte, jusqu’à ce qu’il ne reste plus de carotte à découper.
Vous découvrez ainsi, toujours de façon concrète, les structures de contrôles qui permettent d’organiser l’exécution des instructions soit en choisissant certaines & pas d’autres soit en répétant d’autres ou en combinant ces deux éléments…
Les exercices
Ne vous laissez pas effrayer par cette illustration 😀 Vous trouverez une série d’exercices progressifs (simples et complexes). Si vous voulez vraiment apprendre à écrire des scripts, je vous conseille de les faire seul (avec l’aide de la doc quand même). Ne cherchez pas une solution toute faite, vous n’apprendrez rien.
« il faut éviter de récupérer des scripts tout faits, car le seul moyen de comprendre un langage c’est de le pratiquer, pas de recourir à des scripts fait par d’autres, comme les assistés le pensent. Vous n’apprendrez jamais l’anglais en utilisant les services d’un interprète ! » dit Michel dans sa présentation des exercices.
Pour réussir ces scripts, il faut d’abord définir ce que l’on veut faire, puis chercher avec les commandes apropos & man les commandes externes & internes, & leurs options, nécessaires à l’obtention du résultat. En informatique on appelle ça RTFM 😉
Et comme dans les revues télé, la réponse aux jeux se trouve dans les dernières pages.
Les scripts proposés en réponse ont été réalisés par un stagiaire dans les deux jours prévus pour la réalisation de cette séquence. Ce ne sont ni les plus rapides ni les plus courts, cependant ils sont dignes d’un utilisateur UNIX expérimenté & ils fonctionnent ! Michel a ensuite ajouté commentaires critiques ou explicatifs & corrigés alternatifs. Vous devriez donc pouvoir vérifier vos réalisations, en sachant bien qu’il n’y a jamais une solution mais des solutions plus ou moins efficaces, rapides, compréhensibles…
Conclusion
Avec ce livre de 260 pages vous disposez d’un tremplin pour explorer le monde des scripts. Prenez votre temps et faites par vous-même, c’est la seule façon d’apprendre et de progresser. Michel a publié ce livre PDF (Dépôt légal 1er trimestre 2015 – ISBN : 978-9537431-5-9 © Le Maître Réfleur 2013-2015) en NC-BY-ND-SA (Pas d’utilisation commerciale, NC – Paternité, BY – Pas de travaux dérivés, ND – Partage à l’identique, SA). Vous pouvez donc le recopier et le diffuser sans enfreindre la licence, à condition de ne pas le vendre (seul ou associé à un autre produit) et de citer son auteur .
A noter dans le même style un livre sur PHP-MySQL, à explorer si vous voulez vous aventurer sur ce terrain…
Pour télécharger les deux livres (gratuits) cliquez sur les liens ci-dessous. Le bouton de téléchargement est en bas de la page.
Télécharger : Les scripts avec le shell Bash
Télécharger : Initiation MySQL & PHP
Sources
- https://agirandco.com/imprimer-lecture-culture-fantasies
- http://le-maitre-refleur.scifo.fr/
- http://jeux.scifo.fr/
Bonjour,
En tant que fan du script en général, je plussoie que bash est le top.
pareil 🙂
Merci pour le partage. J’adore Bash 😉
on est plusieurs dans ce cas 😉
Merci beaucoup pour ce partage, je cherchais justement un support pour m’y mettre plus sérieusement 🙂
vous ferez un retour quand vous aurez testé 🙂
Bonjour,
je suis devenu plus adepte du script perl pour sa rapidité et son efficacité quand il s’agit d’analyser du texte. Mais le script bash reste un indispensable pour écrire rapidement un petit bout de code pour éviter de faire 50 fois la même chose sans se prendre la tête.
Ayant travaillé dans une équipe d’industrialisation (automatisation d’installation de différents produits) je suis tout à fait d’accord avec le premier dessin : la qualité première c’est d’être paresseux !
Qu’importe le script pourvu qu’on ait l’ivresse ! 🙂
Bonjour François,
Bash est pas mal du tout, mais en me baladant sur le net j’ai trouvé ceci :
https://learn.adafruit.com/raspberry-pi-hosting-node-red/what-is-node-red
et cette vidéo :
https://www.youtube.com/watch?v=5Y5yHONKFt4
L’avez vous testé ?
J’ai trouvé ce concept très sympa pour éviter de passer des heures sur gogole à chercher des commandes. C’est très intuitif et graphique, je me dis que l’IOT est dispo pour les inventeurs en herbe à partir du Collège maintenant. ( En plus j’ai vu que Node-Red introduit des fonctions comme tweeter ) .
Bonjour
oui j’ai testé en envoyant des payloads diverses et variées
mais bash n’a pas le même vocation 🙂
cordialement
François
Bonjour François,
Je n’arrive pas à télécharger le livre sur les scripts bash indiqué dans l’article à l’adresse indiquée http://le-maitre-refleur.scifo.fr/?page_id=69
L’url est automatiquement convertie en https et le site renvoit une erreur ssl.
J’ai vraiment envie et besoin de me mettre aux scripts bash. Le livre me serait d’une grande aide.
J’ai cherché mais n’ai pas trouvé d’url de téléchargement valide. En auriez-vous une à me transmettre ?
Vous en remerciant,
Dans l’attente,
Cordialement.
Bonjour
je viens de faire l essai et effectivement les liens ne fonctionnent plus
Michel est un ancien collègue, je lui ai écrit en direct
je vous tiens au courant
cdt
françois
Merci François, c’est gentil.
En cherchant un peu mieux sur le web, je l’ai trouvé ici https://informaddict.ddns.net/lib/exe/fetch.php?media=scriptsbash.pdf
Vous en remerciant.
Cordialement
Bonjour,
impossible de me procurer le livre apprendre à écrire des scripts bash, comment je peux faire pour avoir un exemplaire ?
Désolé l’article date et l’auteur n’a sans doute pas maintenu son site en activité…