Une analyse des exercices dalgorithmique et de programmation du
18-Jun-2019 Nous regroupons les divers exercices de brevet contenant de l'informatique selon quatre thèmes principaux : programmes de calcul tracé de ...
mathématiques au cycle 4 - motivation engagement
https://maths.ac-creteil.fr/IMG/pdf/brochure_cyc60fb.pdf
Marc Boullis
seront le logiciel Scratch pour réaliser les exercices proposés. un symbole d'égalité on peut écrire le programme suivant : 2. Pour programmer un ...
apprendre_python3_5.pdf - INFOREF
interpréteur écrit en Java
Untitled
interpréteur écrit en Java
catalogue des cours de premiere et deuxieme annees
17-Sept-2019 Le premier acquis d'apprentissage est évalué à la fois dans l'examen écrit. (au cours duquel les étudiants doivent résoudre un problème de ...
Les recommandations pédagogiques pour lécole primaire
29-May-2019 Enseignement du calcul : un enjeu majeur pour la maîtrise des principaux éléments de mathématiques à l'école primaire ...
Guide avancé décriture des scripts Bash
3Par convention les scripts shell écrits par l'utilisateur
Analyse dimages par méthode de Deep Learning appliquée au
25-Nov-2020 De nos jours les systèmes de vision sont de plus en plus utilisés dans le contexte routier. Ils le sont par exemple pour la vidéo surveillance ...
La conception de jeux vidéo éducatifs : une méthodologie de
02-Jan-2006 Serge Ouaknine et Armand Vaillancourt pour leurs enseignements concernant 1' importance de la démarche artistique. Marco Ramet-. Yalgresy pour ...
Guideavancé d'écrituredesscripts Bash
Uneexploration enprofondeurde l'artdela pro-
grammationshellMendelCooper
Une exploration en profondeur de l'art de la programmation shellVersion 4.3 - Publié en Mai 2007
Résumé
Ce tutoriel ne suppose aucune connaissance de la programmation de scripts, mais permet une progression rapide vers un niveau in-
termédiaire/avancé d'instructionstout en se plongeant dans de petites astuces du royaume d'UNIX®. Il est utile comme livre,
comme manuel permettant d'étudier seul, et comme référence et source de connaissance sur les techniques de programmation de
scripts. Les exercices et les exemples grandement commentés invitent à une participation active du lecteur avec en tête l'idée que
la seule façon pour vraiment apprendre la programmation de scripts est d'écrire des scriptsCe livre est adapté à une utilisation en classe en tant qu'introduction générale aux concepts de la programmation.
Dédicace
iPart1. Introduction.. ... .....................................................................................................................................1
1.Pourquoi laprogrammationShell ?.. ... ... ... ................................................................................................2
2.Lancement avecun" #!». ... ... ... ... ...........................................................................................................4
2.1.Appeler lescript. ... ... .....................................................................................................................7
2.2.Exercices préliminaires.. ... .............................................................................................................7
Part2. Bases.. ... .............................................................................................................................................9
3.Caractères spéciaux.. ... ..........................................................................................................................10
4.Introduction auxvariableset auxparamètres. ... ... ... ... .................................................................................27
4.1.Substitution devariable. ... ... ..........................................................................................................27
4.2.Affectation devariable. ... ... ...........................................................................................................29
4.3.Les variablesBashne sontpastypées ... ... ... ... ... ................................................................................31
4.4.Types spéciauxdevariables ... ... ... ..................................................................................................31
5.Guillemets etapostrophes. ... ... ................................................................................................................36
5.1.Placer lesvariablesentre guillemets.. ... ... ... ......................................................................................36
5.2.Échappement ... ............................................................................................................................37
6.Sortie etcodede sortie(oud'état) ... ... ... ... ... .............................................................................................43
7.Tests ... ...............................................................................................................................................45
7.1.Constructions detests. ... ... .............................................................................................................45
7.2.Opérateurs detestde fichiers.. ... ... ... ...............................................................................................51
7.3.Autres opérateursdecomparaison ... ... ... ..........................................................................................53
7.4.Tests if/thenimbriqués. ... ... ...........................................................................................................58
7.5.Tester votreconnaissancedes tests.. ... ... ... .......................................................................................58
8.Opérations etsujetsen relation.. ... ... ... .....................................................................................................60
8.1.Opérateurs ... ...............................................................................................................................60
8.2.Constantes numériques.. ... .............................................................................................................66
Part3. Aprèsl'approchebasique ... ... ... ...............................................................................................................68
9.Les variablesrevisitées. ... ... ...................................................................................................................69
9.1.Variables internes.. ... ....................................................................................................................69
9.2.Manipuler leschaînesde caractères.. ... ... ... ......................................................................................86
9.3.Substitution deparamètres. ... ... ......................................................................................................93
9.4.Typer desvariables: declareoutypeset.........................................................................................101
9.5.Références indirectesauxvariables ... ... ... .......................................................................................103
9.6.$RANDOM :générerun nombrealéatoire. ... ... ... ... .........................................................................106
9.7.La constructionendouble parenthèse.. ... ... ... ..................................................................................114
10.Boucles etbranchements. ... ... .............................................................................................................116
10.1.Boucles ... ...............................................................................................................................116
10.2.Boucles imbriquées.. ... ..............................................................................................................127
10.3.Contrôle deboucles. ... ... ............................................................................................................127
10.4.Tests etbranchements. ... ... .........................................................................................................130
11.Substitution decommandes. ... ... ..........................................................................................................138
12.Expansion arithmétique.. ... .................................................................................................................144
13.Récréation ... ....................................................................................................................................145
Part4. Commandes.. ... .................................................................................................................................146
14.Commandes internesetintégrées ... ... ... .................................................................................................156
14.1.Commandes decontrôledes jobs.. ... ... ... ......................................................................................181
15.Filtres externes,programmeset commandes.. ... ... ... ................................................................................186
15.1.Commandes debase. ... ... ...........................................................................................................186
15.2.Commandes complexes.. ... ........................................................................................................191
15.3.Commandes dedateet d'heure.. ... ... ... .........................................................................................200
15.4.Commandes d'analysedetexte ... ... ... ...........................................................................................203
15.5.Commandes pourlesfichiers etl'archivage. ... ... ... ... .......................................................................222
15.6.Commandes decommunications. ... ... ...........................................................................................238
15.7.Commandes decontrôledu terminal.. ... ... ... ..................................................................................253
15.8.Commandes mathématiques.. ... ..................................................................................................254
15.9.Commandes diverses.. ... ............................................................................................................262
16.Commandes systèmeetd'administration ... ... ... .......................................................................................275
16.1.Analyser unscriptsystème ... ... ... ................................................................................................303
Part5. Thèmesavancés. ... ... ..........................................................................................................................305
17.Expressions rationnelles.. ... ................................................................................................................306
17.1.Une brèveintroductionaux expressionsrationnelles. ... ... ... ... ...........................................................306
17.2.Remplacement ... ......................................................................................................................309
18.Documents enligne. ... ... ....................................................................................................................311
ii18.1.Chaînes enligne. ... ... ................................................................................................................320
19.Redirection d'E/S(entrées/sorties). ... ... .................................................................................................323
19.1.Utiliser exec............................................................................................................................326
19.2.Rediriger lesblocsde code.. ... ... ... ..............................................................................................329
19.3.Applications ... .........................................................................................................................333
20.Sous-shells ... ...................................................................................................................................335
21.Shells restreints.. ... ...........................................................................................................................339
22.Substitution deprocessus. ... ... .............................................................................................................341
23.Fonctions ... ......................................................................................................................................344
23.1.Fonctions complexesetcomplexité desfonctions. ... ... ... ... ...............................................................346
23.2.Variables locales.. ... .................................................................................................................356
23.3.Récursion sansvariableslocales ... ... ... .........................................................................................358
24.Alias ... ............................................................................................................................................361
25.Constructeurs delistes. ... ... ................................................................................................................363
26.Tableaux ... ......................................................................................................................................366
28.Des Zérosetdes Nulls.. ... ... ... ............................................................................................................396
29.Débogage ... .....................................................................................................................................399
30.Options ... ........................................................................................................................................408
31.Trucs etastuces. ... ... .........................................................................................................................410
32.Écrire desscriptsavec style.. ... ... ... ......................................................................................................417
32.1.Feuille destylenon officielled'écriturede scripts.. ... ... ... ... ... ..........................................................417
33.Divers ... ..........................................................................................................................................420
33.1.Shells etscriptsinteractifs etnoninteractifs ... ... ... ... ... ....................................................................420
33.2.Scripts d'appel.. ... .....................................................................................................................421
33.3.Tests etcomparaisons: alternatives.. ... ... ... ...................................................................................425
33.4.Récursion ... .............................................................................................................................425
33.5." Coloriser»des scripts.. ... ... ... ..................................................................................................427
33.6.Optimisations ... .......................................................................................................................439
33.7.Astuces assorties.. ... .................................................................................................................440
33.8.Problèmes desécurité. ... ... .........................................................................................................449
33.9.Problèmes deportabilité. ... ... ......................................................................................................449
33.10.Scripts sousWindows. ... ... .......................................................................................................450
34.Bash, version2et 3.. ... ... ... ................................................................................................................451
34.1.Bash, version2. ... ... ..................................................................................................................451
34.2.Bash, version3. ... ... ..................................................................................................................455
35.Notes finales.. ... .....................................................................................................................................458
35.1.Note del'auteur. ... ... .......................................................................................................................458
35.2.À proposdel'auteur ... ... ... ...............................................................................................................458
35.3.Où trouverdel'aide ... ... ... ................................................................................................................458
35.4.Outils utiliséspourproduire celivre. ... ... ... ... ......................................................................................458
35.5.Remerciements ... ...........................................................................................................................459
Bibliographie. .............................................................................................................................................462
A.Contribution descripts. ... ... .......................................................................................................................463
B.Cartes deréférence. ... ... ............................................................................................................................597
C.Petit guidesurSed etAwk. ... ... ... ... ............................................................................................................602
C.1.Sed ... ............................................................................................................................................602
C.2.Awk ... ...........................................................................................................................................605
D.Codes desortieayant unesignificationparticulière ... ... ... ... ... ..........................................................................608
E.Une introductiondétailléesur lesredirectionsd'entrées/sorties ... ... ... ... ... ...........................................................609
F.Options enlignede commande.. ... ... ... .........................................................................................................611
F.1.Options standardsenligne decommande. ... ... ... ... .................................................................................611
F.2.Options enlignede commandedeBash ... ... ... ... ... .................................................................................612
G.Fichiers importants.. ... ..............................................................................................................................613
H.Répertoires systèmeimportants. ... ... ............................................................................................................614
I.Localisation ... ..........................................................................................................................................616
J.Commandes d'historique.. ... ........................................................................................................................619
K.Un exempledefichier .bashrc................................................................................................................620
L.Convertir desfichiersbatch DOSenscripts shell.. ... ... ... ... ... ...........................................................................630
M.Exercices ... ............................................................................................................................................633
M.1.Analyse descripts. ... ... ....................................................................................................................633
Guideavancé d'écrituredesscripts Bash
iiiM.2.Écriture descripts. ... ... ....................................................................................................................634
N.Historique desrévisions. ... ... .....................................................................................................................642
O.Sites miroirs.. ... .......................................................................................................................................644
P.Liste dechosesà faire.. ... ... ... .....................................................................................................................645
Q.Droits d'utilisation.. ... ...............................................................................................................................647
R.Copyright ... ............................................................................................................................................649
Guideavancé d'écrituredesscripts Bash
ivPartiePart 1.Introduction
Leshell estuninterpréteur decommandes.Plus qu'unesimplecouche isolanteentrele noyaudusystème d'exploitationet
l'utilisateur,il estaussiun langagedeprogrammation puissant.Unprogramme shell,appeléun script,est unoutilfacile àutiliser
pourconstruire desapplicationsen "regroupant» desappelssystème, outils,utilitaireset binairescompilés.Virtuellement, leré-
pertoireentier descommandesUNIX, desutilitaireset desoutilsest disponibleàpartir d'unscriptshell. Sicen'était passuffisant,
lescommandes shellinternes,telles quelesconstructions detestset deboucles,donnent unepuissanceet uneflexibilitésupplé-
mentairesaux scripts.Lesscripts shellconviennentparticulièrement bienpourles tâchesd'administrationdu systèmeetpour
d'autresroutines répétitivesneréclamant paslesparticularités d'unlangagede programmationstructurécomplet.
1Ilssont connussousle nomdecommandes intégrées156, c'est-à-diredesfonctionnalités internesaushell.
Chapitre1. Pourquoilaprogrammation Shell?
Aucunlangage deprogrammationn'est parfait.Iln'existe mêmepasun langagemeilleurque d'autre;il n'yaque deslangagesen
adéquationou peuconseilléspour desbutsparticuliers. --HerbertMayerUneconnaissance fonctionnelledela programmationshellest essentielleàquiconque souhaitedevenirefficace enadministration
desystème, mêmepourceux quinepensent pasavoirà écrireunscript unjour.Pensez qu'audémarragede lamachineLinux, des
scriptsshell durépertoire/etc/rc.dsontexécutés pourrestaurerla configurationdusystème etpermettrela miseenfonction-
nementdes services.Unecompréhension détailléedeces scriptsdedémarrage estimportantepour analyserlecomportement d'un
système,et éventuellementlemodifier.Écriredes scriptsshelln'est pasdifficileà apprendrecar,d'une part,lesscripts peuventêtreconstruits parpetitessections et,
d'autrepart, iln'ya qu'unassezpetit nombred'opérateurset d'options1spécifiquesau shellàconnaître. Lasyntaxeest simpleet
directe,similaire àunesuite d'appelsdedifférents utilitairesenligne decommandeet iln'existeque peude" règles»à apprendre.
Laplupart despetitsscripts fonctionnentdupremier coupetle débogage,mêmedes pluslongs,est assezsimple.
Unscript shellestune méthode"rapide etsale» pourprototyperune applicationcomplexe.Avoir mêmeunsous-ensemble limité
defonctionnalités dansunscript shellestsouvent unepremièreétape utilelorsd'un projetdedéveloppement. Decettefaçon, la
structurede l'applicationpeutêtre testéeetles problèmesmajeurstrouvés avantd'effectuerle codagefinalen C,C++,Javaou
Perl424.
Laprogrammation shellramèneà laphilosophieclassique desUNIX,c'est àdire,casser desprojetscomplexes ensous-tâchesplus
simpleset assemblerdescomposants etdesutilitaires. Beaucoupconsidèrentque cetteapprochede larésolutionde problèmeest
meilleureou, dumoins,plus abordablequel'utilisation delangagesde nouvellegénérationpuissamment intégrécommePerl,qui
essaientde toutfairepour toutlemonde maisauprix devousforcer àchangervotre processusderéflexion pourvousadapter à
l'outil.D'aprèsHerbert Mayer," unlangageutiledoitcomprendredes tableaux,despointeurs etunmécanisme génériquepourconstruire
desstructures dedonnées.» Suivantcescritères, leslangagesdes scriptsshellne sontpas" utiles».Peut-être quesi.
Quandne pasutiliserles scriptsshell
•pour destâchesdemandant beaucoupderessources etparticulièrementlorsque larapiditéest unfacteur(tri, hachage,etc.);
•pour desprocéduresimpliquant desopérationsmathématiques nombreusesetcomplexes, spécialementpourde l'arithmétique
àvirgule flottante,descalculs àprécisionarbitraire oudesnombres complexes(optezplutôt pourleC++oule FORTRAN
dansce cas); •pour uneportabilitéinter-plateformes (utilisezleC ouJavaà laplace);•pour desapplicationscomplexes oùuneprogrammation structuréeestnécessaire (typagedevariables, prototypagedefonc-
tions,etc.) ; •pour desapplicationscritiques surlesquellesvous misezvotreavenir ouceluide lasociété;•pour dessituationsoù lasécuritéest importante,oùvous avezbesoinde garantirl'intégritéde votresystèmeet devousproté-
gercontre lesintrusionset levandalisme; •pour desprojetsconsistant endenombreux composantsavecdes dépendancesinter-verrouillées;•lorsque desopérationsimportantes surdesfichiers sontrequises(Bash estlimitéà unaccèsfichier ensérie,ligne parligne,ce
quiest particulièrementmaladroitet inefficace); •si lesupportnatif destableauxmultidimensionnels estnécessaire; •si vousavezbesoin destructuresde données,tellesque deslisteschaînées oudesarbres ; •si vousavezbesoin degénérerou demanipulerdes graphiquesouune interfaceutilisateur(GUI) ; •lorsqu'un accèsdirectau matérielestnécessaire ; •lorsque vousavezbesoin d'accéderàun port,àun socketd'entrée/sortie; •si vousavezbesoin d'utiliserdesbibliothèques ouuneinterface propriétaire;•pour desapplicationspropriétaires, àsourcesfermées (lessourcesdes shellssontforcément visiblespartout lemonde).
22Beaucoupde fonctionnalitésdeksh88,et mêmequelquesunes delaversion miseàjour ksh93,ont étéintégréesà Bash.3Parconvention, lesscriptsshell écritsparl'utilisateur, compatiblesavecle shellBourne,sont nommésavecl'extension .sh.Les scriptssystème,tels queceuxtrouvés dans/etc/rc.d,ne suiventpas
cettenomenclature.Dansl'un descasci-dessus, considérezl'utilisationd'un langagedescripts pluspuissant,peut-être Perl,Tcl,Python,Ruby,voire
unlangage compilédehaut niveautelque C,C++ouJava.Même danscecas, prototyperl'applicationavec unscriptshell peut
toujoursêtre uneétapeutile audéveloppement.Nousutiliserons Bash,unacronyme pour"Bourne-Again shell»et uncalemboursur ledésormaisclassique Bourneshellde Ste-
phenBourne. Bashestdevenu unstandarddefacto pourla programmationdescripts surtousles typesd'UNIX.La plupartdes
principesdiscutés danscelivre s'appliquentégalementà l'écrituredescripts avecd'autresshells telsquele KornShell ,duquel dé-
riventcertaines desfonctionnalitésde Bash,2,le shellC etses variantes(notezque laprogrammationen shellC n'estpas recom-
mandéeà causedecertains problèmesinhérents,comme indiquéenoctobre 1993surun messageUsenet parTom Christiansen).
Cequi suitestun tutorielsurl'écriture descriptsshell. Ilesten grandepartiecomposé d'exemplesillustrantdifférentes fonctionna-
litésdu shell.Lesscripts enexempleont ététestés,autant quepossible,et certainsd'entreeux peuventmêmeêtre utilesdansla
vraievie. Lelecteurpeut joueravecle codedesexemples dansl'archivedes sources(nom_script.shounom_script.bash),3leurdonner ledroitd'exécution (chmodu+rx nom_du_script)et lesexécuterpour voircequ'il
sepasse. Silessources del'archivene sontpasdisponibles, alorscopier/collerà partirdela versionHTMLoupdf(laversion ori-
ginaledispose d'uneversiontexte, disponibleàcette adresse)contrairement àlatraduction française).Sachezque certainsscripts
présentésici introduisentdesfonctionnalités avantqu'ellene soientexpliquéeset quececipourrait réclamerdulecteur deliretem-
porairementplus avantpourdes éclaircissements. Saufmention contraire,l'auteurdece livreaécrit lesscriptsd'exemples quisuivent.Pourquoila programmationShell?
3Chapitre2. Lancementavecun "#!»
Laprogrammation shellestun jukeboxdes années50... --LarryWallDansle casleplus simple,unscript n'estriende plusqu'uneliste decommandessystème enregistréesdansun fichier.Àtout le
moins,cela évitel'effortde retapercetteséquence particulièredecommandes àchaquefois qu'elledoitêtre appelée.
Exemple2.1. cleanup:Un scriptpournettoyer lesjournauxde tracedans/var/log #cleanup #À exécuterentant queroot,bien sûr. cd/var/log cat/dev/null >messagescat/dev/null >wtmpecho"Journaux nettoyés."Iln'y ariend'inhabituel ici,seulementun ensembledecommandes quipourraienttout aussibienêtre appeléesl'uneaprès l'autreà
partirde lalignede commandesurla consoleoudans uneémulationxterm.Les avantagesdeles placerdansun scriptvontbien
au-delàde nepasavoir àlesretaper. Lescriptdevient unoutiletpeut facilementêtremodifié oupersonnalisépour uneapplication
particulière. Exemple2.2. cleanup:Un scriptdenettoyage amélioré #!/bin/bash#En-tête propred'unscript Bash. #Nettoyage, version2#À exécuterentant queroot,bien sûr#Insérez ducodeici pourafficherles messagesd'erreuret sortirsi#l'utilisateur n'estpasroot.
REP_TRACES=/var/log#Les variablessontpréférées auxvaleurscodées endur.cd$REP_TRACES cat/dev/null >messagescat/dev/null >wtmp echo"Journaux nettoyés." exit# Labonneméthode pour"sortir"d'un script. Maintenant,cela commenceàressembler àunvrai script.Maisnous pouvonsallerencore plusloin... Exemple2.3. cleanup:Une versionamélioréeet généraliséedesscripts précédents #!/bin/bash#Nettoyage, version3.#Attention :#----------- #Ce scriptutiliseun nombredefonctionnalités quiserontexpliquées bien#+après. #Après avoirterminéla premièremoitiéde celivre,il nedevraitplus comporter#+de mystère.
REP_TRACES=/var/logUID_ROOT=0# Seulslesutilisateurs avecun$UID valant0ont lesdroitsde root.LIGNES=50# Nombredelignes sauvegardéespardéfaut.
4quotesdbs_dbs45.pdfusesText_45[PDF] alex du prel le fantome du palace hotel le bleu qui fait mal aux yeux :) 4ème Français
[PDF] alex spektor the sun 3ème Musique
[PDF] alexa jeopardy questions today PDF Cours,Exercices ,Examens
[PDF] alexandre boyon PDF Cours,Exercices ,Examens
[PDF] alexandre dumas les trois mousquetaires analyse PDF Cours,Exercices ,Examens
[PDF] alexandre dumas les trois mousquetaires tome 1 PDF Cours,Exercices ,Examens
[PDF] alexandre le grand 6ème Histoire
[PDF] alexandre le grand pdf PDF Cours,Exercices ,Examens
[PDF] alexandre le grand racine PDF Cours,Exercices ,Examens
[PDF] alexandre oler PDF Cours,Exercices ,Examens
[PDF] alexandre vienne blog PDF Cours,Exercices ,Examens
[PDF] alexandria lighthouse PDF Cours,Exercices ,Examens
[PDF] Alexandrie 6ème Histoire
[PDF] Alexandrie , une grande ville hellénistique 6ème Histoire