Administration Unix - TP séance 03
À la fin de la séance, déposez votre fichier de réponses sur la page Ametice en suivant bien les instructions, même si vous n'avez pas fini la planche ; lorsque vous aurez terminé, vous pourrez re-déposer la version finale.
Exercice 1 : la commande ps, manipulation des processus
a) Quelles options de la commande ps
permettent de voir tous les processus
en cours dans le système, et de connaître le nom de leur propriétaire ?
b) Citez une combinaison d'options de la commande ps
qui permet d'afficher
la filiation des processus.
c) Repérez 1 processus dont vous n'êtes pas propriétaire. Essayez de le tuer
avec la commande kill
. Que se passe t'il ?
d) Ouvrez deux terminaux, puis lancez une commande top
dans le premier.
Observez dans le second la filiation des 2 shells, en vous servant de b), puis
notez les PID et PPIDs des 2 shells et de top
. (Remarque : la variable
BASHPID
donne le PID du shell courant)
e) Même expérience avec la commande top
dans le premier shell. Dans le
second, tuez le premier shell ; que devient le processus top
?
f) Essayez avec un processus en arrière plan (lancé avec &
), par exemple
xclock &
; disparaît-il quand on tue le shell père ?
(Note : si vous utilisez WSL avec Windows 10, voir d'abord Annexe A).
Exercice 2 : Explorations du shell
a) Dans la séquence suivante, pourquoi les résultats de la commande sont ils différents ?
$ cd /tmp
/tmp$ mkdir testls
/tmp$ cd testls/
/tmp/testls$ echo a*
a*
/tmp/testls$ touch ab
/tmp/testls$ echo a*
ab
/tmp/testls$ touch acdc
/tmp/testls$ echo a*
ab acdc
Que peut-on faire pour éviter ce comportement ?
b) Comptez, à partir de l'historique de votre session, le nombre de fois ou
vous avez utilisé la commande ls
.
c) Dans la séquence suivante, quelle est l'action réalisée (surtout à la fin) ?
$ cd /tmp
/tmp$ mkdir testtar
/tmp$ cd testtar/
/tmp/testtar$ echo Contenu > file1
/tmp/testtar$ ln file1 copie
/tmp/testtar$ ln file1 2emecopie
/tmp/testtar$ ls -lai
total 544
733647 drwxrwxr-x 2 thiel thiel 4096 oct. 7 14:13 ./
656643 drwxrwxrwt 38 root root 536576 oct. 7 14:20 ../
677365 -rw-rw-r-- 3 thiel thiel 8 oct. 7 14:13 2emecopie
677365 -rw-rw-r-- 3 thiel thiel 8 oct. 7 14:13 copie
677365 -rw-rw-r-- 3 thiel thiel 8 oct. 7 14:13 file1
/tmp/testtar$ (cd /tmp ; tar cf - testtar) |
(mkdir /tmp/copietar ; cd /tmp/copietar ; tar xf -)
Note : le pipeline de la dernière commande est sur 2 lignes. Un bloc
de commandes encadré par des ( )
est exécuté dans un sous-shell ;
l'intérêt est que chaque sous-shell a son propre répertoire courant.
Vérifiez que le contenu du répertoire destination est identique à la source.
d) Quelle différence y a-t-il avec l'utilisation de la commande cp
?
Testez, et observez les liens. Existe-t-il une option de cp
pour obtenir le
même comportement que ce pipeline avec tar
?
Exercice 3 : Les commandes de manipulation des processus en arrière-plan.
a) Que fait la commande sleep 20
?
b) Que se passe t'il si on tape la commande suivante ?
$ sleep 20 ; echo test1 ; sleep 20 ; echo test2 ; sleep 20 ; echo test3
c) Quelle différence, lors de l'exécution, avec la commande :
$ sleep 20 & echo test1 ; sleep 20 & echo test2 ; sleep 20 & echo test3
d) Comment pouvez vous trouver de la documentation pour les commandes bg
et fg
? Indice : ce sont des commandes internes (builtin) du shell. Que
devez vous faire pour ramener au premier plan le deuxième processus sleep
de
la commande du c) ? Indice : pensez aux numéros de jobs.
e) Tapez la commande sleep 5m
, puis, alors que le shell attend que la
commande se termine, tapez Ctrl+Z. Dans quel état se trouve la commande
sleep
? Quelle différence y a-t-il alors entre les commandes fg
et bg
?
Annexe A : installer un serveur X11 sur WSL
Si vous utilisez WSL sur Windows 11, tout est bon ;
en revanche sur Windows 10, il faut installer un "serveur X11" pour
que les commandes telles que xclock
puissent faire un affichage graphique :
allez sur https://sourceforge.net/projects/vcxsrv/
Après installation, dans le menu Windows, lancez VcXsrv
/ XLaunch
puis acceptez toutes les valeurs par défaut.
Pour tester, tapez dans le terminal Ubuntu :
$ sudo apt install x11-apps
$ xclock