Réalisé par :Faker LANDOLSI MPSRT-FST
Correction TD5: Gestion des filtres
Exercice1:
Créer un répertoire Exercice1 sous votre répertoire personnel. Dans ce répertoire créer les
fichiers suivants:
tomate poire pomme cerise Fraise fraise courgette POMME3 afraise
En prenant la sortie du commande ls comme source, filtrez l’affichage selon les propositions
suivantes :
Le nom doit être Fraise ou fraise
« se » est en fin de nom
« ai » est présent dans le nom
Nom contenant un chiffre numérique
Nom contenant la chaîne « mm » ou « MM »
[etudiant@desktop ~]$ mkdir ~/Exercice1 && cd ~/ Exercice1 && touch tomate poire pomme cerise Fraise fraise
courgette POMME3 afraise
[etudiant@desktop ~]$ ls | grep "^[fF]raise$"
[etudiant@desktop ~]$ ls | grep "se$"
[etudiant@desktop ~]$ ls | grep "ai"
[etudiant@desktop ~]$ ls | grep "[0-9]"
[etudiant@desktop ~]$ ls | grep "[mM]\{2\}"
Exercice 2
1. Copiez le contenu du fichier /etc/passwd dans votre home directory sous le nom
exercice2.
[etudiant@desktop ~]$ cat /etc/passwd > exercice2
2. Affichez la ligne qui commence par le mot etudiant.
[etudiant@desktop ~]$ grep "^etudiant" exercice2
3. Afficher les lignes qui contiennent ro après les lignes qui contiennent r ou o.
[etudiant@desktop ~]$ grep "ro" exercice2
[etudiant@desktop ~]$ grep [ro] exercice2
4. Afficher les utilisateurs qui utilisent bash.
[etudiant@desktop ~]$ grep bash exercice2| cut -d: -f1
5. Affichez les utilisateurs nologin.
[etudiant@desktop ~]$ grep nologin exercice2| cut -d: -f1
6. Affichez les utilisateurs qui ont un uid compris entre 0 et 100.
[etudiant@desktop ~]$ grep 'x:[0-9]\{1,2\}:' exercice2 >test && grep 'x:100:' exercice2 >> test|cut -d: -f1 test
7. Afficher les utilisateurs qui ont un uid supérieur à 1000.
[etudiant@desktop ~]$ grep 'x:[0-9]\{4,\}:' exercice2|cut -d: -f1
8. Afficher les utilisateurs qui commencent par des chiffres
Réalisé par :Faker LANDOLSI MPSRT-FST
[etudiant@desktop ~]$ grep ^[0-9] exercice2
9. Affichez les utilisateurs qui commencent par majuscule.
[etudiant@desktop ~]$ grep ^[A-Z] exercice2
10. Affichez les utilisateurs qui ont des noms composés de 2 ou 3 caractères.
[etudiant@desktop ~]$ grep "^.\{2,3\}:" /etc/passwd
Exercice 3 :
1. Afficher à partir du fichier exercice2 les uid des utilisateurs seulement.
[etudiant@desktop ~]$ cut -d: -f3 exercice2
2. Remplacer les : dans le fichier exercice2 par une tabulation horizontale.
[etudiant@desktop ~]$ cat exercice2 | tr ':' '\t' \\[etudiant@desktop ~]$ cat exercice2 | tr ':' '\t' >exercice3
3. Afficher à partir du fichier exercice2 les champs username et Gecos.
[etudiant@desktop ~]$ cut -d : -f1,5 exercice2
[etudiant@desktop ~]$ cut -d$'\t' -f1,5 exercice3
4. Afficher les 6 premiers caractères du répertoire personnel de chaque utilisateur.
[etudiant@desktop ~]$ cut -d : -f1 exercice2| cut -b1-6|grep '.\{6\}'
[etudiant@desktop ~]$ cut -d$'\t' -f1 exercice3|cut -b1-6|grep '.\{6\}'
5. Trier l’affichage du fichier /etc/passwd selon les uid dans l’ordre croissant.
[etudiant@desktop ~]$ sort -t: -k 3,3 -n /etc/passwd
6. Trier l’affichage du fichier /etc/passwd selon les gid dans l’ordre décroissant.
[etudiant@desktop ~]$ sort -t: -k 4,4 -n -r /etc/passwd
7. Afficher le fichier exercice2 de façon inversée.
[etudiant@desktop ~]$ tac exercice2
8. Afficher le fichier /etc/passwd de façon numérotée avec une seule commande.
[etudiant@desktop ~]$ grep -n . /etc/passwd
9. Afficher les colonnes de username uid et home de seulement les utilisateurs que leurs noms
contiennent 2 ou 3 caractères et triez l’affichage selon leurs dossiers home.
[professeur@desktop ~]$ grep ^'.\{2,3\}:' /etc/passwd|cut -d: -f1,3,5|sort -t : -k6,6
[Link] le même travail demandé à la question 9 mais en triant l’affichage selon leurs uid.
[professeur@desktop ~]$ grep ^'.\{2,3\}:' /etc/passwd|cut -d: -f1,3,5|sort -t : -k3,3
Exercice 4 :
Cherchez dans toute l'arborescence les fichiers si dessous et redirigez les erreurs vers le
fichier poubelle :
Les fichiers qui se terminent par .c
Commençant par X ou x.
Dont les noms ne contiennent pas de chiffre.
Les fichiers qui vous appartiennent et ayant les droits fixés à 666 (-rw-rw-rw-).
Tous les fichiers core.
Tous les fichiers de type pdf.
Réalisé par :Faker LANDOLSI MPSRT-FST
Tous les fichiers ayant un sticky bit.
[etudiant@desktop ~]$ find / -name "*.c" -print 2>/dev/null
[etudiant@desktop ~]$ find / -name "[Xx]*" -print 2>/dev/null
[etudiant@desktop ~]$ find / -name "[!0-9]" -print 2>/dev/null
[etudiant@desktop ~]$ find / (-user etudiant -a -perm 666 -print)
[etudiant@desktop ~]$ find / -name "core"
[etudiant@desktop ~]$ find / -iname "*.pdf"
[etudiant@desktop ~]$ sudo find / -perm /o=t