Vous êtes sur la page 1sur 13

‫وزارة التعليم العالي‬

‫اإلدارة العامة للدراسات التكنولوجية‬


‫المعهد العـالي للدراسات التكنولوجية‬
‫بالمهـديـة‬
‫وزارة التعليم العالي‬
‫اإلدارة العامة للدراسات التكنولوجية‬
‫المعهد العـالي للدراسات التكنولوجية‬
‫بالمهـديـة‬
Ministère de l’Enseignement Supérieur, de la Recherche Scientifique et de la Technologie. ‫وزارة التعـلــيم العــالي و البحث العلمي و التكنولوجيا‬

‫المعهد العــــــــــــــــــــــــالي‬
Institut Supérieur ‫للدراسات التكنولوجية‬
des Etudes Technologiques ‫بالمهـديـة‬
de Mahdia

Devoir Surveillé UNIX


Matière  : UNIX & LINUX Classes: IG 3.1
Enseignants : Mr N.MLAYAH Date : 08/10/2004
Documents  : non autorisés. Durée : 1 h

Devoir Surveillé UNIX

Exercice 1 :
1. Quelles sont les caractéristiques du système UNIX ?
2. Décrire l’organisation des fichiers UNIX et préciser le contenu de chacun de ses
répertoires ?
3. Quels sont les différents types de fichiers UNIX ? Ainsi que leurs caractéristiques ?
Exercice 2 :
1. Quelles sont les commandes qui permettent la fermeture de votre session ?
2. Quelle est la commande qui permet d’afficher le nom de fichier spécial associé à votre
terminal ?
3. Quel est l’effet de :
$ cat x y > y
$ cat x >> y
4. Quelle est la commande conduisant aux droits d’accès suivants du fichier fic : rwxr-xr-- ?
5. Quelle est la commande, en donnant la syntaxe et en expliquant son fonctionnement,
permettant de définir les droits d’accès attribués à tous les nouveaux fichiers et
répertoires ?
6. Quelle est la différence entre un processus lancé en premier plan et un processus lancé en
tâche de fond ?
Exercice 3 :
Soient les utilisateurs formels user1, user3 de groupe g1 et user2 de groupe g2.
Supposons que trois sessions sont ouvertes avec ces trois noms de login et que leurs masques
sont égaux à 023.

Le résultat de la commande ls –l est :


$ ls –l /home
total 5
drwxrwxr-x 2 user1 g1 4096 oct 13 23 :37 /home/user1
drwxr-xr-x 2 user2 g2 4096 oct 13 23 :40 /home/user2
drwxr----- 2 user3 g1 4096 oct 13 23 :45 /home/user3

1. user1 : créer le répertoire rep1 et le fichier fic, contenant la liste des processus qui sont
en cours d’exécution pour tout le système, sous le répertoire de connexion.
2. user1 : faire une copie et un lien du fichier fic, sous le répertoire rep1, appelés
respectivement user1_copie_fic et user1_lien_fic
3. user2 : faire un lien du fichier fic(qui se trouve dans le répertoire de connexion de user1)
dans le répertoire de connexion portant le nom user2_lien_fic
4. user3 : déplacer le fichier fic (de user1) sous le répertoire de connexion
5. user3 : supposons que le numéro de i-nœud associé au fichier fic est 4011 et que user3
est sous son répertoire de connexion.
Quel sera le résultat de la commande ls –il ?
Est-il possible de changer le propriétaire du fichier fic à user2 ? Pourquoi ?
6. user1 : est-il possible de supprimer le fichier fic ? Pourquoi ?
7. user2 : supposons que user2 a déjà supprimé le fichier user2_lien_fic et qu’il est sous
son répertoire de connexion.
Quel sera le résultat des commandes :
$ ls –i ../user1/rep1
$ ls –i ../user3
8. user2: user2 lance une commande de recherche en premier plan sur son terminal. Cette
commande prendra assez de temps avant sa terminaison. Citer les différentes commandes
avec lesquelles user2 peut arrêter la recherche, en expliquant comment peut-on
l’appliquer et l’effet de chacune d’eux ?
Institut Supérieur Des Etudes Technologique de Mahdia
Examen Janvier 2005

Examen Janvier 2005


Matière  : UNIX & LINUX Classe : IG3.1
Enseignants : Mr N.Mlayah Date  : 15/01/2005
Documents  : Non Autorisés Durée : 2 h
Examen Janvier 2005

Exercice 1 : ( 5 points = 0,5 * 10 )

Expliquer que font les commandes suivantes :

1) find / -name "tcl" -print 2> /dev/null

2) find /usr -name "*.sh" -exec grep "^#" {} \;

3) ls -l /bin | sort

4) test –f fic; echo $?

5) grep 'ing$' chap* | tr [A-Z][a-z]

6) grep “^Ali:” /etc/passwd|cut –d: -f4

7) rm f[a-z]

8) ls -l /usr | grep '^d'| wc –l

9) echo fichier1 >fichier2

10) cat fich 2> erreur

Exercice 2 : ( 5 points = 1 + 1.5 +1.5 +1 )

Utiliser la commande find Ou / Et pour :


1. supprimer la liste des fichiers ordinaires vides
2. regrouper les fichiers de ali dans le répertoire /home/ali
3. afficher la liste des fichiers ordinaires contenant le mot Linux
4. concaténer deux fichiers ordinaires et ensuite substituer chaque séquences
d’espaces successifs par un seul.
Exercice 3 : ( 5 points = 1 + 2 + 1+1 )

Soit le sous arborescence suivant dans votre répertoire d’accueil.

Accueil
|
___________________________|___________________________
| | |
Syst Doc Prog
_______|_______ ______|______ _______|_______
| | | | | | | | |
dev etc bin Cours TP TD C Pascal Bash
_____|_____ | | | |
| | Sh1 Sh2 Sh3 Bash
passwd group j

Remarques:
1. les noms de fichiers ordinaires sont écrits en italique
2. les fichiers passwd et groupe sont des lins symbolique des fichiers système passwd et group
3. les fichiers Sh1, Sh2 et Sh3 sont des fichiers vide
4. le fichiers Bash est la concaténation des fichiers passwd et group.
5. le répertoire courant est : Prog

1. écrire la suite de commandes qui permet de créer les répertoires


2. écrire les ligne de commandes qui permet de créer les fichiers ordinaires
(passwd, group, Sh1, Sh2, Sh3 et Bash)
3. soit prog est le répertoire courant. Déterminer le chemin relatif et absolu du
fichier Sh2.
4. déterminer les erreurs dans le résultat de la commande ls –l suivant :
drw-r----- 1 ali etud 1024 Oct 13 00 :31 C
-r—r—r-- 1 ali ig3 418 Oct 13 16:25 Bash
drwxrwxrwx 3 ali inf 1024 Oct 15 20:27 Pascal

Exercice 4 : ( 5 points = 2 + 3 )


1) Ecrire un script appelé suite dont la syntaxe est la suivante :
suite U0 r n
Ce script permet de calculer la suite arithmétique d’un nombre donné en paramètre
et affiche le résultat sur l’écran. Si l’appel du script n’est pas conforme à la syntaxe
mentionnée alors afficher un message.
On définie la valeur de Un par Un = U0 + n * r
Exemple :
$ suite 4
vérifiez la syntaxe !!
$ suite 4 2 7
18
2) Ecrire un script appelé somme dont la syntaxe est la suivante :
somme U0 r n p
le script doit vérifier la syntaxe donnée ainsi que la condition 0 ≤ p ≤ n
n
Si oui alors calculer la somme  uk = UP + U(P+1) + .... + Un en utilisant le script suite
k p

et afficher le résultat ; sinon afficher un message.


‫وزارة التعليم العالي‬
‫اإلدارة العامة للدراسات التكنولوجية‬
‫المعهد العـالي للدراسات التكنولوجية‬
‫بالمهـديـة‬
‫وزارة التعليم العالي‬
‫اإلدارة العامة للدراسات التكنولوجية‬
‫المعهد العـالي للدراسات التكنولوجية‬
‫بالمهـديـة‬

Ministère de l’Enseignement Supérieur, de la Recherche Scientifique et de la Technologie.‫التكنولوجيا‬ ‫وزارة التعـلــيم العــالي و البحث العلمي و‬

‫المعهد العــــــــــــــــــــــــالي‬
Institut Supérieur ‫للدراسات التكنولوجية‬
des Etudes Technologiques ‫بالمهـديـة‬
de Mahdia

Correction devoir Surveillé UNIX


Matière  : UNIX & LINUX Classes: IG 3.1
Enseignants : Mr N.MLAYAH Date : 08/10/2004
Documents  : non autorisés. Durée : 1 h
Correction devoir Surveillé UNIX

Barème :
EX1 : 2 + 2
EX2 : 1 * 8
EX3 : (0.5+1)+(0.5+0.5)+0.75+ 0.5 + (0.5+0.25+0.5)+(0.25+0.5)+(0.5+0.5)+1.25
Exercice 1 :
1. Les caractéristiques du système UNIX sont 
Multi-utilisateurs et Multitâches
Temps partagé
Système de fichiers hiérarchique
Entrées-Sorties intégrées au système de fichiers
Gestion de la mémoire virtuelle
Processus réentrants /
Interface utilisateur interactive (Shell)
 Mécanisme
de de protection
tmp etc us hom bi
v r e n unix
2. L’organisation des fichiers UNIX : ou /
user2 ho user
me 2

rep
1 espace de travail de user1
/dev contient les fichiers associés aux périphériques :
/etc contient les fichiers d'administration
/bin contient les commandes Unix
/usr commandes et bibliothèques supplémentaires
/users ou /home répertoire des utilisateurs
/unix fichiers systèmes
/tmp contient les références des fichiers temporaires utilisés par des applications système

Exercice 2 :
1. Les commandes qui permettent la fermeture de votre session sont :
a. exit
b. logout
c. ˆD (si aucun processus n’est en cours d’exécution sauf l’interpréteur de
commande)
2. La commande qui permet d’afficher le nom de fichier spécial associé à votre
terminal est :
d. tty
3. La différence entre les deux appels suivants :

cp fichier1 fichier2
cp <fichier1 >fichier2

(sachant que le fichier fichier2 n’existait pas au moment du lancement de l’appel)


Est que dans le premier appel, la commande cp a pour arguments fichier1(source) et
fichier2(destination), de même les fichiers standards d’entrée et de sortie sont respectivement
le clavier et l’écran. Alors que dans le deuxième appel cp n’a pas d’arguments, mais les
fichiers standards d’entrée et de sortie sont redirigés et associés respectivement vers fichier1
et fichier2. Donc le premier appel est une simple copie du fichier1 vers fichier2 par la
commande cp, mais le deuxième, et puisque aucun argument n’est indiqué, la commande cp
va copier le contenu du l’entrée standard vers la sortie standard.
4. La commande conduisant aux droits d’accès suivants du fichier fic : rwxr-xr-- est :
e. chmod 754 fic
f. chmod u=rwx,g=rx,o=r fic
5. La commande, permettant de définir les droits d’accès attribués à tous les nouveaux
fichiers et répertoires, est umask . La syntaxe est : umask masque
masque est une valeur octale qui sera le complément des droits d’accès attribués aux
nouveaux fichiers et répertoires. Par exemple, si nous voudrons attribuer les droits
suivants à l’initialisation rwxr-xr-- , il suffit de prendre son complément binaire qui est
000010011. En octale correspond à 023, d’où la commande : umask 023
6. Pour un processus lancé en premier plan et tant que son exécution n’est pas terminé,
on ne dispose pas la main sur le shell c’est à dire qu’on ne peut pas lancer d’autres
commandes avant sa terminaison. Alors que pour un processus lancé en tâche de
fond, la seule différence se manifeste dans la reprise du main sur le shell dès le
lancement de la commande et l’affichage de son PID
7. Dans la suite des commandes shell suivantes :
$ a=coucou
$b=a
$echo $b
a
La commande nécessaire à la visualisation du contenu de la variable a est :
g. $ echo $a
coucou

8. L’effet de la commande : $ nice –5 cat fichier1


Cette commande permet de visualiser le contenu du fichier1 à travers le processus cat
avec une valeur de priorité égal à 5 lors de son exécution

Exercice 3 :
1. $ mkdir rep1
$ ps –a > fic
2. $ cp fic rep1/ user1_copie_fic
$ ln fic rep1/ user1_lien_fic
3. $ ln ../user1/fic user2_lien_fic
(ou)
$ ln /home/user1/fic user2_lien_fic
4. $ mv ../user1/fic .
Ce déplacement est permis puisque on dispose le droit d’écriture pour la classe groupe
pour le répertoire de connexion de user1 et évidemment le droit d’écriture pour le
répertoire dans lequel on va déplacer le fichier fic(répertoire de connexion de user3)
5. $ ls –il
total 3
4011 -rwxr-xr-- 3 user1 g1 512 oct 13 23 :50 fic
Vous pouvez mettre n’importe quel valeur pour la taille du fichier ainsi que la date de
dernière modification. De même les droits d’accès du fic sont déterminés par le masque
qui est égal 023.
Non, il n’est pas possible de changer le propriétaire du fichier fic puisque seulement son
propriétaire actuel(user1) ou l’administrateur qui peut le faire
6. Non, il n’est pas possible de supprimer le fichier fic. user1 et user3 sont dans le même
groupe g1 et les droits d’accès de répertoire de connexion de user3 sont rwxr----- càd
que user1 n’a pas le droit d’écriture sur ce répertoire, donc user1 n’a pas le droit de créer
ou supprimer un fichier sous /home/user3
7. $ ls –i ../user1/rep1
xxxx user1_copie_fic
4011 user1_lien_fic
Où xxxx est le numéro d’i-nœud de user1_copie_fic et qui est différent de 4011.
$ ls –i ../user3
permission non accordée
Puisque on n’a pas le droit de lecture pour la classe autre pour le répertoire de connexion
de user3
8. Les différentes commandes avec lesquelles user2 peut arrêter la recherche sont :
 CTRL-D : cette raccourci permet de tuer le processus en cours d’exécution
 CTRL-C : cette raccourci permet d’interrompre l’exécution du processus en cours,
mais c’est pas toujours possible
 CTRL-Z : cette raccourci permet de suspendre l’exécution du processus en cours
 L’autre solution c’est d’ouvrir une autre session avec le même nom de login ou en
tant que administrateur (root), déterminer le PID du processus à arrêter puis lancer la
commande : kill signal PID . signal présente le signal à appliquer sur le processus.
Les signaux les plus connus sont :
- ( SIGINT = 2 )  CTRL-C  : interrompre l’exécution
- ( SIGKILL = 9)  CTRL-D  : tuer le processus
- (SIGSTOP = 19) , CTRL-Z  : suspendre le processus
- SIGTERM = 15 : terminer proprement l’exécution du
processus
Institut Supérieur Des Etudes Technologique de Mahdia

Correction Examen Janvier 2005


Matière  : UNIX & LINUX Classe : IG3.1
Enseignants : Mr N.Mlayah Date  : 15/01/2005
Documents  : Non Autorisés Durée : 2 h
Correction Examen Janvier 2005
Exercice 1 :

1) find / -name "tcl" -print 2> /dev/null


Afficher la liste des fichiers nommés tcl qui se trouve dans l’arborescence commençant
par la racine et rediriger les erreurs vers la corbeille /dev/null

2) find /usr -name "*.sh" -exec grep "^#" {} \;

Afficher les lignes données en commentaire pour le fichiers d’extension sh du


répertoire /usr

3) ls -l /bin | sort
Afficher le contenu du répertoire /bin et le trier par ordre alphabétique

4) test –f fic; echo $?


Afficher la valeur 0 si fic existe et de type fichier ordinaire sinon autre valeur

5) grep 'ing$' chap* | tr [A-Z][a-z]


Remplacer les alphabets majuscules par des alphabets minuscules pour l’ensemble des
lignes qui se termine par ing des fichiers dont leur noms commencent par chap

6) grep “^Ali:” /etc/passwd|cut –d: -f4


Afficher le GID du nom de login Ali

7) rm f[a-z]
Supprimer les fichiers don’ le nom est composé exactement de deux caractères la
première f et la deuxième est une lettre de l’alphabet

8) ls -l /usr | grep '^d'| wc –l


Afficher le nombre des sous répertoires de /usr

9) echo fichier1 >fichier2


rediriger la chaîne fichier1 dans le fichier fichier2
10) cat fich 2> erreur
Afficher le contenu du fich et rediriger les erreurs vers le fichier erreur

Exercice 2 :

1. supprimer la liste des fichiers ordinaires vides


find . –size 0 –type f –exec rm {} \ ;

2. regrouper les fichiers de ali dans le répertoire /home/ali


find / -user ali –exec mv {} /home/ali \;

3. afficher la liste des fichiers ordinaires contenant le mot Linux


find / -type f –exec grep Linux {} \;
4. concaténer deux fichiers ordinaires et ensuite substituer chaque séquences
d’espaces successifs par un seul.
cat fic1 fic2|sed s/ */ /g

Exercice 3 :

Soit le sous arborescence suivant dans votre répertoire d’accueil.

Accueil
|
___________________________|___________________________
| | |
Syst Doc Prog
_______|_______ ______|______ _______|_______
| | | | | | | | |
dev etc bin Cours TP TD C Pascal Bash
_____|_____ | | | |
| | Sh1 Sh2 Sh3 Bash
passwd group j

Remarques:
6. les noms de fichiers ordinaires sont écrits en italique
7. les fichiers passwd et groupe sont des liens symbolique des fichiers système passwd et group
8. les fichiers Sh1, Sh2 et Sh3 sont des fichiers vide
9. le fichiers Bash est la concaténation des fichiers passwd et group.
10. le répertoire courant est : Prog

1. écrire la suite de commandes qui permet de créer les répertoires


$ mkdir –p /Accueil/Syst/dev /Accueil/Syst/etc/ /Accueil/Syst/bin
$ mkdir –p /Accueil/Doc/Cours /Accueil/Doc/TP /Accueil/Doc/TD
$ mkdir –p /Accueil/Prog/C /Accueil/Prog/Pascal /Accueil/Prog/Bash
2. écrire les ligne de commandes qui permet de créer les fichiers ordinaires
(passwd, group, Sh1, Sh2, Sh3 et Bash)
$ ln –s /etc/passwd /Accueil/Syst/etc
$ ln –s /etc/group /Accueil/Syst/etc
$ touch /Accueil/Doc/Cours/Sh1 /Accueil/Doc/TP/Sh2 /Accueil/Doc/TD/Sh3
$ cat /etc/passwd /etc/group > /Accueil/Prog/Bash/Bash

3. soit prog est le répertoire courant. Déterminer le chemin relatif et absolu du


fichier Sh2.
../Doc/TP/Sh2
/Accueil/Doc/TP/Sh2
4. déterminer les erreurs dans le résultat de la commande ls –l suivant :
drw-r----- 1 ali etud 1024 Oct 13 00 :31 C
-r—r—r-- 1 ali ig3 418 Oct 13 16:25 Bash
drwxrwxrwx 3 ali inf 1024 Oct 15 20:27 Pascal

Bash est un répertoire. Le nombre des liens physique est 2 pour le Bash, de même il
est égal à 2 pour les deux autres répertoires. La taille en octets pour le Bash est
1024.

Exercice 4 :
1) Ecrire un script appelé suite dont la syntaxe est la suivante :
suite U0 r n
$ cat suite
if [ $# -eq 3 ]
then
s=`expr $2 \* $3`
s=`expr $s + $1`
echo $s
else
echo “vérifiez la syntaxe !!”
fi
2) Ecrire un script appelé somme dont la syntaxe est la suivante :somme U0 r n p
$ cat somme
if [ $# -eq 4 ]
then
if [ $4 –le $3 ]
then
s=0
c=$4
#sous=`expr $3 - $4`
while [ $c –le $3 ]
do
s=`expr $s + $(./suite $0 $1 $c)`
c=`expr $c + 1`
done
echo $s
else
echo “ 0≤p≤n “
fi
else
echo “ Erreur de syntaxe“ 
fi

Vous aimerez peut-être aussi