1 PROJET. 2 3 Université Sidi Mohammed Ben Abdellah Faculté des sciences Dhar El Mahraz FES Date...

Preview:

Citation preview

1

PROJET PROJET

2

3

Université Sidi Mohammed Ben AbdellahFaculté des sciences Dhar El Mahraz FES

Date de soumission : 31 / 05 / 2012 à 10:00

Module : Système d’exploitation

Réalisées par : Kamoune Mostafa

Laasri Nadia

Sous la direction de : Pr Mohammed MEKNASSI

4

PLAN DU PROJET PLAN DU PROJET

1ère PARTIE : Présentation du ProjetI – Objectifs du ProjetII- programmation shell II- Exemple d’un Editeur « VIM »IV - Durée, phase d’exécution

2ème PARTIE : Etude algorithmique du projetI- Algorithme II- Les Cas Limites

CONCLUSION:

1ère PARTIE1ère PARTIE

5

Présentation du ProjetPrésentation du Projet

1ère PARTIE1ère PARTIE

6

I – Objectifs du projet

Ecrire un script ‘MODIF’ qui nous permettent de :

1- chercher les fichiers images à partir de notre home qui ont été modifiées depuis une semaine . Les déplacer toutes dans le répertoire ‘REP_IMG’ de notre home .Ainsi , transformons tout caractères majuscule de ce répertoire (les fichiers images ) en minuscules *( à ce niveau le script MODIF doit s’exécuter avec au moins 4 paramètres )

1ère PARTIE1ère PARTIE

7

2- chercher dans la même arborescence les fichiers texte ,qui ont un droit d’accès en lecture seulement . En détruire ceux qui commencent par ‘us’ ou ‘fr’ , les rendre accessibles en exécution pour tout le monde et les déplacer dans le répertoireREP_TXT de notre home . Ensuite nous proposons à l’utilisateurs de visualiser page par page chaque fichier texte du répertoire spécifie en argument REP_TXT . Le script affichera pour chaque fichier texte « voulez vous visualiser le fichier ? » En cas de réponse positive , il lancera more avant de passer à l’examen du fichier suivant .

I – Objectifs du projet

I – Objectifs du projet I – Objectifs du projet

8

1ère PARTIE

3- chercher dans la même arborescence les fichiers C exécutables dont la taille est supérieur à 100 bloques ou bien ceux inferieurs à 50 bloques et les déplacer dans le répertoire ‘REP_EXE’ de votre home ,Exécuter le fichier ‘C.EXE ’ qui se trouve dans REP_EXE (qui s’exécute indéfiniment , et qui occupe un grand espace mémoire ), Affiche le temps CPU de ce processus ainsi que l’espace mémoire qu’il occupe.

II- programmation shell

9

Un programme shell ou un script est un fichier contenant une série d’ordre que l’on va sous mettre à un programme externe pour qu’il les exécute. Ce programme est appelé interpréteur de commandes .

Sous Unix, on appelle shell l’interpréteur de commandes qui fait office d'interface entre l'utilisateur et le système d’exploitation .

=> Il existe de nombreux shells qui se classent en deux grandes familles : la famille C shell (ex : csh, tcsh) la famille Bourne shell (ex : sh, bash, ksh).

II- Exemple d’un Editeur « VIM »

10

* Vim : ( c’est l’éditeur utilise dans notre projet ) c’est un éditeur du texte , il s'agit d'une version améliorée d'un des plus anciens éditeurs en console, qui s'appelait « Vi »

Vim possède 3 modes de travail différents : Mode interactif : c'est le mode par défaut par lequel on commence. C’est un mode puissant qui permet de se déplacer dans le texte, supprimer une ligne, copier/coller du texte, aller à une ligne précise, annuler ses actions, etc.

Mode insertion : ça c'est le mode d’écriture . Pour rentrer dans ce mode, il y a plusieurs possibilités. Une des plus courantes est d'appuyer sur la touche "i ‘’ (insertion). Pour en sortir, il faut appuyer sur la touche "Echap".

1ère PARTIE

II-Editeur VIM II-Editeur VIM

11

Mode commande : ce mode permet de lancer des commandes telles que "quitter", "enregistrer", etc.aussi l'utiliser pour activer des options de Vim (comme la coloration syntaxique, l'affichage du numéro deslignes...). Pour activer ce mode, on doivent être en mode interactif et appuyer sur la touche deux-points ":".

1ère PARTIE

II – durée et phase d’exécution II – durée et phase d’exécution

12

1ère PARTIE

13

2ème PARTIE

ETUDE ALGORITHMIQUE DU ETUDE ALGORITHMIQUE DU PROJETPROJET

I- ALGORITHMEI- ALGORITHME

14

Le script MODIF se présente sous forme un menu à 3 choix chaqu’un d’eux s ’exécute avec un ensemble de paramètres :

1er choix

..

15

2ème PARTIE

I- ALGORITHME

1er choix :Les commandes utilisait produit un cycle qui se déroule au bout de l’arborescence afin de chercher les fichiers détecter par le changement

Chercher Chercher

16

17

I- ALGORITHME

1er choix :

find ~ -name "*$extension" \( -ctime -"$ct" -a -mtime -"$mt" \) -ok mv -i {} $rep \ ; for nom in "*$extension" do mv -i $nom ` echo $nom | tr '[a-z]' '[A-Z]' ` done

2ème PARTIE

18

2ème PARTIE

I- ALGORITHME

2eme choix :

2eme choix :

I- ALGORITHMEI- ALGORITHME

19

2ème PARTIE

for var in ` find ~ -type f -perm 444 ` do nom=` echo "$var" | xargs -i basename {} `

case $nom in

$chaine1*) echo –e La supression de fichier "$var " rm -i "$var" ;;

$chaine2*) echo -e La supression de fichier "$var » rm -i "$var" ;;

20

2ème PARTIE

I- ALGORITHME

* ) echo -e Changement de mode et deplacement

chmod +x "$var" 2>/dev/null mv -i "$var" "$rep"

echo -e Voulez-vous visualiser le fichier "$var" oui/non read choix cd "$rep" if test "$choix" = "oui" then more <"$nom" 2>/dev/null fi ;; esac

21

2ème PARTIE

I- ALGORITHME

3eme choix :

22

2ème PARTIE

I- ALGORITHME

find ~ -name "*.c" \( -size -"$tmax" -o -size +"$tmin" \) -exec mv -vi {} $rep \;

for nom in `ls *.c` do if [ -x "$nom" ]

then var=`echo "$nom" | cut -d. -f1 ` gcc "$nom" -o "$var"

echo ` time -CPU ./$var` else echo DESOLE : Impossible d´executer "$nom" fi done

3eme choix :

23

2ème PARTIE

II - Cas LIMITES

1er choix :

# Extension read extension until [ "$extension" = ".jpg" -o "$extension" = ".png" ] do read extension done

# date de création read ct while [ -z `echo "$ct" | grep ^[0-9][0-9]*$` ] do read ct done

II - Cas LIMITES

24

# date de modification read mt until [ ! -z `echo $mt | grep ^[0-9][0-9]*$` ] do read mt done

# repertoire de travail read rep while [ ! -d "$rep" ] do

read rep done

II - Cas LIMITES II - Cas LIMITES

25

2eme choix :

# chemin du repertoire read rep while [ ! -d "$rep" ] do read rep done

II - Cas LIMITES II - Cas LIMITES

26

# la taille minimal read tmax while [ -z `echo "$tmax" | grep ^[0-9][0-9]*$` ] do read tmax done

# la taille maximal read tmin until [ ! -z `echo $tmin | grep ^[0-9][0-9]*$` ] do read tmin done

3 eme choix: :

II - Cas LIMITES II - Cas LIMITES

27

# le chemin du répertoire : read rep while [ ! -d "$rep" ] read rep done

28

Conclusion

Notre projet à visé le but de realisee un menu de 3 choix qui donne la possibilité à un utilisateur d’inclure un requête développé par ses propres soins . Lorsqu’un utilisateur commit uniquement un problème, il a la possibilité de rechoisir . Cependant, le temps et la complexité de cette tâche ont été les principaux facteurs qui nous ont rebuté. Cette partie pourra peut être faire l’objet d’un autre projet . Ce projet nous a permis d’appliquer les connaissances qui nous ont été inculquées au cours ‘ systeme d’exploitation’ de ces 3 mois de Maîtrise à l’université des sciences Dhr lmehraz .Enfin ce projet aura été l’occasion de découvrir et d’utiliser des outils dont nous n’avions pas la moindre idée de leurs existences.

References References

29

LIVRES :

Dutrex, UNIX les Bases indispensables . Christophe blaess Shell Linux et Unix par la pratique . STANFIELD,R,WL,SMITH Linux – guide de l´administrateur . SITEWEB :

http://doc.ubuntu-fr.org/projets/ecole/scripting/initiation_au_shell http://www.siteduzero.com/tutoriel-3-88344-vim-l-editeur-de-texte-du- programmeur.html http://cyberzoide.developpez.com/unix/files.php3#wc

ANNEXESANNEXES

30

31

32

33

34

35

36

37

38

39

40