Université Mohammed Premier Année universitaire 2023-2024
Faculté des Sciences Filière SMI - Semestre : S3
Département d’Informatique Module : Système d’Exploitation I
Oujda Responsable : E.M. DAOUDI
Examen de la Session de Rattrapage
Le 05 Février 2024
Durée 1h30
Exercice 1 (4 pts)
1. Soit « fiche » un fichier du répertoire courant. A partir du répertoire courant :
a. Donner les droits d’accès du fichier « fiche » après avoir exécuté la commande suivante :
% chmod 563 fiche
b. Donner les nouveaux droits d’accès du fichier « fiche » après avoir exécuté la
commande suivante :
% chmod go=rw fiche
c. Donner les nouveaux droits d’accès du fichier « fiche » après avoir exécuté la
commande suivante :
% chmod u+x,o-r fiche
2. Donner une commande équivalente à chacune des commandes suivantes :
a. % ls -d *
b. % ls -d * .*
Exercice 2 ( 6 pts)
1. Donner la commande qui affiche les noms des fichiers et des sous-répertoires du
répertoire courant qui commencent avec une lettre minuscule et se terminent avec un
chiffre sans contenir de chiffres au milieu.
2. Soit « fiche » un fichier texte. Ecrire un Script Shell qui:
- Sauvegarde la première et la dernière lignes du fichier « fiche » dans le fichier
« fiche1 ».
- Sauvegarde la deuxième et l’avant dernière lignes du fichier « fiche » dans le
fichier « fiche2 ».
3. Le but de cet exercice est d’afficher, à l’aide de la commande « find », les noms des
sous-répertoires qui commencent avec la lettre « p », à partir du répertoire racine.
Donner la commande qui :
a. Sauvegarde les résultats dans le fichier « res » et les erreurs dans le fichier
« erreur ».
b. Sauvegarde les résultats et les erreurs dans le fichier « global ».
Exercice 3 ( 6 pts)
A partir du répertoire courant :
1. Donne la commande qui affiche le nombre de fichiers ordinaires du répertoire courant.
2. Donne la commande qui affiche le nombre de sous-répertoires du répertoire courant.
3. Ecrire un Script Shell qui permet d’afficher le nombre de sous-répertoires, du
répertoire courant, dont les membres du groupe ont les droits de lecture et d’écriture.
Exercice 4 : (4 pts)
Soit « fiche » un fichier texte.
1. Donner le résultat d’exécution du Script Shell suivant:
#!/bin/bash
let i=1
let n=`wc -l < fiche`
while [ $i -le $n ]
do
head -n +$i fiche | tail -n 1 | grep "a*"
let i=$i+1
done
2. Donner une commande équivalente à ce script:
a. Sans utiliser la commande « grep ».
b. En utilisant la commande « grep ».
Université Mohammed Premier Année universitaire 2023-2024
Faculté des Sciences Filière SMI - Semestre : S3
Département d’Informatique Module : Système d’Exploitation I
Oujda Responsable : E.M. DAOUDI
Correction de l’examen de la Session de Rattrapage
Le 05 Février 2024
Exercice 1 (4 pts) :
1. Soit « fiche » un fichier du répertoire courant. A partir du répertoire courant :
a. Donner les droits d’accès du fichier « fiche » après avoir exécuté la commande suivante :
% chmod 563 fiche
b. Donner les nouveaux droits d’accès du fichier « fiche » après avoir exécuté la
commande suivante :
% chmod go=rw fiche
c. Donner les nouveaux droits d’accès du fichier « fiche » après avoir exécuté la
commande suivante :
% chmod u+x,o-r fiche
2. Donner une commande équivalente à chacune des commandes suivantes :
c. % ls -d *
d. % ls -d * .*
Réponses :
1.
1.a Les droits d’accès deviennent : « r-x rw- -wx »
en effet :
5=101 : correspond aux droits d’accès « r-x »
6= 110 : correspond aux droits d’accès « rw- »
3= 011 : correspond aux droits d’accès « -wx »
Donc les droits d’accès du fichier « fiche » deviennent : r-x rw- -wx
1.b. Après voir exécuté la commande « chmod go=rw fiche », les droits d’accès du
fichier « fiche » deviennent : r-x rw- rw-
En effet :
- Au propriétaire, on garde les mêmes droits d’accès : r-x
- Aux membres du groupe, on affecte les droits de lecture et d’écriture : rw-
- Aux autres utilisateurs, on affecte les droits de lecture et d’écriture : rw-
Donc, les droits d’accès du fichier « fiche » deviennent : r-x rw- rw-
1.c Après avoir exécuté la commande « % chmod u+x,o-r fiche », les droits d’accès
du fichier « fiche » deviennent : r-x rw- -w-
En effet :
- Au propriétaire, on rajoute le droit d’exécution (qui existe déjà) : r-x
- Aux membres du groupe, on garde les mêmes droits : rw-
- Aux autres utilisateurs, on supprime le droit de lecture : -w-
Donc, les droits d’accès du fichier « fiche » deviennent : r-x rw- -w-
2.
2.a La commande « ls -d * » est équivalente à la commande « ls »
2.b La commande « ls -d * .* » est équivalente à la commande « ls -a »
Exercice 2 ( 6 pts)
1. Donner la commande qui affiche les noms des fichiers et des sous-répertoires du
répertoire courant qui commencent avec une lettre minuscule et se terminent avec un
chiffre sans contenir de chiffres au milieu.
2. Soit « fiche » un fichier texte. Ecrire un Script Shell qui:
- Sauvegarde la première et la dernière ligne du fichier « fiche » dans le fichier
« fiche1 ».
- Sauvegarde la deuxième ligne et l’avant dernière ligne du fichier « fiche » dans le
fichier « fiche2 ».
3. Le but de cet exercice est d’afficher, à l’aide de la commande « find », les noms des
sous-répertoires qui commencent avec la lettre « p », à partir du répertoire racine.
Donner la commande qui :
c. Sauvegarde les résultats dans le fichier « res » et les erreurs dans le fichier
« erreur ».
d. Sauvegarde les résultats et les erreurs dans le fichier « global ».
Réponses :
2. La commande est :
% ls | grep "^[a-z].*[0-9]$" | grep -v "^[a-z].*[0-9].*[0-9]$"
ou
% ls | grep "^[a-z] " | grep "[0-9]$" | grep -v "^[a-z].*[0-9].*[0-9]$"
3. Le Script shell :
#!/bin/bash
if [ -e fiche1 ]; then
rm fiche1
fi
if [ -e fiche2 ]; then
rm fiche2
fi
head -n 1 fiche >>fiche1
tail -n 1 fiche >>fiche1
head -n 2 fiche | tail -n +1 >> fiche2
tail -n 2 fiche | head -n 2 >> fiche2
4.
a. La commmande est :
% find / -name "p*" -type d > res 2>erreur
b. La commande est :
% find / -name "p*" -type d &> global
Exercice 3 ( 6 pts)
A partir du répertoire courant :
1. Donne la commande qui affiche le nombre de fichiers ordinaires du répertoire courant.
2. Donne la commande qui affiche le nombre de sous-répertoires du répertoire courant.
3. Ecrire un Script Shell qui permet d’afficher le nombre de sous-répertoires, du
répertoire courant, dont les membres du groupe ont les droits de lecture et d’écriture.
Réponses :
1. % ls -l | grep "^-" | wc -l
2. % ls -l | grep "^d" | wc -l
3.
#!/bin/bash
let i=0
ls -l | grep "^d" > fiche
while read line
do
droits=`echo $line | cut -c5-6`
if [ "rw" = "$droits" ] ; then
let i=$i+1
fi
done < fiche
echo "nb = $i"
Exercice 4 : (4 pts)
Soit « fiche » un fichier texte.
1. Donner le résultat d’exécution du Script Shell suivant:
#!/bin/bash
let i=1
let n=`wc -l < fiche`
while [ $i -le $n ]
do
head -n +$i fiche | tail -n 1 | grep "a*"
let i=$i+1
done
2. Donner une commande équivalente à ce script:
a. Sans utiliser la commande « grep ».
b. En utilisant la commande « grep ».
Réponses :
1. Ce Script Shell permet d’afficher le contenu du fichier « fiche »
2.
a. équivalente à la commande « % cat fiche »
b. équivalente à la commande « % grep ".*" fiche »