Sie sind auf Seite 1von 2

TP 3

Commandes GNU/linux
CORRECTION

Exercice N1 : rechercher des fichiers avec find, whereis et locate.


1. Rechercher tous les fichiers se terminant par .c dans le rpertoire /usr
find /usr -name " *.c " -print
2. Connatre les derniers fichiers modifis dans les 3 derniers jours dans toute l'arborescence (/)
find / -mtime 3 -print
3. Chercher dans toute l'arborescence, les fichiers ordinaires appartenant g1u1 , dont la
permission est fixe 755
find / -type f -user g1u1 -perm 755 print
4. Afficher lcran tous les fichiers qui se terminent par .c partir du rpertoire courant
find . name *.c exec cat {} \;
5. Rechercher des fichiers ayant pour nom core et ayant une taille suprieure 1Mo, suivi de
l'effacement de ces fichiers. Sachant que (2000*512 = 1Mo)
find . \(-name core -a size +2000 \) -exec rm {}\;
6. Recherchez toutes les instances dun programme appel startappli au sein du path . Quelle
commande utilisez-vous ?
which -a startappli
7. Affichez tous les fichiers ayant une taille infrieure 400 octets et ayant les droits 644. Utilisez
les paramtres -size et -perm de la commande find.
$ find / -size -400c -perm 644 -print
8. Affichez tous les fichiers dans votre rpertoire personnel ayant une taille infrieure 400 blocs.
$ find ~ -size - 4 0 0 -print
9. Listez tous les fichiers du systme vous appartenant modifis il a plus de 7 jours. Utilisez les
paramtres -user et -mtime.
$ find / -user seb -mtime +7 - l s
10. Recherchez tous les fichiers vides du systme nappartenant pas root et tentez de les
supprimer. Utilisez les paramtres -empty et -exec pour excuter un rm sur chaque fichier
trouv.

$ find / -type f -empty -exec rm -f {} \;


11. Indiquez o se situe la commande binaire ls. Utilisez la commande whereis pour cela :
$ whereis -b ls
12. Vous avez perdu le fichier lettre_importante.odf. O est-il, sans utiliser find ?
$ locate lettre_importante.odf

Exercice N2 : les filtres


1. rechercher toutes les lignes commenant par les caractres compris entre a et d dans le fichier
test
grep ^[a-d] carnet-adresse
2. obtenir les lignes contenant la chane de caractre Tunis dans le fichier test
grep Tunis carnet-adresse
3. Affichage de la liste des sous rpertoires
ls l | grep ^d
4. Affichage de la liste inverse
ls l | grep v ^d
5. Le fichier /etc/passwd est un grand classique sous Unix. Il se compose de sept champs spars
par des : : login:passwd:UID:GID:Commentaire:homedir:shell. Rcuprez la ligne de
lutilisateur root dans /etc/passwd.
grep ^ roo t : /etc/passwd
6. De cette ligne, rcuprez lUID de root.
grep ^ root : /etc/passwd | cut - d : - f 3
7. Comptez le nombre dutilisateurs contenus dans ce fichier laide dune redirection en entre
wc -l < /etc/passwd
8. Rcuprez la liste des GID, triez-les par ordre croissant et supprimez les doublons
cut - d : - f 4 /etc/passwd | sort -n | uniq
9. De l , extrapolez le nombre de groupes diffrents utiliss.
cut - d : - f 4 /etc/passwd | sort -n | uniq | wc -l
10. Convertissez tous les logins en majuscules
cut - d : -f1 /etc/passwd | tr " [ a - z ] " " [ A - Z ] "
11. Isolez maintenant la huitime ligne de /etc/passwd.
$ grep -n "" /etc/passwd | grep ^ 8 : | cut - d : - f 2 -