:: Enseignements :: Licence :: L2 :: 2008-2009 :: Système ::
![[LOGO]](http://igm.univ-mlv.fr/ens/resources/mlv.png) | Shell Unix |
Exercice 1 - Navigation dans les répertoires
A l'aide de la commande
ls déterminer :
- le contenu de votre répertoire courant ;
- réaliser l'affichage avec un nom de fichier par ligne (man ls) ;
- afficher les fichiers cachés ;
- afficher uniquement les fichiers se terminant pas .c.
Expliquer ce que fait la commande suivante :
ls -l | grep -v '^d'
Exercice 2 - Statistiques sur un fichier
A l'aide de la commande
wc déterminer :
- le nombre de lignes de votre projet du semestre précédent ;
- la longueur de la plus longue ligne ;
- le nombre de mots (uniquement).
A l'aide de la commande
file déterminer :
- le type du fichier (texte, image, etc.) ;
- le format des données dans le cas de fichiers multimédias ;
- Le système d'encodage dans le cas de fichiers de texte.
Exercice 3 - Chaînage de commandes
Il est possible grâce à un tube (symbôle |) de chaîner plusieurs commandes.
Déterminer avec les commandes ls et wc le nombre d'étudiants appartenant
à la même filière que vous (utiliser le répertoire /home/).
Exercice 4 - Variables
Taper les commandes suivantes :
-
VAR="ls -l | grep -v '^d'"
echo $VAR
-
VAR=`ls -l | grep -v '^d'`
echo $VAR
-
VAR='ls -l | grep -v '^d''
echo $VAR
-
VAR=$(ls -l | grep -v '^d')
echo $VAR
Expliquer le résultat de ces différentes commandes.
Exercice 5 - Affichage des arguments d'un script
Ecrire un script qui affiche :
- le premier argument passé au script ;
- tous les arguments passés au script.
Exercice 6 - Récupération d'informations sur votre système
Ecrire un script qui à l'aide de la commande
cat détermine les
informations suivantes (indication : utiliser les fichiers du répertoire
/proc/) :
- fréquence de votre processeur ;
- quantité de mémoire vive.
Exercice 7 - Table de multiplication
Ecrire un script qui affiche les tables de multiplication.
Lorsque le script est lancé avec, par exemple, les arguments
5
et
10, il affichera le résultat suivant :
0 x 5 = 0
1 x 5 = 1
2 x 5 = 10
3 x 5 = 15
4 x 5 = 20
5 x 5 = 25
6 x 5 = 30
7 x 5 = 35
8 x 5 = 40
9 x 5 = 45
10 x 5 = 50
Exercice 8 - Liste des sous répertoires
Ecrire (sans utiliser find) un script qui affiche les noms
de tous les sous-répertoires accessibles à partir d'un répertoire passé
en argument du script.
Exercice 9 - Lecture sur l'entrée standard
Ecrire un script qui permet de saisir un nom et un prénom, puis les affiche
en sens inverse. Pour se faire, utiliser la commande read.
Exercice 10 - Exercice conditionnel
Ecrire un script qui affiche si vous êtes :
- à la racine de votre répertoire personnel ;
- dans le répertoire /etc ;
- dans le répertoire /bin ;
- etc.
Les if en cascade ne sont pas toujours très lisibles,
surtout lorsqu'il existe plusieurs conditions très similaires.
Pallier à ce problème de lisibilité en utilisant l'instruction case.
Exercice 11 - While ou until
Ecrire un script qui teste si un mot de passe saisi par l'utilisateur
correspond au mot de passe spécifié « en clair » dans votre script.
Utiliser tout d'abord l'instruction while puis l'instruction until.
Quelle différence existe-t-il entre ces deux commandes ?
Exercice 12 - Taille d'un répertoire
Ecrire un script size-rep.sh qui permet de connaître la taille
d'un répertoire (c'est-à-dire la somme de la taille de tous ses fichiers)
passé en argument.
Bonus : inclure la taille de tous les sous-répertoires dans ce calcul.
Exercice 13 - QCM
Ecrire un script permettant de répondre à un formulaire à choix multiples.
Malheureusement, de nombreux utilisateurs vont faire des fautes de frappes...
Pour éviter de devoir réaliser de nombreux tests bien souvent illisibles,
utiliser la commande select.
Exercice 14 - Un petit jeu
Ecrire un script qui permet de dire à l'utilisateur s'il est proche (brulant),
éloigné (gelé), etc. d'un nombre mystère.
Exercice 15 - La commande find
Utiliser la commande find pour retrouver tous les fichiers de nom
a.out, tous les fichiers dont le nom se termine par ~ et
tous ceux dont le nom commence par #.
Ecrire un script clean.sh qui supprime tous les fichiers trouvés
avec la commande find précédente. Attention : on n'utilisera pas
le symbole | pour effectuer cette action, mais uniquement les
paramètres de la commande find.
Exercice 16 - Variables d'environnements
- afficher toutes les variables d'environnements ;
- afficher toutes les variables d'environnements dont les
valeurs associées contiennent le mot fr ;
- écrire un script qui demande à l'utilisateur sa nationalité (on se limitera
à anglais et au français dans les résultats) et qui affiche le résultat entré
par l'utilisateur ;
- modifier les variables d'environnements obtenues précédemment en fonction du résultat
entré par l'utilisateur.
Exercice 17 - Bonus : Le bashrc
A la racine de votre compte, ouvrir le fichier .bashrc.
Ajouter des raccourcis qui permettent d'exécuter les commandes size-rep.sh et
clean.sh quel que soit votre répertoire courant, en tapant simplement
les commandes size-rep et clean.
Exercice 18 - Bonus : Session X
A partir du mode console (ctrl+Alt+F?),
ouvrez une nouvelle session X. Pour se faire tapez la commande X :3&.
Vous pouvez maintenant lancer un gestionnaire de fenêtre ou un terminal dans
cette nouvelle session.
Exercice 19 - kill by name
A l'aide de la commande ps qui affiche la liste des processus, récupérer
à l'aide des commandes grep et cut l'identifiant de tous les processus
vous appartenant et dont le nom est passé en argument, puis les terminer à l'aide de la
commande kill.
Exercice 20 - Compression de projets
Ecrire une commande qui à l'aide des commandes find et zip archive dans
un fichier .zip uniquement les fichiers Makefile, .c et
.h qui constituent un projet. Ajouter la possibilité de choisir la commande
tar à la place de zip.
© Université de Marne-la-Vallée