SlideShare une entreprise Scribd logo
1  sur  6
Télécharger pour lire hors ligne
Institut Supérieur des Etudes Technologiques de Jendouba
Département Technologies de l’Informatique
2ème
année Licence Appliquée
Atelier Système 2 (Linux)
Amir Souissi
TP N° 6
Filtres et Expressions Régulières
Objectifs
• Utiliser les commandes des filtres simples : sort, head, tail, more, tee, uniq, wc, tr, cut,
• Maitriser les expressions régulières (ou rationnelle),
• Utiliser les commandes de filtres à expressions régulières : find, grep,
• Utiliser les commandes find et grep avec –exec et xargs pour l’exécution de commandes et le passage
d’arguments,
• Effectuer des commandes complexes combinant redirection, tube et expressions régulières.
1) Les Filtres Simples
head et tail
Les commandes head et tail permettent d’afficher les n premières (respectivement dernières) lignes d’un fichier.
Afficher les 5 premières, puis les 5 dernières lignes du fichier /etc/passwd.
Afficher la 7ième ligne de ce fichier (et elle seule), en une seule ligne de commande.
more et less
La commande more et less permettent d’afficher un fichier page par page.
Afficher le contenu du fichier /etc/passwd page par page
sort
La commande sort permet de trier un fichier dans l’ordre croissant ou décroissant selon nue colonne.
Afficher les utilisateurs inscrits dans le fichier /etc/passwd dans l’ordre croissant des uid.
tee
La commande tee écrit l’entrée standard simultanément sur la sortie standard et sur le fichier passé en paramètre.
Écrire une commande qui affiche "Bonjour" à l’écran et en même temps crée un fichier nommé
"Salutation.txt" dont le contenu est le même message.
uniq
La commande uniq permet de détecter les lignes en doublons successifs dans les fichiers et de les supprimer (dans
le résultat et non pas dans le fichier)
Créer un fichier qui comporte des noms de personnes par ligne avec quelques noms en doublons.
Afficher dans la console la liste des noms sans doublons successifs.
Afficher le nombre d’occurrence de chaque ligne du fichier.
Afficher uniquement les lignes qui se répètent.
wc
La commande wc permet de compter le nombre de lignes, de mots ou de caractères depuis l’entrée standard ou un
fichier.
Compter le nombre d’utilisateurs et le nombre de groupes.
tr
La commande tr (translate) permet traiter une chaine de caractère par une autre chaine et le résultat est envoyé sur
la sortie standard. (les données à traiter sont redirigés en entrée par fichier)
Afficher le fichier /etc/passwd en remplaçant les caractères « ,,, » par des « ... » (dans le champ
commentaire).
Obtenir le résultat précédent page par page.
Que font les commandes suivantes :
tr 'a,/' 'A;_' < fich1 > fich2 avec fich1 est une copie du fichier /etc/group par redirection.
tr 'a-z' 'A-Z' < fich1 | tee fich2
tr –s [:blank:] ‘t’ < fich1 > fich2
tr –d [:digit:] < fich1 |sort | uniq > fich2
cut
La commande cut permet d’afficher une portion de chaque ligne du fichier passé en paramètre ou à défaut de
l’entrée standard. cut présente 2 formes suivant que l'on sélectionne des colonnes de caractères ou qu'on distingue
des champs séparés par un caractère précis.
Conserver uniquement les caractères 2 et 5 de chaque ligne du fichier.
Conserver les caractères du premier au troisième.
Conserver les caractères du troisième au dernier.
Que fait la commande suivante cut –d ":" –f 1,4 /etc/group
Afficher uniquement les login des utilisateurs inscrits dans /etc/passwd dans l’ordre décroissant.
2) Les Filtres à Expressions Régulières
Les expressions régulière (ou rationnelle) sont des suites de caractères ordinaires ou spéciaux qui ont des
significations particulières permettant de faire des sélections.
• ^ début de ligne
• . un caractère quelconque
• $ fin de ligne
• [...] plage de caractères permis
• [^...] plage de caractères interdits
• * 0 à n fois le caractère ou regroupement de caractères précédent
• c protection du caractère c
• {n} pour définir le nombre de répétition n du caractère placé devant
• {n,} pour définir le nombre de répétition n du caractère placé devant
• {n,x} entre n et x fois le caractère précédent
• (…) mémorisation d'une ER
• + une ou plus occurrences du caractère ou regroupement de caractères précédent
• ? 0 ou 1 occurrence du caractère ou regroupement de caractères précédent
• {n} pour définir le nombre de répétition n du caractère ou regroupement de caractères placé devant
• {n,} au moins n fois le caractère ou regroupement de caractères précédent
• {n,x} entre n et x fois le caractère ou regroupement de caractères précédent
Le caractère d’échappement «  »permet de ne pas interpréter le caractère suivant par le shell. (pour dire qu’il
fait partie de la syntaxe de la commande)
Exemples :
L'expression [a-z][a-z] * cherche les lignes contenant au minimum un caractère en minuscule. [a-z] caractère
permis, [a-z]* recherche d'occurrence des lettres permises (entre 0 et plus).
L'expression ^[0-9]{4}$ a pour signification, du début ^ à la fin du fichier $ ,recherche les nombres [0-9] de 4
chiffres {4}.
Commande FIND
La commande find permet de rechercher des fichiers et des répertoires. C’est une commande indispensable,
très puissante mais assez complexe car contient beaucoup d’options.
Syntaxe: find < répertoire de recherche> <option > <critère de recherche> <action sur le résultat trouvé>
Exemple : find / -name *.txt -print cherche tous les fichiers qui commencent par une suite de caractères et
se terminent par .txt puis les afficher.
Les options de find ne sont pas sur une seule lettre mais on prend le nom entier de l’option et avec un seul
tiret ( -) . (Contrairement aux autres commandes qui utilisent les doubles tirets (--)).
Remarque : pour ne pas avoir les messages d’erreurs de permissions non accordés, on utilise un sudo avant le find.
Options :
Option -lname : cherche dans les cibles les link (liens symboliques)
find / -lname lien* -print
Option -iname : pour faire uen recherche à partir d’une expression rationnelle.
find / -iname "[pt]louf.txt" -print qui commence par un p ou un t puis louf.txt
Option -type : indique à find quel type d’objet on recherche
find /home -name fich1 -type f -print f pour dire qu’on cherche que des fichiers. d pour les
répertoires. l pour les liens symboliques.
Options de recherche par date :
-atime : la dernière fois où le fichier ou dossier a été accédé
-ctime : la dernière fois où il a été changé de statut (permissions, propriétaire, …)
-mtime : le temps où on a modifié son contenu.
a c m
Signification accès changement de statut modification de contenu
Exprimé en jour atime ctime mtime
Exprimé en minute amin cmin mmin
Le chiffre qui suit –atime ou –ctime ou –mtime est exprimé en nombre de jours.
find /home -atime 1 -print tous les fichiers qui ont été accédé il y a un jour.
find /home -amin 1 -print tous les fichiers qui ont été modifiés il y a une minute.
Pour la valeur on peut lui ajouter un + ou un -. (+1 veut dire plus d’un jour et -1 veut dire moins d’un jour)
Option -newer : cherche les fichiers qui ont été modifiés après fich1.
Option -anewer : chercher tous les fichiers qui ont été accédés après fich1.
Option -cnewer : pour les fichiers changés après fich1
sudo find . -anewer fich1 -print
Option -size : recherche par taille
Les valeurs possibles de –size sont b pour bloc c pour caractère (octet) et k pour kilooctet
find . -size 12k -print les fichiers qui font 12 kilo octets. (+12k pour plus de 12 kilooctets,
et -12k pour moins de 12 kilooctets)
Option -empty : cherche les fichiers qui sont vides. (taille 0)
find ~ -empty -print
on peut combiner plusieurs critères :
find ~ -empty -name *sources* -type f -print chercher tous les objets de type fichier qui
sont vides et dont le nom contient le mot sources.
Exécuter des commandes sur le résultat de find : l’option -exec et la commande xargs
Rappel : find < répertoire de recherche> <option > <critère de recherche> <action sur le résultat trouvé>
-exec commande
-print est une option de commande qui permet de réaliser l’action d’affichage sur le résultat trouvé par la
recherche.
Pour réaliser une action sur les fichiers trouvés (de copie, de suppression, …), on utilise l’option -exec suivie
de la commande à réaliser.
Le fichier en cours sur lequel portera l’action de la commande après le –exec est repéré par les {} et elle doit
se terminer par un ; précédé par le caractère d’échappement .
Exemple : find . -name fich* -exec rm {}  ; Effacer les fichiers qui commencent par fich du rep. courant.
Pourquoi selon vous doit on précéder le ; par un backslash ?
La solution avec –exec est lourde car elle crée un processus pour chaque fichier traité.
xargs commande
On peut rediriger le résultat de find avec un pipe et xargs.
La commande xargs sert à convertir l’output d’une commande en une suite d’arguments pour les envoyer à
une autre commande. Elle s’utilise après le pipe d’une commande.
find . mtime +30 -name '*~' | xargs rm
Que fait cette commande?
Ajouter l’option –p à xargs et commenter ?
Exercice A : Commande find
1. Afficher la liste des fichiers .config situés sous le répertoire /usr/include.
2. Afficher la liste des fichiers plus vieux que 3 jours situés sous votre répertoire de connexion.
3. Afficher la liste des fichiers de /usr/include dont le nom commence par a, b ou c.
4. Modifier la commande de la question précédente pour qu'au lieu d’afficher le résultat, celui-ci soit placé
dans un fichier nommé "Abc.list" de votre répertoire de connexion.
5. Chercher les fichiers .tex modifiés plus récemment que bofichier.tex, mais il y a plus de 5 jours.
6. Rechercher un fichier modifié il y a moins de 12 jours et dont la taille soit supérieure à 30 K
7. Comment chercher tous les fichiers dont les noms commençant par un «a» majuscule ou une minuscule,
suivi d'éventuellement quelques lettres ou chiffres, et se terminent par un chiffre entre 3 et 6.
8. Trouver les répertoires vides sous le répertoire personnel puis les supprimer.
Commande GREP
Une autre commande très utilisée et très pratique est la commande grep. Elle sert à faire une recherche à l’intérieur
d’un ou de plusieurs fichiers.
Pour mieux exploiter grep, il faut maitriser les expressions régulières.
Syntaxe : grep <patern en expression régulière> <où chercher>
Exemples : grep "^#" /etc/fstab chercher toutes les lignes qui commencent par un # (les commentaires) dans
fstab.
grep "PATH" /etc/* cherche le mot PATH dans tous les fichiers du répertoire /etc.
Remarque : Le pattern trouvé est coloré en rouge dans le résultat trouvé par grep.
Exemples : grep "print" /etc/fstab afficher les lignes qui contiennent le mot « print »
grep "^#$" /etc/fstab afficher les lignes avec des commentaires vides.
grep "^$" /etc/fstab afficher les lignes vides
Attention ! Les critères de recherches sont sensibles à la casse.
Option -i : rendre la recherche non sensible à la casse.
grep –i "Print" /etc/fstab insensible à la casse. Un Print avec P équivaut un print avec p.
Option –v : renverse le critère de recherche (donne l’inverse)
grep –iv "Print" /etc/fstab affiche toutes les lignes qui ne comportent pas le mot « print »
insensible à la casse.
Option –c : donne le nombre de lignes qui ont été trouvés (c comme count).
grep –ivc "Print" /etc/fstab nombre de lignes qui ne comportent pas un « print » insensible à la
casse.
Option –n : affiche en plus le numéro de la ligne trouvée.
Option -w: cherche le mot complet correspondant au critère et non pas une partie du mot.
sudo grep –iw "Print" . Chercher le mot print dans tous les fichiers du répertoire courant.
Option -l : donne seulement le nom du fichier dans lequel on a trouvé une correspondance avec le
critère.
Option -r : fait une recherche récursive dans tous les sous répertoires.
Remarques :
La variante egrep utilise une syntaxe étendue d’expression régulière.
La variante fgrep n’utilise pas d’expression régulière mais une liste de mots pour un usage plus simple.
Exercice B : commande grep
1. Trouver les lignes vides
2. Chaine contenant au minimum 3 « p »
3. Mot terminé par « age »
4. Mot terminé par « guage » ou « gage »
5. Chaine contenant « rla »
6. Lignes terminées par « ans »
7. Chaines contenant les sous-chaines « alpha » ou « exe »
8. Ligne ne commençant pas par un chiffre
9. Ligne commençant par une voyelle ou un chiffre
10. Ligne ne commençant pas par une voyelle
11. Ligne commençant ou se terminant par un chiffre
12. Les lignes sui font moins de 10 caractères.
Exercice C : Combiner find, grep, xargs et le pipe
1. Chercher les fichiers cachés (dont le nom commence par un .) dans le répertoire courant, et qui contiennent
le mot « term » pour ensuite les supprimer.
2. find ~ -type f -exec grep -il ‘term’ {} ; Que fait cette commande ? réaliser la même chose avec un
pipe.
3. Rechercher dans le répertoire courant tous les fichiers normaux (sans les répertoires, fichiers spéciaux), et
rechercher dans ces fichiers tous ceux contenant la chaîne toto.
4. Testez la commande : find . -type f | xargs grep matrice, puis la commande find . -type f | grep matrice.
Remarquez les résultats.
5. Vous chercherez dans votre répertoire «fic_C» les fichiers d'extension «.c» dans lesquels se trouvent une
ligne contenant l'instruction «if» et afficherez les lignes. Pour cela vous utiliserez 2 méthodes, une avec le
pipe et l'autre avec l'option «exec». Quelles sont les différences.
6. Rechercher tous les fichiers d'anciennes sauvegardes (qui terminent par '' ~'') qui ont été créés les 5 derniers
jours ou depuis au moins 10 jours, et supprimer ceux qui contiennent au moins un ''if''.

Contenu connexe

Tendances

Support du cours : Systèmes d'exploitation 2 (linux)
Support du cours : Systèmes d'exploitation 2 (linux)Support du cours : Systèmes d'exploitation 2 (linux)
Support du cours : Systèmes d'exploitation 2 (linux)Faycel Chaoua
 
POO Java Chapitre 4 Heritage et Polymorphisme
POO Java Chapitre 4 Heritage et PolymorphismePOO Java Chapitre 4 Heritage et Polymorphisme
POO Java Chapitre 4 Heritage et PolymorphismeMouna Torjmen
 
Cours python avancé
Cours python avancéCours python avancé
Cours python avancépierrepo
 
Examen principal- php - correction
Examen principal- php - correctionExamen principal- php - correction
Examen principal- php - correctionInes Ouaz
 
TD2 - UML - Correction
TD2 - UML - CorrectionTD2 - UML - Correction
TD2 - UML - CorrectionLilia Sfaxi
 
Systèmes d'Exploitation - chp3-gestion mémoire
Systèmes d'Exploitation - chp3-gestion mémoireSystèmes d'Exploitation - chp3-gestion mémoire
Systèmes d'Exploitation - chp3-gestion mémoireLilia Sfaxi
 
Chapitre 4 heritage et polymorphisme
Chapitre 4 heritage et polymorphismeChapitre 4 heritage et polymorphisme
Chapitre 4 heritage et polymorphismeAmir Souissi
 
Systèmes d'Exploitation - chp1-introduction
Systèmes d'Exploitation - chp1-introductionSystèmes d'Exploitation - chp1-introduction
Systèmes d'Exploitation - chp1-introductionLilia Sfaxi
 
POO Java Chapitre 2 Encapsulation
POO Java Chapitre 2 EncapsulationPOO Java Chapitre 2 Encapsulation
POO Java Chapitre 2 EncapsulationMouna Torjmen
 
Chapitre 5 classes abstraites et interfaces
Chapitre 5  classes abstraites et interfacesChapitre 5  classes abstraites et interfaces
Chapitre 5 classes abstraites et interfacesAmir Souissi
 
Cours linux complet
Cours linux completCours linux complet
Cours linux completaubin82
 
Chapitre 2 classe et objet
Chapitre 2   classe et objetChapitre 2   classe et objet
Chapitre 2 classe et objetAmir Souissi
 
Systèmes d'Exploitation - chp2-gestion des processus
Systèmes d'Exploitation - chp2-gestion des processusSystèmes d'Exploitation - chp2-gestion des processus
Systèmes d'Exploitation - chp2-gestion des processusLilia Sfaxi
 
Correction Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdfCorrection Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdfslimyaich3
 
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...ENSET, Université Hassan II Casablanca
 
Plateforme d’e learning
Plateforme d’e learningPlateforme d’e learning
Plateforme d’e learningEl Aber Haythem
 
Python avancé : Interface graphique et programmation évènementielle
Python avancé : Interface graphique et programmation évènementiellePython avancé : Interface graphique et programmation évènementielle
Python avancé : Interface graphique et programmation évènementielleECAM Brussels Engineering School
 
Examen principal - PHP
Examen principal - PHPExamen principal - PHP
Examen principal - PHPInes Ouaz
 

Tendances (20)

Support du cours : Systèmes d'exploitation 2 (linux)
Support du cours : Systèmes d'exploitation 2 (linux)Support du cours : Systèmes d'exploitation 2 (linux)
Support du cours : Systèmes d'exploitation 2 (linux)
 
POO Java Chapitre 4 Heritage et Polymorphisme
POO Java Chapitre 4 Heritage et PolymorphismePOO Java Chapitre 4 Heritage et Polymorphisme
POO Java Chapitre 4 Heritage et Polymorphisme
 
Cours python avancé
Cours python avancéCours python avancé
Cours python avancé
 
Examen principal- php - correction
Examen principal- php - correctionExamen principal- php - correction
Examen principal- php - correction
 
TD2 - UML - Correction
TD2 - UML - CorrectionTD2 - UML - Correction
TD2 - UML - Correction
 
Systèmes d'Exploitation - chp3-gestion mémoire
Systèmes d'Exploitation - chp3-gestion mémoireSystèmes d'Exploitation - chp3-gestion mémoire
Systèmes d'Exploitation - chp3-gestion mémoire
 
Chapitre 4 heritage et polymorphisme
Chapitre 4 heritage et polymorphismeChapitre 4 heritage et polymorphisme
Chapitre 4 heritage et polymorphisme
 
Systèmes d'Exploitation - chp1-introduction
Systèmes d'Exploitation - chp1-introductionSystèmes d'Exploitation - chp1-introduction
Systèmes d'Exploitation - chp1-introduction
 
POO Java Chapitre 2 Encapsulation
POO Java Chapitre 2 EncapsulationPOO Java Chapitre 2 Encapsulation
POO Java Chapitre 2 Encapsulation
 
Chapitre 5 classes abstraites et interfaces
Chapitre 5  classes abstraites et interfacesChapitre 5  classes abstraites et interfaces
Chapitre 5 classes abstraites et interfaces
 
Cours linux complet
Cours linux completCours linux complet
Cours linux complet
 
Chapitre 2 classe et objet
Chapitre 2   classe et objetChapitre 2   classe et objet
Chapitre 2 classe et objet
 
Systèmes d'Exploitation - chp2-gestion des processus
Systèmes d'Exploitation - chp2-gestion des processusSystèmes d'Exploitation - chp2-gestion des processus
Systèmes d'Exploitation - chp2-gestion des processus
 
Correction Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdfCorrection Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdf
 
HTML, CSS et Javascript
HTML, CSS et JavascriptHTML, CSS et Javascript
HTML, CSS et Javascript
 
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
 
COURS_PYTHON_22.ppt
COURS_PYTHON_22.pptCOURS_PYTHON_22.ppt
COURS_PYTHON_22.ppt
 
Plateforme d’e learning
Plateforme d’e learningPlateforme d’e learning
Plateforme d’e learning
 
Python avancé : Interface graphique et programmation évènementielle
Python avancé : Interface graphique et programmation évènementiellePython avancé : Interface graphique et programmation évènementielle
Python avancé : Interface graphique et programmation évènementielle
 
Examen principal - PHP
Examen principal - PHPExamen principal - PHP
Examen principal - PHP
 

Similaire à Tp n 6 linux

0079-cours-linux-base.ppt
0079-cours-linux-base.ppt0079-cours-linux-base.ppt
0079-cours-linux-base.pptAugustoMoundoh1
 
0079-cours-linux-base.ppt
0079-cours-linux-base.ppt0079-cours-linux-base.ppt
0079-cours-linux-base.pptMahdiHERMASSI1
 
programmation_shell_2022 (1).pptx
programmation_shell_2022 (1).pptxprogrammation_shell_2022 (1).pptx
programmation_shell_2022 (1).pptxManalAg
 
Processus pére fils
Processus pére filsProcessus pére fils
Processus pére filsSelman Dridi
 
Rapport des Travaux Pratiques UNIX
Rapport des Travaux Pratiques UNIXRapport des Travaux Pratiques UNIX
Rapport des Travaux Pratiques UNIXSoukaina Boujadi
 
Petit precis des_commandes_unix_utiles_a_ubuntu
Petit precis des_commandes_unix_utiles_a_ubuntuPetit precis des_commandes_unix_utiles_a_ubuntu
Petit precis des_commandes_unix_utiles_a_ubuntuEl7fe Eternal
 
Cmd dos sous windows
Cmd dos sous windowsCmd dos sous windows
Cmd dos sous windowsSelman Dridi
 
les Commandes linux/Unix (giants networks)
les Commandes linux/Unix (giants networks)les Commandes linux/Unix (giants networks)
les Commandes linux/Unix (giants networks)Souhaib El
 
Formation Linux - Initiation
Formation Linux - InitiationFormation Linux - Initiation
Formation Linux - Initiationrobertpluss
 
Cours de C++, en français, 2002 - Cours 3.4
Cours de C++, en français, 2002 - Cours 3.4Cours de C++, en français, 2002 - Cours 3.4
Cours de C++, en français, 2002 - Cours 3.4Laurent BUNIET
 
Développement informatique : Chaines de caractères et expressions regulières
Développement informatique : Chaines de caractères et expressions regulièresDéveloppement informatique : Chaines de caractères et expressions regulières
Développement informatique : Chaines de caractères et expressions regulièresECAM Brussels Engineering School
 
Scripting Linux avec Python partie1.pptx
Scripting Linux avec Python partie1.pptxScripting Linux avec Python partie1.pptx
Scripting Linux avec Python partie1.pptxFrancisRUKAN
 

Similaire à Tp n 6 linux (20)

Commande linux
Commande linuxCommande linux
Commande linux
 
0079-cours-linux-base.ppt
0079-cours-linux-base.ppt0079-cours-linux-base.ppt
0079-cours-linux-base.ppt
 
0079-cours-linux-base.ppt
0079-cours-linux-base.ppt0079-cours-linux-base.ppt
0079-cours-linux-base.ppt
 
programmation_shell_2022 (1).pptx
programmation_shell_2022 (1).pptxprogrammation_shell_2022 (1).pptx
programmation_shell_2022 (1).pptx
 
Processus pére fils
Processus pére filsProcessus pére fils
Processus pére fils
 
Rapport des Travaux Pratiques UNIX
Rapport des Travaux Pratiques UNIXRapport des Travaux Pratiques UNIX
Rapport des Travaux Pratiques UNIX
 
Petit precis des_commandes_unix_utiles_a_ubuntu
Petit precis des_commandes_unix_utiles_a_ubuntuPetit precis des_commandes_unix_utiles_a_ubuntu
Petit precis des_commandes_unix_utiles_a_ubuntu
 
Cmd dos sous windows
Cmd dos sous windowsCmd dos sous windows
Cmd dos sous windows
 
les Commandes linux/Unix (giants networks)
les Commandes linux/Unix (giants networks)les Commandes linux/Unix (giants networks)
les Commandes linux/Unix (giants networks)
 
s de base
s de bases de base
s de base
 
Bash bonnes pratiques
Bash bonnes pratiquesBash bonnes pratiques
Bash bonnes pratiques
 
Chapitre_Shell.pdf
Chapitre_Shell.pdfChapitre_Shell.pdf
Chapitre_Shell.pdf
 
Formation Linux - Initiation
Formation Linux - InitiationFormation Linux - Initiation
Formation Linux - Initiation
 
Cours de C++, en français, 2002 - Cours 3.4
Cours de C++, en français, 2002 - Cours 3.4Cours de C++, en français, 2002 - Cours 3.4
Cours de C++, en français, 2002 - Cours 3.4
 
Programmation shell
Programmation shellProgrammation shell
Programmation shell
 
Introduction à Python
Introduction à PythonIntroduction à Python
Introduction à Python
 
Développement informatique : Chaines de caractères et expressions regulières
Développement informatique : Chaines de caractères et expressions regulièresDéveloppement informatique : Chaines de caractères et expressions regulières
Développement informatique : Chaines de caractères et expressions regulières
 
Rapport Projet Module Complexité
Rapport Projet Module ComplexitéRapport Projet Module Complexité
Rapport Projet Module Complexité
 
Rar
RarRar
Rar
 
Scripting Linux avec Python partie1.pptx
Scripting Linux avec Python partie1.pptxScripting Linux avec Python partie1.pptx
Scripting Linux avec Python partie1.pptx
 

Plus de Amir Souissi

Chap5 diagramme d'etats-transitions
Chap5 diagramme d'etats-transitionsChap5 diagramme d'etats-transitions
Chap5 diagramme d'etats-transitionsAmir Souissi
 
Chapitre 6 traitement des exceptions
Chapitre 6  traitement des exceptionsChapitre 6  traitement des exceptions
Chapitre 6 traitement des exceptionsAmir Souissi
 
Chapitre 3 elements de base de java
Chapitre 3  elements de base de javaChapitre 3  elements de base de java
Chapitre 3 elements de base de javaAmir Souissi
 
Chapitre 4 persistance des donnees
Chapitre 4  persistance des donneesChapitre 4  persistance des donnees
Chapitre 4 persistance des donneesAmir Souissi
 
Chapitre 3 activites et intents
Chapitre 3   activites et  intentsChapitre 3   activites et  intents
Chapitre 3 activites et intentsAmir Souissi
 
Chapitre 1 introduction generale
Chapitre 1   introduction generaleChapitre 1   introduction generale
Chapitre 1 introduction generaleAmir Souissi
 
Chapitre 2 elements graphiques android
Chapitre 2   elements graphiques androidChapitre 2   elements graphiques android
Chapitre 2 elements graphiques androidAmir Souissi
 
Chapitre 1 decouverte du developpement android
Chapitre 1  decouverte du developpement androidChapitre 1  decouverte du developpement android
Chapitre 1 decouverte du developpement androidAmir Souissi
 
Atelier symfony n 3
Atelier symfony n 3Atelier symfony n 3
Atelier symfony n 3Amir Souissi
 
Atelier symfony n 2
Atelier symfony n 2Atelier symfony n 2
Atelier symfony n 2Amir Souissi
 
Atelier symfony n 1
Atelier symfony n 1Atelier symfony n 1
Atelier symfony n 1Amir Souissi
 
diagramme de séquence UML
diagramme de séquence UMLdiagramme de séquence UML
diagramme de séquence UMLAmir Souissi
 
diagramme de classe
diagramme de classediagramme de classe
diagramme de classeAmir Souissi
 
diagramme des cas d'utilisation
diagramme des cas d'utilisationdiagramme des cas d'utilisation
diagramme des cas d'utilisationAmir Souissi
 
introduction à la modélisation objet
introduction à la modélisation objetintroduction à la modélisation objet
introduction à la modélisation objetAmir Souissi
 

Plus de Amir Souissi (15)

Chap5 diagramme d'etats-transitions
Chap5 diagramme d'etats-transitionsChap5 diagramme d'etats-transitions
Chap5 diagramme d'etats-transitions
 
Chapitre 6 traitement des exceptions
Chapitre 6  traitement des exceptionsChapitre 6  traitement des exceptions
Chapitre 6 traitement des exceptions
 
Chapitre 3 elements de base de java
Chapitre 3  elements de base de javaChapitre 3  elements de base de java
Chapitre 3 elements de base de java
 
Chapitre 4 persistance des donnees
Chapitre 4  persistance des donneesChapitre 4  persistance des donnees
Chapitre 4 persistance des donnees
 
Chapitre 3 activites et intents
Chapitre 3   activites et  intentsChapitre 3   activites et  intents
Chapitre 3 activites et intents
 
Chapitre 1 introduction generale
Chapitre 1   introduction generaleChapitre 1   introduction generale
Chapitre 1 introduction generale
 
Chapitre 2 elements graphiques android
Chapitre 2   elements graphiques androidChapitre 2   elements graphiques android
Chapitre 2 elements graphiques android
 
Chapitre 1 decouverte du developpement android
Chapitre 1  decouverte du developpement androidChapitre 1  decouverte du developpement android
Chapitre 1 decouverte du developpement android
 
Atelier symfony n 3
Atelier symfony n 3Atelier symfony n 3
Atelier symfony n 3
 
Atelier symfony n 2
Atelier symfony n 2Atelier symfony n 2
Atelier symfony n 2
 
Atelier symfony n 1
Atelier symfony n 1Atelier symfony n 1
Atelier symfony n 1
 
diagramme de séquence UML
diagramme de séquence UMLdiagramme de séquence UML
diagramme de séquence UML
 
diagramme de classe
diagramme de classediagramme de classe
diagramme de classe
 
diagramme des cas d'utilisation
diagramme des cas d'utilisationdiagramme des cas d'utilisation
diagramme des cas d'utilisation
 
introduction à la modélisation objet
introduction à la modélisation objetintroduction à la modélisation objet
introduction à la modélisation objet
 

Dernier

Cours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETCours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETMedBechir
 
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSKennel
 
Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024Alain Marois
 
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSKennel
 
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdfSKennel
 
systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertChristianMbip
 
BONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIE
BONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIEBONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIE
BONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIEgharebikram98
 
Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024Gilles Le Page
 
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .Txaruka
 
Saint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptxSaint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptxMartin M Flynn
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...Faga1939
 
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdfSKennel
 
Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptxTxaruka
 
Formation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipFormation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipM2i Formation
 
Principe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 tempsPrincipe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 tempsRajiAbdelghani
 
Evaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. MarocpptxEvaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. MarocpptxAsmaa105193
 
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETCours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETMedBechir
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.Franck Apolis
 

Dernier (20)

Cours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETCours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSET
 
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
 
Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024
 
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
 
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
 
systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expert
 
BONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIE
BONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIEBONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIE
BONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIE
 
Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024
 
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
 
Saint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptxSaint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptx
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
 
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
 
Pâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie PelletierPâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie Pelletier
 
Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptx
 
DO PALÁCIO À ASSEMBLEIA .
DO PALÁCIO À ASSEMBLEIA                 .DO PALÁCIO À ASSEMBLEIA                 .
DO PALÁCIO À ASSEMBLEIA .
 
Formation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipFormation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadership
 
Principe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 tempsPrincipe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 temps
 
Evaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. MarocpptxEvaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. Marocpptx
 
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETCours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.
 

Tp n 6 linux

  • 1. Institut Supérieur des Etudes Technologiques de Jendouba Département Technologies de l’Informatique 2ème année Licence Appliquée Atelier Système 2 (Linux) Amir Souissi TP N° 6 Filtres et Expressions Régulières Objectifs • Utiliser les commandes des filtres simples : sort, head, tail, more, tee, uniq, wc, tr, cut, • Maitriser les expressions régulières (ou rationnelle), • Utiliser les commandes de filtres à expressions régulières : find, grep, • Utiliser les commandes find et grep avec –exec et xargs pour l’exécution de commandes et le passage d’arguments, • Effectuer des commandes complexes combinant redirection, tube et expressions régulières. 1) Les Filtres Simples head et tail Les commandes head et tail permettent d’afficher les n premières (respectivement dernières) lignes d’un fichier. Afficher les 5 premières, puis les 5 dernières lignes du fichier /etc/passwd. Afficher la 7ième ligne de ce fichier (et elle seule), en une seule ligne de commande. more et less La commande more et less permettent d’afficher un fichier page par page. Afficher le contenu du fichier /etc/passwd page par page sort La commande sort permet de trier un fichier dans l’ordre croissant ou décroissant selon nue colonne. Afficher les utilisateurs inscrits dans le fichier /etc/passwd dans l’ordre croissant des uid. tee La commande tee écrit l’entrée standard simultanément sur la sortie standard et sur le fichier passé en paramètre. Écrire une commande qui affiche "Bonjour" à l’écran et en même temps crée un fichier nommé "Salutation.txt" dont le contenu est le même message. uniq La commande uniq permet de détecter les lignes en doublons successifs dans les fichiers et de les supprimer (dans le résultat et non pas dans le fichier) Créer un fichier qui comporte des noms de personnes par ligne avec quelques noms en doublons. Afficher dans la console la liste des noms sans doublons successifs. Afficher le nombre d’occurrence de chaque ligne du fichier. Afficher uniquement les lignes qui se répètent.
  • 2. wc La commande wc permet de compter le nombre de lignes, de mots ou de caractères depuis l’entrée standard ou un fichier. Compter le nombre d’utilisateurs et le nombre de groupes. tr La commande tr (translate) permet traiter une chaine de caractère par une autre chaine et le résultat est envoyé sur la sortie standard. (les données à traiter sont redirigés en entrée par fichier) Afficher le fichier /etc/passwd en remplaçant les caractères « ,,, » par des « ... » (dans le champ commentaire). Obtenir le résultat précédent page par page. Que font les commandes suivantes : tr 'a,/' 'A;_' < fich1 > fich2 avec fich1 est une copie du fichier /etc/group par redirection. tr 'a-z' 'A-Z' < fich1 | tee fich2 tr –s [:blank:] ‘t’ < fich1 > fich2 tr –d [:digit:] < fich1 |sort | uniq > fich2 cut La commande cut permet d’afficher une portion de chaque ligne du fichier passé en paramètre ou à défaut de l’entrée standard. cut présente 2 formes suivant que l'on sélectionne des colonnes de caractères ou qu'on distingue des champs séparés par un caractère précis. Conserver uniquement les caractères 2 et 5 de chaque ligne du fichier. Conserver les caractères du premier au troisième. Conserver les caractères du troisième au dernier. Que fait la commande suivante cut –d ":" –f 1,4 /etc/group Afficher uniquement les login des utilisateurs inscrits dans /etc/passwd dans l’ordre décroissant. 2) Les Filtres à Expressions Régulières Les expressions régulière (ou rationnelle) sont des suites de caractères ordinaires ou spéciaux qui ont des significations particulières permettant de faire des sélections. • ^ début de ligne • . un caractère quelconque • $ fin de ligne • [...] plage de caractères permis • [^...] plage de caractères interdits • * 0 à n fois le caractère ou regroupement de caractères précédent • c protection du caractère c • {n} pour définir le nombre de répétition n du caractère placé devant • {n,} pour définir le nombre de répétition n du caractère placé devant • {n,x} entre n et x fois le caractère précédent • (…) mémorisation d'une ER • + une ou plus occurrences du caractère ou regroupement de caractères précédent • ? 0 ou 1 occurrence du caractère ou regroupement de caractères précédent • {n} pour définir le nombre de répétition n du caractère ou regroupement de caractères placé devant • {n,} au moins n fois le caractère ou regroupement de caractères précédent • {n,x} entre n et x fois le caractère ou regroupement de caractères précédent
  • 3. Le caractère d’échappement « »permet de ne pas interpréter le caractère suivant par le shell. (pour dire qu’il fait partie de la syntaxe de la commande) Exemples : L'expression [a-z][a-z] * cherche les lignes contenant au minimum un caractère en minuscule. [a-z] caractère permis, [a-z]* recherche d'occurrence des lettres permises (entre 0 et plus). L'expression ^[0-9]{4}$ a pour signification, du début ^ à la fin du fichier $ ,recherche les nombres [0-9] de 4 chiffres {4}. Commande FIND La commande find permet de rechercher des fichiers et des répertoires. C’est une commande indispensable, très puissante mais assez complexe car contient beaucoup d’options. Syntaxe: find < répertoire de recherche> <option > <critère de recherche> <action sur le résultat trouvé> Exemple : find / -name *.txt -print cherche tous les fichiers qui commencent par une suite de caractères et se terminent par .txt puis les afficher. Les options de find ne sont pas sur une seule lettre mais on prend le nom entier de l’option et avec un seul tiret ( -) . (Contrairement aux autres commandes qui utilisent les doubles tirets (--)). Remarque : pour ne pas avoir les messages d’erreurs de permissions non accordés, on utilise un sudo avant le find. Options : Option -lname : cherche dans les cibles les link (liens symboliques) find / -lname lien* -print Option -iname : pour faire uen recherche à partir d’une expression rationnelle. find / -iname "[pt]louf.txt" -print qui commence par un p ou un t puis louf.txt Option -type : indique à find quel type d’objet on recherche find /home -name fich1 -type f -print f pour dire qu’on cherche que des fichiers. d pour les répertoires. l pour les liens symboliques. Options de recherche par date : -atime : la dernière fois où le fichier ou dossier a été accédé -ctime : la dernière fois où il a été changé de statut (permissions, propriétaire, …) -mtime : le temps où on a modifié son contenu. a c m Signification accès changement de statut modification de contenu Exprimé en jour atime ctime mtime Exprimé en minute amin cmin mmin Le chiffre qui suit –atime ou –ctime ou –mtime est exprimé en nombre de jours. find /home -atime 1 -print tous les fichiers qui ont été accédé il y a un jour. find /home -amin 1 -print tous les fichiers qui ont été modifiés il y a une minute. Pour la valeur on peut lui ajouter un + ou un -. (+1 veut dire plus d’un jour et -1 veut dire moins d’un jour)
  • 4. Option -newer : cherche les fichiers qui ont été modifiés après fich1. Option -anewer : chercher tous les fichiers qui ont été accédés après fich1. Option -cnewer : pour les fichiers changés après fich1 sudo find . -anewer fich1 -print Option -size : recherche par taille Les valeurs possibles de –size sont b pour bloc c pour caractère (octet) et k pour kilooctet find . -size 12k -print les fichiers qui font 12 kilo octets. (+12k pour plus de 12 kilooctets, et -12k pour moins de 12 kilooctets) Option -empty : cherche les fichiers qui sont vides. (taille 0) find ~ -empty -print on peut combiner plusieurs critères : find ~ -empty -name *sources* -type f -print chercher tous les objets de type fichier qui sont vides et dont le nom contient le mot sources. Exécuter des commandes sur le résultat de find : l’option -exec et la commande xargs Rappel : find < répertoire de recherche> <option > <critère de recherche> <action sur le résultat trouvé> -exec commande -print est une option de commande qui permet de réaliser l’action d’affichage sur le résultat trouvé par la recherche. Pour réaliser une action sur les fichiers trouvés (de copie, de suppression, …), on utilise l’option -exec suivie de la commande à réaliser. Le fichier en cours sur lequel portera l’action de la commande après le –exec est repéré par les {} et elle doit se terminer par un ; précédé par le caractère d’échappement . Exemple : find . -name fich* -exec rm {} ; Effacer les fichiers qui commencent par fich du rep. courant. Pourquoi selon vous doit on précéder le ; par un backslash ? La solution avec –exec est lourde car elle crée un processus pour chaque fichier traité. xargs commande On peut rediriger le résultat de find avec un pipe et xargs. La commande xargs sert à convertir l’output d’une commande en une suite d’arguments pour les envoyer à une autre commande. Elle s’utilise après le pipe d’une commande. find . mtime +30 -name '*~' | xargs rm Que fait cette commande? Ajouter l’option –p à xargs et commenter ?
  • 5. Exercice A : Commande find 1. Afficher la liste des fichiers .config situés sous le répertoire /usr/include. 2. Afficher la liste des fichiers plus vieux que 3 jours situés sous votre répertoire de connexion. 3. Afficher la liste des fichiers de /usr/include dont le nom commence par a, b ou c. 4. Modifier la commande de la question précédente pour qu'au lieu d’afficher le résultat, celui-ci soit placé dans un fichier nommé "Abc.list" de votre répertoire de connexion. 5. Chercher les fichiers .tex modifiés plus récemment que bofichier.tex, mais il y a plus de 5 jours. 6. Rechercher un fichier modifié il y a moins de 12 jours et dont la taille soit supérieure à 30 K 7. Comment chercher tous les fichiers dont les noms commençant par un «a» majuscule ou une minuscule, suivi d'éventuellement quelques lettres ou chiffres, et se terminent par un chiffre entre 3 et 6. 8. Trouver les répertoires vides sous le répertoire personnel puis les supprimer. Commande GREP Une autre commande très utilisée et très pratique est la commande grep. Elle sert à faire une recherche à l’intérieur d’un ou de plusieurs fichiers. Pour mieux exploiter grep, il faut maitriser les expressions régulières. Syntaxe : grep <patern en expression régulière> <où chercher> Exemples : grep "^#" /etc/fstab chercher toutes les lignes qui commencent par un # (les commentaires) dans fstab. grep "PATH" /etc/* cherche le mot PATH dans tous les fichiers du répertoire /etc. Remarque : Le pattern trouvé est coloré en rouge dans le résultat trouvé par grep. Exemples : grep "print" /etc/fstab afficher les lignes qui contiennent le mot « print » grep "^#$" /etc/fstab afficher les lignes avec des commentaires vides. grep "^$" /etc/fstab afficher les lignes vides Attention ! Les critères de recherches sont sensibles à la casse. Option -i : rendre la recherche non sensible à la casse. grep –i "Print" /etc/fstab insensible à la casse. Un Print avec P équivaut un print avec p. Option –v : renverse le critère de recherche (donne l’inverse) grep –iv "Print" /etc/fstab affiche toutes les lignes qui ne comportent pas le mot « print » insensible à la casse. Option –c : donne le nombre de lignes qui ont été trouvés (c comme count). grep –ivc "Print" /etc/fstab nombre de lignes qui ne comportent pas un « print » insensible à la casse. Option –n : affiche en plus le numéro de la ligne trouvée. Option -w: cherche le mot complet correspondant au critère et non pas une partie du mot. sudo grep –iw "Print" . Chercher le mot print dans tous les fichiers du répertoire courant.
  • 6. Option -l : donne seulement le nom du fichier dans lequel on a trouvé une correspondance avec le critère. Option -r : fait une recherche récursive dans tous les sous répertoires. Remarques : La variante egrep utilise une syntaxe étendue d’expression régulière. La variante fgrep n’utilise pas d’expression régulière mais une liste de mots pour un usage plus simple. Exercice B : commande grep 1. Trouver les lignes vides 2. Chaine contenant au minimum 3 « p » 3. Mot terminé par « age » 4. Mot terminé par « guage » ou « gage » 5. Chaine contenant « rla » 6. Lignes terminées par « ans » 7. Chaines contenant les sous-chaines « alpha » ou « exe » 8. Ligne ne commençant pas par un chiffre 9. Ligne commençant par une voyelle ou un chiffre 10. Ligne ne commençant pas par une voyelle 11. Ligne commençant ou se terminant par un chiffre 12. Les lignes sui font moins de 10 caractères. Exercice C : Combiner find, grep, xargs et le pipe 1. Chercher les fichiers cachés (dont le nom commence par un .) dans le répertoire courant, et qui contiennent le mot « term » pour ensuite les supprimer. 2. find ~ -type f -exec grep -il ‘term’ {} ; Que fait cette commande ? réaliser la même chose avec un pipe. 3. Rechercher dans le répertoire courant tous les fichiers normaux (sans les répertoires, fichiers spéciaux), et rechercher dans ces fichiers tous ceux contenant la chaîne toto. 4. Testez la commande : find . -type f | xargs grep matrice, puis la commande find . -type f | grep matrice. Remarquez les résultats. 5. Vous chercherez dans votre répertoire «fic_C» les fichiers d'extension «.c» dans lesquels se trouvent une ligne contenant l'instruction «if» et afficherez les lignes. Pour cela vous utiliserez 2 méthodes, une avec le pipe et l'autre avec l'option «exec». Quelles sont les différences. 6. Rechercher tous les fichiers d'anciennes sauvegardes (qui terminent par '' ~'') qui ont été créés les 5 derniers jours ou depuis au moins 10 jours, et supprimer ceux qui contiennent au moins un ''if''.