TP 2 de Système 1ere Année Informatique 2005-2006
Exercice 1 : Mon premier script unix
Créez un fichier nommé affiche
contenant le texte
#!/bin/sh
echo $1 $3
- Rendez ce script exécutable
- Testez-le avec divers arguments
- ajoutez l'affichage du nombre d'arguments
- écrivez un script qui fasse la somme de ses trois premiers
arguments (utilisez
expr
)
- Écrivez un script qui prend comme argument un nom de
programme, et qui affiche la liste des id de process
correspondant à ce programme.
Exercice 2
Question 1
Écrire un programme shell qui affiche la valeur du plus grand
de ses arguments, qui sont supposés être des entiers.
Commencez donc par écrire l'algorithme correspondant !!!!
Question 2
Examinez la valeur de $? après appel du programme grep, selon
que grep a reconnu une ligne ou pas.
Écrire une fonction shell qui teste si son argument est un nombre.
- en utilisant grep ou egrep
- en utilisant le code d'erreur de
test
ou expr
.
Question 3
Modifiez le programme précédent pour qu'il affiche un message
d'erreur si l'utilisateur ne fournit pas les arguments corrects.
Question 4
Ajouter une option "-r" à votre programme. Si l'utilisateur
appelle le programme avec l'option "-r", c'est le plus petit nombre trouvé qui sera affiché.
Question 5
Ajouter une option "--" à votre programme, pour préciser qu'il n'y a pas d'option supplémentaire.
Question 6
Ajouter une option "-l" à votre programme. Si l'utilisateur
appelle le programme avec l'option "-l", les arguments seront
compris comme des chaînes de caractères, et le programme renverra
la plus longue d'entre elles (utilisez wc
).
Question 7
Testez votre programme en vérifiant qu'il
fonctionne même quand les arguments comportent des espaces.
Question 8
test
permet-il de comparer deux chaînes par ordre alphabétique (lexicographique) ?
- quelle commande connaissez-vous qui pourrait être utilisée pour cette comparaison ?
Ajouter une option "-s" à votre programme. Si l'utilisateur
appelle le programme avec l'option "-s", les arguments seront
compris comme des chaînes de caractères, et le programme renverra
la plus grande d'entre elles selon l'ordre lexicographique.
Exercice 3
- Utilisez ls, et éventuellement grep, pour obtenir la liste
des fichiers et répertoires de votre compte (un nom de fichier
ou de répertoire par ligne).
- Regardez le manuel de la
commande
uniq
.
- Écrivez un programme qui affiche combien de fois un nom de fichier ou de répertoire est utilisé sur votre compte.
- Écrivez un programme qui affiche les noms des fichiers ou répertoires qui sont utilisés plusieurs sur votre compte.
Exercice 4
La commande find.prend comme arguments une liste de répertoire où
démarrer une recherche, suivi d'un certain nombre d'action ou de conditions.
Ainsi,
find . -name '*.java' -print
affiche le nom de tous les fichiers java compris dans le répertoire courant ou un de ses sous répertoires.
En utilisant le manuel de find :
Question 1
Listez tous les fichiers .java et .class de votre compte.
Question 2
Listez tous les fichiers de plus de 10ko de votre compte.
Question 3
Listez tous les fichiers qui n'ont pas été lus depuis plus de 30 jour.