Révision
22 déc. 2017 Correction Exercice#4. Page 18. Exercice #5. ○ Écrire un script shell dont l'unique paramètre est une moyenne. Le script affiche. – Mauvais si ...
Cours et exercices corrigés Initiation et utilisation
shell totalement libre et le Bash
Scripts shell
Exercices et corrigés. 174 QCM. 80 travaux pratiques et leurs corrigés. Près de Corrigé 11.2 Un script de démarrage et d'arrêt d'un service .
TD 9 : Scripts UNIX (corrigé)
31 mai 1999 Exercice 1 : Mon premier script. #!/bin/csh. # Mon premier script clear ... #!/bin/csh. # Script 2b. # les arguments récupérés dans $1 $2 et $3.
TD n°2 : Programmation shell CORRECTION
Exercice 1 – Exemple de programme shell. Solution : 1) Ce programme crée le echo "Erreur : Le script doit être appelé avec 1 argument" 1>&2 exit 1 fi if ...
Polycopié TP Système dexploitation Unix Exercices et Quelques
Exercices et Quelques Corrigés. Sous RedHat Linux/Unix. Dr. Djamila BENHADDOUCHE. Page 2 débutants le shell bash qui a été écrit pour Linux et possède un ...
sous Unix/Linux
Programmation shell sous Unix/Linux. Programmation shell sous Unix/Linux ksh bash sous Unix/Linux - ksh
TP no 1: Introduction au Shell (corrigé)
Écrire un script shell qui a che tous ses paramètres mais un par ligne. for I Exercice 3. Curling. - Di cile. Le but de cet exercice est d'écrire un script ...
TP: Programmation Shell
script le nom de l'utilisateur
Révision
22 déc. 2017 Exercice#2. ? Écrire un script shell script1.sh qui affiche la date d'aujourd'hui en utilisant la commande date. Le script affiche :.
TD n°2 : Programmation shell CORRECTION
Exercice 1 – Exemple de programme shell Exercice 5 – Opérateurs sur les chaînes ... echo "Erreur : Le script doit être appelé avec 1 argument" 1>&2.
TP: Programmation Shell
Exercice N°4 : Créez la commande copier. La commande reçoit en argument deux noms de fichiers la source et la destination. Le script se termine et
Scripts shell
Scripts shell. Programmez sous Unix/Linux. (sh ksh
Cours et exercices corrigés Initiation et utilisation
Cours et exercices corrigés. SCIENCES SUP. LINUX. Initiation et utilisation 8.2.1 Les variables prédéfinies du Bash (non définies en Bourne-shell).
TP 03 : Shell bash
17 janv. 2017 finds bugs in your shell scripts. Exercice : param`etres. Écrivez un script analyse.sh qui affiche : Bonjour vous avez rentré nombre ...
sous Unix/Linux
sous Unix/Linux - ksh bash
TD 9 : Scripts UNIX (corrigé)
TD 9 : Scripts UNIX (corrigé) semaine du 31 mai 1999. Exercice 1 : Ecrire un script qui concatène puis trie deux fichiers file1 et file2 dans un nouveau ...
Initiation à la programmation shell : Partiel
Le but de cet exercice est de construire pas à pas un script ranger qui range les fichiers passés en arguments dans les sous-répertoires images documents ou
Unix : shells et gestion de processus
6 nov. 2004 Unix Linux et Windows XP avec C et Java. Cours et exercices corrigés ... Cours C-shell « Le langage de commande du système Unix ».
Initiation à la programmation shell : Partiel
Initiation à la programmation shell : Partiel
15 Avril 2019 - Durée: 3 heures
Polycopié, notes de cours et de TP autorisésÀ lire :
Les exercices et les questions son tde difficulté v ariableet en général non croissan te.Ilest conseillé de parcourir l"énoncé avant de composer. Les exercices peuvent être traités
dans l"ordre de votre choix.Il est toujours p ossiblede sauter des questions.
Le soin, la clarté et la lisibilité seron tpris en compte l orsde la correction. P ourcertai nesquestions, une rép onsepartielle ou incomplète pourraêtre prise en compte lors de la correction.Le b arèmeest ind icatifet p ourraêtre mo difié.Pour l"instant, le total des points est 104,
et votre total sera divisé par 5 pour obtenir une note sur 20.Exercice 1 :
37pointsidees_geniales.txt
.bashrcMakefile
main.c ensble.c ensble.h~ shellprog2 projetdocstp1 idees.txt enonce.pdf todo autoprog2 poly.pdf manuel de bash.pdfMakefile
main.c avion.cavion.hDans l"arborescence représentée dans ci-dessus, les répertoires sont écrits engraset les fichiers
qui ne sont pas des répertoires sont écrits enmono-châsse, dans des rectangles. Le répertoire
~est votre répertoire personnel. Vous commencez cette grande aventure dans votre répertoire personnel. Pour chacune des questions suivantes, vous écrirez sur la copie la ou les commande(s) que vous devez entrer pour réaliser les actions demandées.1.Démarrage d"un TP en C/10
L1 Informatique - 2018 - 20191Université Paris 13Initiation à la programmation shell : Partiel
a) Créer le r épertoiretp2dansprog2et s"y déplacer. Dans ce répertoire, créer en une seule commande les fichiers (vides pour l"instant)main.c,scooter.cetscooter.h.Correction :mkdir prog2/tp2
cd p rog2/tp2 touch main.c scooter.c scooter.h b) On rapp elleque v otrerép ertoirecouran te stle sous-rép ertoiretp2du répertoireprog2. Quels sont les chemins relatifs et absolus du fichierMakefilesitué danstp1? Correction :Le chemin relatif est../tp1/Makefile. Le chemin absolu est~/prog2/tp1/←?Makefile
c)Copier ce fi chierdans le rép ertoiretp2.
Correction :On peut utiliser le chemin relatif ou absolu, donccp ../tp1/Makefile . o u c p prog2 tp1Makefile
d) Dans cette copie du fic hier,remplacer toutes les o ccurencesdu mot " a vion» par le mot " scooter ». Correction :sed?s/avion/scooter/g?Makefile > tmpmv tmp Makefile On peut utiliser aussi l"option-ide GNU pour remplacer directement dans le fichier, ... e) Écrire (a vecune ou plusieurs commandes), dans le fic hierscooter.hdu répertoiretp2 les lignes suivantes :#ifndefS COOTER_H includeS COOTER_H
endifCorrection :Plein de possibilités, plusieursecho,printf,cat(avec ou sans here-document).echo?#ifndefS COOTER_H?>> scooter.hecho?#defineS COOTER_H?>> scooter.hecho?#endif?>> scooter.hcat> >s cooter.h< Correction :Lister, dans le répertoire courant, les fichiers (non cachés) dont le nom se termine pertoire personnel) à la fin du fichiera.txt(situé dans le sous-répertoiretotodu répertoire Correction :La ligne 5 sert à mettre le résultat du calcul de1024fois la valeur de la variable limite comme une expression arithmétique, de faire ce calcul et de remplacer toute la construction par le Correction :Elle sert à boucler sur tous les fichiers (non cachés) du répertoire dont le nom est $repertoire. À chaque itération, la variablefichierprend le nom d"un nouveau fichier du réper- Correction :Alors les$sont protégés et l"expansion de variables n"a pas lieu. La chaîne est copiée Correction :Il sert à afficher le nom des fichiers du répertoire donné en paramètre dont la taille ner, votre script demande confirmation à l"utilisateur,à la manière del"exemple suivant :$ copier bonjour.c salut.c Le fichier salut.c existe , l?écraser (o/n) ? n3.Enfin, modifiez votre script de manière à ce que, si l"utilisateur entre une réponse qui n"estS COOTER_H
include S COOTER_H
endif FIN printf?#ifndefS COOTER_H\n#includeS COOTER_H\n#endif\n?>>←?scooter.h L1 Informatique - 2018 - 20192Université Paris 13 Initiation à la programmation shell : Partiel
à la place deprintf(mais moins portable), il y aecho-e de GNU qui permet d"interpréter \net sans doute encore 1000 possibilités... 2.Recherches dans le répertoiretp1/7
a) Se déplacer dans le rép ertoiretp1(depuistp2). Correction :cd../tp1
b) Lister les fic hiersde c erép ertoire.
Correction :ls#ou ls - l,ls - la,ou m êmeecho * c) Affic herseulemen tles lignes des fic hiersde ce r épertoirequi con tiennentla c haînede caractèreavion_creer. Correction :grep?avion_creer?*
d) Affic herseuleme ntles lignes du fic hieravion.hqui commencent par# Correction :grep?^#?avion.h
e) Affic herseulemen tles lignes de avion.hqui ne sont pas vides. Correction :grep?.?avion.hougrep -v?^$?avion.hou ... f) Compter les lignes du fic hieravion.h.
Correction :wc -l avion.h
g) Compter les lignes non vides du fic hieravion.h.
Correction :grep?.?avion.h | wc -l
3.Un peu de rangement!/5
a) Créer l erép ertoiretp_ensemblecomme sous-répertoire deprog2, puis y déplacer (en une seule commande) les fichiersMakefile,main.c,ensble.cetensble.hdu répertoire~. Correction :mkdir ~/prog2/tp_ensemble
mv ~/Makefile ~/main.c ~/ensemble.c ~/ensemble.h ~/prog2/←?tp_ensemble b) Renommer le ré pertoiretp2pour l"appelertp_scooter(toujours dansprog2). Correction :cdprog2 ; mv tp2 tp_scooter
c) Copier (toujours dans prog2) le répertoiretp1en nommant la copietp_avion. Correction :cp -R tp1 tp_avion
d) Supprimer le rép ertoiretp1(et tout ce qu"il contient). Correction :rm -r tp1
4.Permissions/6
a) Rendre les fic hierstodoetautoprog2du répertoireprojetexécutables par vous. Correction :chmod u+x ~/shell/projet/todo ~/shell/projet/autoprog2 b) Sur le fic hieridees_geniales.txt, enlever toutes les permissions du groupe et des autres utilisateurs. Correction :chmod og= ~/idees_geniales.txtet 1000 autres possibilités c) Supprimer, p ourtout le monde, la p ermissiond"écrire sur le fic hierautoprog2. Correction :chmod a-w ~/shell/projet/autoprog2
L1 Informatique - 2018 - 20193Université Paris 13 Initiation à la programmation shell : Partiel
d) Que faire p ours"ass urerque p ersonne(à part ro ot)ne pu issesupprimer le fic hiertodo? Avec quelle commande?
Correction :Il faut enlever à tous la permissionwaurépertoirequi le contient.chmod a-←? w ~/shell/projet/ e) On a tap édans le te rminalla command esuiv ante,a vecle résultat suiv ant(le $repré- sente l"invite de commande) :$u mask 022
Si lefichier normalidees_pourries.txtet le répertoirewebsont créés dans votre répertoire personnel, quelles sont les permissions qui leur sont associées? Correction :Ce masque enlève les droits d"écriture au groupe et aux autres. Pour le fichier normal, créé au départ sans la permissionx, ça donne les permissionsrw-r--r--et pour le répertoire, créé avec la permissionxavant d"appliquer le masque, ça donnerwxr-xr-x. 5.Documents/6
a) Le programme evincepermet d"ouvrir les fichierspdf. Lancer ce programmeen arrière-planpour ouvrir le fichierpoly.pdf. Correction :evince ~/shell/docs/poly.pdf &
b) Affic herle PID de c epro cessus.
Correction :echo$!
c) Mettre fin à ce pro cessus(ou, au pire, donner une métho dep ourle faire en utili sant seulement le terminal). Correction :kill$!
d) Ouvrir, cette fois au premier plan, toujours a vecevince, le fichiermanuel de bash.pdf. Correction :evince ~/shell/docs/"manuelde bash .pdf" e) Mettre ce pro cessusen arrière-plan (ou, au pire, donner une métho dep ourl efaire en utilisant seulement le terminal). Correction :Ctrl-zpuisbg, ou à la place debg, aller chercher le PID du processus, envoyer SIGTSTPaveckill, etc
6.Pot-pourri/3
a) Quelle est la p articularitédu fic hier.bashrc? Comment le lister avec la commande ls? Correction :C"est un fichier caché car son nom commence par un point. Pour le lister, on peut utiliserls -a b) Commen taffic herle nom de tous les fic hierspdfdans cette arborescence? Correction :find ~ -name" *.pdf"
c) Commen taffic herle nom de tous les rép ertoiresdans cette arb orescence? Correction :find ~ -typed
Exercice 2 :
17points
1.Voici une partie de la sortie d"une commandels -ld *:
L1 Informatique - 2018 - 20194Université Paris 13 Initiation à la programmation shell : Partiel
-rw-r--r-- 2 rob genies 271 17 janv. 12:35 a_faire.txt -rwx--x--x 1 rob genies 872 9 fevr. 23:09 ranger.sh drwxr -xr-x 2 rob genies 4096 27 mars 11:03 solutions/ lrwxrwxrwx 1 rob genies 10 8 dece. 07:07 urgent -> ../attention a) Que signifien tresp ectivement-,detlau tout début des lignes ci-dessus? Correction :fichier normal, répertoire et lien symbolique. b) À quoi corresp ondentles mots robetgeniespour ces fichiers? Correction :Ce sont respectivement le propriétaire et le groupe propriétaire des fichiers. c) Que signifien tles p ermissionsasso ciéesà ranger.sh? Les écrire en représentation octale. Correction :Tous peuvent exécuter ce fichier. Rob peut en plus le lire et le modifier. En octal, ça fait711 d) À quoi c orrespondle nom brequi suit genies? La date et l"heure qui suivent ce nombre? Correction :C"est la taille du fichier en nombre d"octets. La date qui suit est la date de dernière modification. e) Que signifie p ourle fic hiera_faire.txtle premier nombre2? Correction :C"est le nombre de liens physiques vers ce fichier. f) Qu"indique la c haîneurgent -> ../attention?
Correction :Le fichierurgentest un lien symbolique qui pointe vers le fichierattention situé dans son répertoire parent. 2.Expliquer en une phrase ce que fait chacune des commandes suivantes :
a)ls *.??? Initiation à la programmation shell : Partiel
g)ps-ef | grep ^root Correction :Ne lister que les processus lancés parroot. 3.Donner une commande permettant de lister les fichiers du repertoire courant qui ont pour
extension.cou.het dont le nomcontientla chaîne de caractèreliste Correction :ls *liste*.[ch]
Exercice 3 :
17points
On rappelle que la commandewc -cpermet d"afficherla taille en octets d"un fichier passé en arguments. En voici un exemple de sortie sur le fichierindex.html(encore une fois$représente l"invite de commande) :$ wc -c index.html 2628 index.html
On considère dans cet exercice le script (moyennement utile)taillessuivant :1#!/ bin/bash2 3repertoire=$14limite=100#taillel imitee nK o( kilooctets)5limite_octets=$(( 1024 * $limite ))6forf ichieri n" $repertoire"/*; d o7taille=$(wc -c" $fichier"| s ed?s/. *//?)8if[ $ taille- gt$ limite_octets] ; t hen9echo" Lef ichier$ fichierf aitp lusd e$ limiteK o! "10fi11done1.Expliquer à quoi sert la ligne 1 de ce script.
Correction :Elle sert à dire au système quel interpréteur doit lire ce script. 2.Expliquer ce que font les lignes 3 et 4 de ce script.
Correction :La ligne 2 sert à mettre le contenu du premier argument dans une variable appelée repertoire. La ligne 3 met la chaîne100dans une variable appeléelimite 3.Que va faire la ligne 5? À quoi sert la syntaxe$(( ))?
4.À quoi sert la ligne 6?
5.La ligne 7 sert à mettre la taille (en octets) du fichier nommé$fichierdans la variable
taille. Pour ce faire : L1 Informatique - 2018 - 20196Université Paris 13 Initiation à la programmation shell : Partiel
a) À quoi sert la syn taxe$( )?
Correction :Elle sera remplacée par la sortie standard de la commande qui est à l"intérieur (substitution de commande). b) À quoi sert le sym bole|?
Correction :C"est un pipe qui sert à faire de la sortie standard de la première comande l"entrée standard de la commande suivante. c) Que fait la commande sed?s/.*// ??
Correction :Elle sert à supprimer tout ce qui suit le nombre dans la sortie de la commande wc -l. 6.Expliquer en détail la ligne 8.
Correction :Il y a une constructionifdont le corps ne sera exécuté que si la commande entreif et;sort avec un code de succès (0). La commande en question est une commandetestqui retourne0si le contenu detailleest supérieur au contenu delimite_octet. 7.Dans la ligne 9, que se passe-t-il si les guillemets anglais"" sont remplacés par des apos-
trophes?? ? 8.Que fait ce script?
9.Modifier le script de façon à ce qu"à la fin soit produit également
Correction :Correction globale de ces questions à la fin de l"exercice. un affic hagede la somme des tailles de tous les fichiers(non cachés du répertoire donné en argument); un affic hagede la somme des tailles des fi chiers(n oncac hésdu rép ertoiredonné en argument)dont la taille dépasse la limite. Correction :#!/ bin/bash
if - ne1 ] ; t hen echo usage $ 0 R EPERTOIRE
> &2 exit 1 fi repertoire=$1 if ! [ - d $repertoire t hen echo L?argument$ 1n ?estp asu nr épertoire"> &2exit2 fi somme_tous=0 somme_gros=0 L1 Informatique - 2018 - 20197Université Paris 13 Initiation à la programmation shell : Partiel
limite=100#taillel imitee nK o( kilo-octet)limite_octets=$(( 1024 * $limite )) for f ichier i n $repertoire d o taille=$(wc -c $fichier s ed?s/. *//?)somme_tous=$(( $somme_tous + $taille )) if [ $ taille- gt$ limite_octets] ; t hen echo Le f ichier $ fichier f ait p lus d e $ limite K o somme_gros=$(( $somme_gros + $taille )) fi done echo Somme d es t ailles d es f ichiers d e $ repertoire $ somme_tous echo Somme d es t ailles d es f ichiers d e $ repertoire d ont l a t aille d é←?passe"\
$limite K o $ somme_gros Exercice 4 : Copier en toute sécurité
14points
Correction :La correction est globale, à la fin de l"exercice. 1.Créez la commandecopierqui permet de copier le contenu d"un fichier source dans un
fichier destination. La commande reçoit en arguments deux noms de fichiers : la source et la destination. Le script se termine avec un code de sortie d"erreur, et affiche un message d"erreur si l"une des conditions suivantes est réalisée : le nom bred"argumen tsest incorrect ; le fic hiersource n"existe pas ou n"est pas copiable (pas d"accès en lecture) ; le fic hiersource n"est pas un fic hierordinaire ; le fic hierdestination existe. 2.Modifiez votre script de manière à ce que, si le fichier destination existe, au lieu de se termi-
Correction :#!/ bin/bash
if - ne2 ] ; t hen echo usage $ 0 S OURCE
D ESTINATION
> &2 exit 1 fi L1 Informatique - 2018 - 20198Université Paris 13 Initiation à la programmation shell : Partiel
src=$1 dest=$2 if ! [ - e $src ] | |! [ - r $src t hen echo le f ichier $ src n ?existep aso un ?estp asc opiable"> &2exit2 fi if ! [ - f $src t hen echo le f ichier $ src n ?estp asu nf ichiero rdinaire"> &2exit3 fi if [ - e $dest t hen reponse= while $reponse o $reponse n d o echo Le f ichier $ dest e xiste l ?écraser( o/n)? "readr eponse done if [ $ reponse= = o t hen cp $src $dest fi else cp $src $dest fi Exercice 5 : Ranger
19points
Le but de cet exercice est de construire pas à pas un scriptrangerqui range les fichiers passés en arguments dans les sous-répertoiresimages,documentsouvideosdu répertoire de travail selon le principe suivant : les fic hiersdon tl"extension est .pdfsont rangés (déplacés) dansdocuments; les fic hiersdon tl"extension est .pngou.gifsont rangés dansimages; les fic hiersdon tl"extension est .aviou.movsont rangés dansvideos. Correction :Correction à la fin de l"exercice.
1.Écrire le scriptrangerdans le cas où il n"a qu"un seul argument.
2.Le modifier pour qu"il accepte un nombre quelconque d"arguments.
3.Vérification des répertoires cible : modifier le script de manière à ce que si le répertoire
quotesdbs_dbs11.pdfusesText_17
[PDF] exercices statistiques 3ème brevet
[PDF] exercices suites arithmétiques et géométriques terminale es
[PDF] exercices suites arithmétiques et géométriques terminale s
[PDF] exercices sur c'est et ce sont
[PDF] exercices sur ensemble de definition
[PDF] exercices sur ensembles de nombres
[PDF] exercices sur intervalle de confiance
[PDF] exercices sur la concentration molaire et massique
[PDF] exercices sur la concentration molaire et massique seconde
[PDF] exercices sur la forme canonique seconde pdf
[PDF] exercices sur la loi de beer lambert pdf
[PDF] exercices sur la loi des mailles
[PDF] exercices sur la loi des mailles et des noeuds
[PDF] exercices sur la loi des mailles pdf