Vous êtes sur la page 1sur 2

Universit Mohammed VAgdal

Facult des Sciences Rabat


Dpartement dInformatique

Anne Universitaire 20142015


Systmes d'exploitation I
Filire : SMI - S3

TP 3 : Redirections et Scripts Shell


1 Les redirections
1. Concatner les deux chiers /etc/passwd et /etc/group dans le chier /tmp/comptes
2. Afficher la liste de tous les processus actifs et sauvegarder le rsultat de la commande dans le chier
nomm psliste.
3. Chercher tous les chiers de nom contenant "passwd" depuis le rpertoire /. Sauvegarder le rsultat de votre commande (sans les messages d'erreurs) dans le chier listepasswd. Tous les messages
d'erreur doivent tre redirigs dans le chier spcial /dev/null.
4. Trier le chier /etc/passwd par ordre alphabtique et enregistrer le rsultat dans le chier TriPasswd.
5. Trier le chier /etc/passwd suivant l'UID et sauvegarder le rsultat la suite du chier TriPasswd de
la question prcdente.
6. Remplacer la squence de commandes suivantes par une seule commande :
1
2
3
4

cd /etc
ls > /tmp/liste.txt
cat /tmp/liste.txt
wc -l < /tmp/liste.txt

7. Afficher la liste de tous les processus de l'utilisateur root

2 Scripts Shell
1. Ecriver le script suivant nomm Parametres :
1

#!/bin/bash

2
3
4

# Parametres : Paramtre de position

5
6
7
8
9
10

Typeset by Hicham LAANAYA with XTEX December 2, 2014

11
12
13
14

echo "Nom du script en cours d'excution : $0"


echo "Nombre de paramtres transmis un script : $#"
echo "Numro du processus du script en cours d'excution $0 est : $$"
echo
echo
echo
echo

"Paramtre 1 du script $0 : $1"


"Paramtre 2 du script $0 : $2"
"Paramtre 3 du script $0 : $3"
"Liste de tous les paramtres du script $0 : $*"

exit 0

Une fois le script rendu excutable, lancez-le de diffrentes manires :


Sans paramtre.
Avec un seul paramtre.
Avec deux paramtres spars par un espace.
Avec trois paramtres spars par des espaces.
2. Crer un script nomm AcheRep qui affiche les caractristiques et le contenu d'un rpertoire dont
le nom est donn en paramtre du script.
3. Crer un script vi2 qui prend en argument un nom de chier. Le script ralise une auvegarde du
chier dans le rpertoire /tmp avant de lancer l'diteur de textes vi pour afficher et/ou modier son
contenu. Le chier de sauvegarde aura comme nom nom_parametre_1.numero_processus_script_en_cours.
1

4. Lancer le script suivant que vous nommerez CmdeSet :


1

#!/bin/bash

2
3
4

# Utilisation de la commande set

5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33

# Premire faon : set chaine_de_caractres


set Nom Prenom
echo $1
echo $2
# set `commande`
set `ls -ld /etc`
echo "Rsultat : $*"
echo "Paramtre 1 de
echo "Paramtre 2 de
echo "Paramtre 3 de
echo "Paramtre 4 de
echo "Paramtre 5 de
echo "Paramtre 6 de
echo "Paramtre 7 de
echo "Paramtre 8 de
Horaire=$8

resultat
resultat
resultat
resultat
resultat
resultat
resultat
resultat

:
:
:
:
:
:
:
:

$1"
$2"
$3"
$4"
$5"
$6"
$7"
$8"

# Rle de la variable IFS


set $Horaire
echo "Paramtre 1 de $Horaire est : $1"
echo "Paramtre 2 de $Horaire est : $2"
# On modifie le sparateur de champs
IFS=:
echo "Le sparateur de paramtre est : $IFS "
set $Horaire

34
35

echo "Paramtre 1 : $1"


echo "Paramtre 2 : $2"

36
37

exit 0

Que permet la variable IFS ?


5. Crer un script nomm InfoSys qui affiche les informations suivantes du systme :
Architecture matrielle.
Nom de la machine
Nom du systme d'exploitation
Version du noyau.
La commande uname est invoqu une seule fois dans le script. Chaque information est prcde
de son libell ci-dessus.
6. Crer un script nomm InfoDate qui affiche la date sous la forme : nom_du_jour-mois-anne et l'heure
sous la forme suivante : il est xx heures et yy minutes et zz secondes.