Correction de l`examen final 1 Utilisation du système

Transcription

Correction de l`examen final 1 Utilisation du système
Département d’Informatique
Licence Professionnelle
Année 2010-2011
Remise à niveau GNU/Linux
B E L F O R T
MONTBÉLIARD
Correction de l’examen final
18 Octobre 2010
Durée : 2 heures. Aucun document papier autorisé. Toutes machines interdites.
Indications
– On suppose être sur un système GNU/Linux, dont l’interpréteur de commande est Bash ;
– Chaque question est notée sur 1 point.
1
Utilisation du système
Question 1 : Quelles commandes permettent d’obtenir de l’aide au sujet d’autres commandes ? (3
réponses minimum)
Correction : Les commandes man, info et help.
Question 2 : Quelle commande permet de déterminer la nature d’une commande (interne au shell,
externe. . .) ?
Correction : La commande type.
Question 3 : Quelle commande permet de connaître la nature d’un fichier ?
Correction : La commande file.
Question 4 : Quelle commande permet de supprimer de manière sécurisée des fichiers ?
Correction : La commande shred.
Question 5 : La commande Unix « ls -l » génère la ligne suivante :
-rw-r––- 1 miquee 400 12K 17 oct. 21:44 examen_final.tex
Quelles informations donne-t-elle ?
Correction :
Dans l’ordre, le type de fichier (ici ordinaire), ses droits (lecture et écriture pour
le propriétaire, lecture pour les membres du groupe du propriétaire et aucun droit pour les autres), le
nombre de lien(s) sur le fichier (ici 1), le propriétaire (ici miquee), le nom/numéro de groupe (ici 400), la
taille (12Ko), la date de dernière modification du fichier (le 17 Octobre 2010 à 21h44), et le nom du fichier.
1
Question 6 : Soit S la séquence de commandes shell suivante :
$ ls -F
titi toto* tutu
$ cat toto
# !/bin/bash
ls ?[a-n] ?[a-n]
$ PATH=. :$PATH
$ toto=tutu
$ x=$toto
$ y=\$toto
$ z=$(toto)
Après la séquence de commandes S, qu’affiche la commande « echo $x » ?
Correction : La chaîne affichée est tutu.
Question 7 : Après la séquence de commandes S, qu’affiche la commande « echo $y » ?
Correction : La chaîne affichée est $toto.
Question 8 : Après la séquence de commandes S, qu’affiche la commande « echo $z » ?
Correction : La chaîne affichée est titi.
Question 9 : Quelles commandes permettent de connaître la taille de l’espace disque occupé/restant,
et la taille du répertoire courant ?
Correction : Les commandes df et du.
Question 10 : Quelle commande permet de rappeler la dernière commande exécutée ?
Correction : La commande ! !.
2
Utilisation avancée du système
Question 11 : Supposons que la commande plop soit une commande Unix. Que se passe-t-il si l’on
exécute la commande « plop 2>/dev/null > plip » ?
Correction : La sortie d’erreur de la commande est ignorée et la sortie standard est redirigée
dans le fichier plip.
Question 12 : À quoi sert la variable PS1 ?
Correction : Elle permet de personnaliser l’invite de commande du shell.
2
Question 13 : Expliquez la particularité du répertoire « /tmp » et comment s’en servir.
Correction : Le répertoire « /tmp » autorise tous les utilisateurs à écrire dedans, mais n’autorise que le propriétaire des fichiers à les supprimer ; ceci est mis en place grâce au « sitcky bit ». Pour
positionner ce bit spécial sur un répertoire, il suffit de taper la commande « chmod +t répertoire » ou
utiliser la notation en octal « chmod 1xxx répertoire ».
Question 14 : Quelle commande permet de lister tous les fichiers ayant comme extension « .mp3 »
présents sur le système ?
Correction : La commande « find / -type f -name *.mp3 ».
Question 15 : Quelle commande permet de lister tous les processus exécutés sur la machine, en ne
gardant que ceux vous appartenant ?
Correction : En utilisant la commande « ps -axu | grep ^$USER ».
Question 16 : Le fichier /proc/version contient les informations suivantes sur le système en cours
d’exécution :
Linux version 2.6.32-5-amd64 (Debian 2.6.32-23) (dannfdebian.org) (gcc version 4.3.5 (Debian 4.3.5-3)
) #1 SMP Fri Sep 17 21 :50 :19 UTC 2010
Comment n’afficher que la version du noyau utilisé (ici 2.6.32) ?
Correction :
-f1 ».
En utilisant la commande « cat /proc/version | cut -d’ ’ -f3 | tr ’-’ ’ ’ | cut -d’ ’
Question 17 : Que fait la commande « ls | grep -e "^[a-z]{3}[1,2,3][c-k]*$" | tee fichier » ?
Correction : Cette commande liste les fichiers présents dans le répertoire courant, filtre les entrées du type « abc3dkhkhkh », et les affiche sur la sortie standard et en fait une copie dans « fichier » .
Question 18 : On dispose de l’expression régulière suivante « [aeuioy]*[-x-z]\{3\}[a-w]\{3\} », quelles
peuvent être les correspondances parmi la liste suivante :
Correction :
– aeioueoia—abvkze-45 ;
– aueiouaeiuo–www68zbg ;
– xyzaa ;
– sys–iou-xzplode-me.
3
Script shell
Question 19 : On possède un répertoire ~/bin contenant des programmes. Comment faire pour que,
quelque soit notre position dans l’arborescence, on puisse exécuter un programme se situant dans ce
répertoire, sans indiquer le chemin complet vers celui-ci ?
Correction : On fixe la variable shell « PATH=~/bin :$PATH ».
3
Question 20 : La commande shred -u permet d’effacer un fichier de manière sécurisée, mais elle
n’accepte pas un répertoire en paramètre. Écrivez un script « shredr » permettant de compenser cette
limitation. Il acceptera en argument des fichiers et des répertoires qu’il effacera, si besoin de manière
récursive.
Correction : Réponse libre.
4

Documents pareils