• Aucun résultat trouvé

corrigé

N/A
N/A
Protected

Academic year: 2022

Partager "corrigé"

Copied!
3
0
0

Texte intégral

(1)

Unix et Programmation Shell 14:00–16:00 W’210

 janvier 

--- / Vous repondrez aux questions en \

\ utilisant deux lignes en moyenne. / ---

\ ^__^

\ (oo)\_______

(__)\ )\/\

||----w |

|| ||

Q 1. Donner une explication

$> f o o

bash : f o o : commande i n t r o u v a b l e

$> PATH=$PATH : bar

$> f o o f o o b a r

Il y a un ex´ecutable foo dans le r´epertoire

$HOME/bar qui affiche ”foobar”.

Q 2. Deviner le r´esultat de la commande

$> man bash \

| g r e p −Eo ’\$ [A#∗0$ ]{1}’\

| s o r t | u n i q

Il affiche quelques param`etres sp´eciaux de bash soit $#,$*,$0,$$.

Q 3. Que signifie l’acronyme gawk version gnu d’un c´el`ebre filtre unix? Gnu, Aho, Weinberger, Kernighan.

Q 4. Que doit-on `a M. D. McIlroy ? Le pipeline unix.

Q 5. Citer 5 types de fichiers pr´esents dans un syst`eme de fichier unix. Les types rencontr´es en cours : r´egulier, r´epertoire, blocs, s´erie, tube, lien, et socket.

Q 6. Citer trois shellsunix.bash,sh,csh, etc. . .

Q 7. Que d´ecrit la section 1 du manuel ? Les commandes utilisateurs.

Q 8. Donner un exemple de binaire suid? /bin/passwd

Q 9. Que fait le script

1 #!/bin/bash

2 file =$1 ;shift

3 for n in $∗ ; do

4 p[$n]=yes

5 done

6 n=1

7 while readline ; do

8 if [ yes = ”${p[$n]}”]; then

9 echo $line

10 fi

11 let n++

12 done <$file

Il affiche les lignes de num´eros donn´es d’un fichier, par exemple, line.sh foo i j k affiche les i, j, et k du foo. sur la ligne de commande.

Q 10. Ecrire une commande pour trouver les fichiers de suffixe.h du r´epertoire /usr/include contenant 3.1415926.

1

(2)

g r e p −r l ’ 3 . 1 4 1 5 9 2 6 ’ −−i n c l u d e = ’∗. h ’ / u s r / i n c l u d e

Q 11. Quel est le r´esultat de la commande

$ f o r x i n {1 . . 1 0 0}; do l e t s+=x ; done ; e c h o $ s ;

La somme des 100 premiers entiers, soit 5050.

Q 12. Quel service r´eseau est en relation avec le fichier /etc/resolv.conf ? Domain Name Service.

Q 13. Commenter

$ f i n d / b i n −name ’ s∗’ −t y p e l / b i n / sh

/bin/shest le seul lien dont le nom commence par

’s’, dans le r´epertoire/bin.

Q 14. On consid`ere le scriptnarco.sh

1 #!/bin/bash

2 for x in $∗; do

3 ( sleep $x; echo −n $x ) &

4 done

Quel est le r´esultat de narco.sh 3 1 4 1 5? La commande lance 5 processus en arri`ere plan. Le second termine en premier et affiche 1, suivent 1, 3, 4 et 5.

Q 15. Citer trois ´editeurs de fichiers textes usuels. Par exemple,vi,emacs,gedit, etc. . .

Q 16. Que fait le script

1 for file in ∗. c ; do

2 if ! gcc $file 2>/dev/null;then

3 break

4 fi

5 done

6 echo $file

. Il pointe (imparfaitement) le nom d’une C-source non compilable du r´epertoire courant.

Q 17. Que fait la commande :

$ f i n d ˜ −name ’∗˜ ’ | x a r g s rm −f Elle supprime tous les fichiers de sauvegardes de l’utilisateur.

Q 18. Donner une commande pour supprimer les lignes vides du fichierfoo.

s e d −r i ’ / ˆ $ /d ’ f o o

Q 19. Donner une commande pour trans- former les chainesjj/mm/aaaaen mm/jj/aaaa du fichier bar, o`u les lettres j,m,a repr´esentent des chiffres d´ecimaux.

s e d −r i ’ s # ( [ 0−9 ]{2}) / ( [ 0−9 ]{2}) / ( [ 0−9 ]{4}) #\2/\1/\3# bar

Q 20. Expliquer

$ m k f i f o /tmp/ f i f o

$ t r 123 456 < /tmp/ f i f o &

$ e c h o 1 2 3 4 5 6 > /tmp/ f i f o 4 5 6 4 5 6

La commande (3) ´ecrit 1 2 3 4 5 6 dans le tube cr´e´e par (1), le filtre (2) lit dans ce tube et transforme 1 en 4, 2 en 5 et 3 en 6.

_________________________

/ Ecrire des scripts sans \

\ rature ni surcharge / ---

\ ^__^

\ (oo)\_______

(__)\ )\/\

||----w |

|| ||

Q 21. Ecrire un script wobistdu.sh pour d´eterminer sur quel hˆote de la grappe licinfo-1

`

a licinfo20est connect´e l’utilisateur toto.

1 #!/bin/bash

2 for host in licinfo {1..20}; do

3 if ssh $host ”who |grep −q toto” ; then

4 echo $host

5 fi

6 done

2

(3)

Q 22. On peut v´erifier avec la commande date que cette ann´ee, le 1er mai sera un dimanche, l’ann´ee derni`ere c’´etait un vendredi

$> d a t e +”%A %D” −d 0 5 / 0 1 / 2 0 1 5 v e n d r e d i 0 5 /0 1 / 1 5

$> d a t e +”%A %D” −d 0 5 / 0 1 / 2 0 1 6 dimanche 0 5 / 01 / 1 6

Ecrire un scriptmai.shpour compter combien de fois le jour de la fˆete du travail tombe un jour de week-end sur une p´eriode donn´ee. Par exemple,

$> . / mai . sh 1901 2001 28

1 y=$1

2 while [[ $y != $2 ]]; do

3 date +”%A %m %Y” −d”05/01/$y”

4 let y++

5 done |& grep−cE ’(sam|dim)’

3

Références

Documents relatifs

Ecrire une commande pour trouver les fichiers de suffixe .h du r´ epertoire /usr/include contenant 3.1415926..

L’i-noeud ne dispose que de 12 pointeurs directs, il va donc falloir utiliser des blocs supplémentaires pour pouvoir s’adresser au 86ko restantes (98-12=86), Comme 86&lt;256,

Cette commande permet de copier un fichier vers un autre r´epertoire (avec ou sans renommage) et de copier plusieurs fichiers vers un mˆeme r´epertoire (sans renommage).. $ cp

L’utilisation de voyelles nasales semble intrins`eque `a la langue cr´eole mais la nasalit´e nous parait ˆetre un ´el´ement r´ecurrent dans le chant gwoka tout comme dans

La troisième partie (∼) indique le répertoire dans lequel vous vous trouvez actuellement dans l’arborescence de fichiers de votre machine.. Un chemin dans l’arborescence de fichier

• Cr´eez, dans votre r´epertoire personnel, les sous-r´epertoires: unix, f77, f90, c et c++.. • Cr´eez le

Calcul d'angle entre deux

• Modifiez le script testfic de façon à ce qu'il permette de tester l'existence de plusieurs fichiers ou répertoires (nombre indéfini de paramètres) en utilisant la commande shift