[PDF] [PDF] Initiation à la programmation shell : Partiel





Previous PDF Next PDF



TD n°2 : Programmation shell CORRECTION

Exercice 1 – Exemple de programme shell. Solution : 1) Ce programme crée le répertoire fourni en argument et au besoin tous les sur-répertoires intermédiaires 



Scripts shell

Scripts shell. Programmez sous Unix/Linux. (sh ksh



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 :.



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 



Initiation à la programmation shell : Partiel

— Les exercices et les questions sont de difficulté variable et en général non croissante. Il est conseillé de parcourir l'énoncé avant de composer. Les 



TD 9 : Scripts UNIX (corrigé)

Ph. Leray. TD 9 : Scripts UNIX (corrigé) semaine du 31 mai 1999. Exercice 1 : Mon premier script. #!/bin/csh. # Mon premier script clear while (1).



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 ...



CSC 3102 – Sujets de TP Introduction aux systèmes dexploitation

Utilisez ces commandes pour a cher votre identi ant de connexion. Exercice 2 : Mon premier script shell (?15mn). De façon à mettre en œuvre votre premier 



Cours et exercices corrigés Initiation et utilisation

CHAPITRE 8 • LA PROGRAMMATION EN SHELL ANNEXE C • CORRIGÉS DES EXERCICES ... un programme qui généralement est un interpréteur de commandes (shell).



sous Unix/Linux

Programmation shell sous Unix/Linux sous Unix/Linux - ksh bash



Exercices shell scripts - accueil - Developpezcom

13 déc 2009 · Cet article regroupe des exercices corrigés en shell scripts Bash et autres langages shell compatibles Les exercices sont classés par 



[PDF] TD n°2 : Programmation shell CORRECTION - MIAGE de Nantes

Exercice 1 – Exemple de programme shell Solution : 1) Ce programme crée le répertoire fourni en argument et au besoin tous les sur-répertoires intermédiaires 



[PDF] TP: Programmation Shell

Exercice N°3 : Ecrivez un script qui enregistre dans un fichier les lignes saisies au clavier et qui affiche le nombre de lignes qui ont été enregistrées



[PDF] Scripts shell - fnac-staticcom

Scripts shell Programmez sous Unix/Linux (sh ksh bash) Exercices et corrigés 174 QCM 80 travaux pratiques et leurs corrigés



[PDF] Initiation à la programmation shell : Partiel

15 avr 2019 · — Les exercices et les questions sont de difficulté variable et en général non croissante Il est conseillé de parcourir l'énoncé avant de 



[PDF] TD 9 : Scripts UNIX (corrigé) - LIPN

1ère Année Département Informatique Système Année 98-99 Ph Leray TD 9 : Scripts UNIX (corrigé) semaine du 31 mai 1999 Exercice 1 : Mon premier script





[PDF] Révision - Esentn

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 :



[PDF] TP no 1: Introduction au Shell (corrigé)

Exercice 1 Shell we start ? Le shell est un langage de programmation interprété : il est donc possible d'écrire des programmes 



Exercice Unix corrigé programmation des scripts shells - Clicours

Exercice Unix corrigé programmation des scripts shells tutoriel guide de travaux pratiques en pdf Exercice 1 Créer un script shell nommé « change » qui 

:

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.Il

est 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

.bashrc

Makefile

main.c ensble.c ensble.h~ shellprog2 projetdocstp1 idees.txt enonce.pdf todo autoprog2 poly.pdf manuel de bash.pdf

Makefile

main.c avion.c

avion.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 13

Initiation à 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 tp1

Makefile

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 include

S COOTER_H

endif

Correction :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< ifndef

S 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 *.???

Correction :Lister, dans le répertoire courant, les fichiers (non cachés) dont le nom se termine

par un point, puis 3 caractères. b)kill-SIGCONT 38470 Correction :Demander au processus de PID 38470 de reprendre son exécution. c)ls -l /etc | wc -l Correction :Compter les fichiers (non cachés) du répertoire/etc d)cat~/tata/c.txt >> ~/toto/a.txt Correction :Mettre le contenu du fichierc.txt(situé dans le sous-répertoiretatadu ré-

pertoire personnel) à la fin du fichiera.txt(situé dans le sous-répertoiretotodu répertoire

personnel). e)cp /var/log/[b-m]?*[!3-9] /tmp Correction :Copier tous les fichiers du répertoire/var/logdont le nom : commence par une lettre min usculeen trebetm; est suivi d"un caractère quelconque ; se termine par un caractère qui n"est pas un c hiffreen tre3 et 9. f)ps-ef > psliste.txt Correction :Lister tous (option-e) les processus en cours, en format long (option-f) et mettre le résultat dans le fichierpsliste.txt L1 Informatique - 2018 - 20195Université Paris 13

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$(( ))?

Correction :La ligne 5 sert à mettre le résultat du calcul de1024fois la valeur de la variable limite

dans la variablelimite_octet. La syntaxe$(( ))sert à dire au shell d"en interpréter le contenu

comme une expression arithmétique, de faire ce calcul et de remplacer toute la construction par le

résultat du calcul (expansion arithmétique).

4.À quoi sert la ligne 6?

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-

toire.

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?? ?

Correction :Alors les$sont protégés et l"expansion de variables n"a pas lieu. La chaîne est copiée

littéralement dans le terminal.

8.Que fait ce script?

Correction :Il sert à afficher le nom des fichiers du répertoire donné en paramètre dont la taille

dépasse100Ko.

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 ! [ - dquotesdbs_dbs45.pdfusesText_45
[PDF] programmation bash pdf

[PDF] prêche du père paneloux commentaire

[PDF] diabète au maroc 2016

[PDF] note d'intention projet

[PDF] la princesse de clèves livre audio

[PDF] la princesse de clèves extrait

[PDF] princesse de montpensier lettres volées

[PDF] publicité radio

[PDF] la note de synthèse exercices corrigés

[PDF] lettres volées montpensier

[PDF] littérature américaine contemporaine thèmes

[PDF] portrait sculpté

[PDF] création argile facile

[PDF] activité sculpture maternelle

[PDF] quoi faire avec de l argile