Vous êtes sur la page 1sur 8

Ministère de l’Enseignement Supérieur et de la Recherche Scientifique

Université de Carthage

Ecole Polytechnique de Tunisie

T.P Unix et programmation C

Compte rendu du T.PN°2

Travail élaboré par :

Chouchen Karim

A.U : 2020/2021
Ecole Polytechnique de Tunisie T.P UNIX A.U :2020/2021

I-But de ce T.P :
Dans ce T.P, on s’intéresse à l’utilisation du système d’exploitation LINUX, plus précisément la manipulation
des fichiers et aussi la mise en œuvre des fichiers de commande (Shell script).

Les travaux de cette séance doivent être placés dans le répertoire « tpunix2 », donc on va créer ce répertoire
contenant une copie du fichier «/etc/passwd » nommé « copiedepasswd ». Pour cela on fait :

On a utilisé les commandes suivantes :

• mkdir : pour créer le répertoire «tpunix2 ».


• cp : pour copier le fichier « /etc/passwd » dans ce répertoire.
• mv : pour renommer le fichier « /etc/passwd » en « copiedepasswd ».

II- Liste de commandes :


Une liste de commande est une ligne de commande constituée de plusieurs commandes séparées par des
opérateurs.

Àu cour de l’exécution de cette commande, on remarque qu’il existe un retard de 4 secondes puis l’affichage
de la date ce qui montre que le symbole « ; » permet de faire une exécution séquentielle des commandes, c’est-à-
dire que le système va exécuter la première commande (sleep 4) puis il va exécuter la deuxième commande (date).
Le retard de l’exécution de la deuxième commande est dûe à la première commande (sleep 4) car l commande
« sleep » permet de faire une pause ( la durée de la pause est exprimée en secondes par défaut).

La commande « ps » affiche les processus machines en cour d’exécution. L’opérateur « & » permet d’exécuter
deux commandes en parallèle c’est-à-dire, dans notre cas, la commande « sleep 4 ; date » et la commande « ps »
vont exécuter en même temps. Comme la commande « sleep 4 » permet de faire une pause de durée égale à 4
2
Ecole Polytechnique de Tunisie T.P UNIX A.U :2020/2021

secondes, pendant ces 4 secondes le système faire l’exécution de la deuxième commande « ps » et après 4
secondes, il affiche la date.

L’opérateur « && » est l’équivalent de « et logique » c’est-à-dire si les deux commandes sont vraies, il affiche la
valeur 0 et si l’une des deux commandes est fausse, il affiche la valeur 1. De même principe, l’opérateur « || » est
l’équivalent de « ou logique ».

III- Filtre :
Un filtre est un opérateur utilisé entre deux commande permettant d’utiliser le résultat sur « stdout » de la
première commande comme étant le « stdin » de la deuxième commande. Cet opérateur est symbolisé par « | ».

La commande « ls » permet d’afficher la liste des fichiers présents dans le répertoire courant. En ajoutant
l’option « -l », la commande « ls –l » permet d’afficher le type d’un fichier, la date de dernière modification et le
nom du fichier. Grâce au filtre « | », le résultat sur stdout de cette commande est le stdin de la commande « wc –
l ». La commande « wc » permet d’afficher le nombre de mots d’un fichier. En ajoutant « -l », la commande
« wc –l » permet d’afficher le nombre de ligne d’un fichier alors que la commande « wc –c » permet d’afficher le
nombre de caractère d’un fichier. Dans l’exemple au dessous, on a créé un fichier nommé « fic1 » contenant des
noms et des entiers séparé par un virgule. La commande « wc fic1 » affiche « 6 6 53 fic1 » c’est-à-dire, le
fichier fic1 contient 6 mots, 6 lignes et 53 caractères. Plus précisément, la commande « wc –l fic1 » affiche le
nombre des lignes du fichier fic1 (6 lignes) et la commande « wc –c fic1 » affiche le nombre des caractères du
fichier fic1 (53 caractères).

3
Ecole Polytechnique de Tunisie T.P UNIX A.U :2020/2021

On peut afficher le contenu des colonnes du fichier « fic1 » en employant la commande « cut ». En effet, la
commande « cut –c3 fic1 » permet d’afficher la colonne numéro 3 du fichier fic1, la commande « cut –c3,6
fic1 » permet d’afficher respectivement les colonnes numéro 3 et 6 du fichier fic1 et la commande « cut -c3-6
fic1 » permet d’afficher les colonnes de la 3ème colonne jusqu’à la 6ème colonne du fichier fic1.

La commande « cut –f2 –d “x “ fic1 » permet d’afficher le deuxième champ du fichier fic1 c’est-à-dire les mots
situés après le caractère “x“ dans le fichier fic1 comme elle montre la figure au dessous.

Afin de trier le contenu du fichier fic1 dans un ordre alphabétique croissant, on utilise la commande « sort
fic1 ». Si on veut trier le contenu du fichier fic1 dans un ordre alphabétique décroissant , il suffit d’ajouter « -r » à
la commande précédente.

Les commandes « grep “x “ fic1 » et « egrep “x“ fic1 » permettent d’afficher les lignes du fichier fic1
contenant le caractère “x“.

4
Ecole Polytechnique de Tunisie T.P UNIX A.U :2020/2021

IV- Redirections :
Une redirection permet de rediriger la sortie standard d’une commande vers un fichier. Le résultat sera placé
dans le fichier au lieu de s’afficher sur l’écran. Une redirection utilise les symboles « > » , « < » et « >> »

- « com > fic » : le résultat de la commande « com » est placé dans le fichier « fic ».
- « com >> fic » : le résultat de la commande « com » est ajouté au fichier « fic » sans effacé ce qui précède.
- « com < fic » : permet de rediriger l’entrée standard de la commande. Cette commande lira alors le fichier
« fic » au lieu du clavier.

Dans l’exemple suivant, on a créé un fichier nommé « fic2 », puis on a placé le contenu du fichier « fic1 » dans le
fichier « fic2 ».

La commande « expr » permet de faire un calcul simple, la somme de deux entiers par exemple, et d’afficher le
résultat sur l’écran. Si on veut sommer un entier et une chaine de caractère, la commande « expr » affiche un
erreur sur l’ecran du’on peut la réaliser une redirection en utilisant le symbole « 2> » comme elle montre la figure
suivante :

V- Les fichiers de commande ( shell script) :


1- le shell script ‘script1’ :

5
Ecole Polytechnique de Tunisie T.P UNIX A.U :2020/2021

On va écrire un programme qui permet de lire le nom d’un utilisateur qu’on suppose qu’il est connu par le
système et d’afficher les informations correspondantes et de les enregistrées dans le fichier « copiedepasswd »
sous le format suivant :

Nom de l’utilisateur:

Identifiant de l’utilisateur:

Type de Shell utilisé par défaut:

Répertoire HOME:

Le programme est le suivant :

Lors de l’exécution de ce programme le système affiche :

La commande « chmod a+x script1 » rend le script1 exécutable et la commande « ./script » permet de lancer le
script1.

2- le shell script ‘script2’ :


On va écrire le même script précédent sans l’hypothèse de connaissance de l’utilisateur par le système, c’est-à-
dire le nouveau script, le ‘script2’, va afficher un message d’erreur si l’utilisateur n’existe pas. Le script st le
suivant :

6
Ecole Polytechnique de Tunisie T.P UNIX A.U :2020/2021

Lors de l’exécution, le système affiche :

3- Le shell script ‘script3’ :

Dans ce script, on va garder les mémes fonctions que le script précédent, mais on va ajouter une autre fonction.
Ce script donne à l’utilisateur la possibilité de choisir entre quitter le script ou de recommencer de nouveau son
exécution. Le script est le suivant :

7
Ecole Polytechnique de Tunisie T.P UNIX A.U :2020/2021

Lors de son exécution, le système affiche :

Vous aimerez peut-être aussi