Chapitre 2

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 30

+ Module Linux

Enseignante
S. BEN YAALA

Redirections, Tubes et filtres


+ Plan 2

 Redirections

 Tubes de communications

 Filtres
+ Commande Linux 3

 Une commande :
Entrée : arguments en entrée standard.
Sortie : une réponse en sotie standard
+
une réponse en sortie erreur standard.
+ Commande Linux 4

Les redirections sont le détournement des 3 descripteurs de


fichiers standards :
l'entrée standard (notée 0) : le clavier ;
la sortie standard (notée 1) : la console courante ;
la sortie des erreurs (notée 2) : la console courante
+ Redirections des entrées-sorties 5

 Principe

• Il s’agit de renvoyer le résultat d’une commande vers une


sortie différente de la sortie normale .

• Valide pour une entrée ou une sortie


+ Redirection des entrées-sorties 6

 Principe :

Redirection vers un fichier Redirection vers des fichiers


+ Flux de redirection 7

 > et >> : renvoient le résultat vers un fichier.


 > : rediriger dans un nouveau fichier

#ls > file1

Le contenu de fichier sera supprimé automatiquement si le fichier existe déjà.


 >> : rediriger à la fin d’un fichier

#ls >> file1


Si le fichier n’existe pas, il sera créé. Sinon, les données seront ajoutées à la fin.
+ Flux de redirection 8

 < et << : lire depuis un fichier ou le clavier

< : permet d’indiquer d’où vient l’entrée qu’on envoie à la commande.


Exemple : Le fichier est lu par la commande cat
#cat < fichier1

<< : lire depuis le clavier progressivement


Exemple : la commande cat lit du clavier jusqu’à ce qu’elle rencontre la chaine
END et redirige le résultat dans le fichier fin
#cat > fin <<END
>je suis dans le fichier fin, l'édition est stoppée lors de la rencontre du mot clé
END

#cat fin
je suis dans le fichier fin, l'édition est stoppée lors de la rencontre du mot clé END
+ Flux de redirection 9

Redirection des erreurs : (2>, 2>> et 2>&1)


Pour chaque commande exécutée, il existe deux possibilités :

 Cas 1 : Tout va bien :

Le résultat de la commande sera affiché sur la sortie standard

 Cas 2 : Une erreur se produit

Le résultat de la commande s’affiche dans la sortie d’erreurs.


 Syntaxe

2> : Rediriger les erreurs dans un fichier à part


2>> : pour ajouter les erreurs à la fin du fichier.
+ Tubes de communication 10

 Le symbole |, qui s’appelle ”tube” ou ”pipe”, permet de relier deux


commandes entre elles.
 Il s’agit d’utiliser le premier paramètre à gauche comme entrée de
deuxième paramètre
commande1 | commande2 | commande3
 Redirections = assure la communication entre (fichier, processus ).
 Tube = assure la communication entre deux processus.

Exemple : P1 | P2 | P3.
+ Filtres 11

 Ce sont des programmes traitant des données qui proviennent


de l’entrée standard.

 Très utiles en les combinant avec des filtres.


+ les commandes filtres courantes 12

 La commande sort
Tri sur des lignes de texte :
 Options
- n: ordre numérique
- s : lexicographique (par défaut)
- d : selon le dictionnaire
- k : Tri d’un champ particulier
- r : Tri en ordre inverse
Req: Les champs sont délimités par défaut par le caractère de tabulation
mais il est possible de spécifier un autre caractère avec l’option ”-t”.
 Exemples
+ La commande grep 13

 La commande grep permet la recherche dans des fichiers d’une expression


particulière.
 Les options basiques sont:
-n : numéro de ligne.
-i : ignorer majuscules et minuscules
-v : rechercher tout sauf la chaine de caractères dans un fichier.

Exemples
- Rechercher la chaine de caractères dans une arborescence /etc/
grep –r « chaine » /etc/
- Afficher la ligne contenant home sans tenir compte des majuscules et minuscules :
grep -i « home » < /etc/passwd
- Afficher les lignes ne contenant pas home :
grep –v « home » < /etc/passwd
+ La commande grep 14

 Recherche avec des expressions

Caractère spécial Signification

. Caractère quelconque

^ Début de ligne

$ Fin de ligne

[] Un des caractères entre les crochets

L'élément précédent est optionnel (peut être


?
présent 0 ou 1 fois)

L'élément précédent peut être présent 0, 1 ou


*
plusieurs fois

L'élément précédent doit être présent 1 ou


+
plusieurs fois

| Ou

() Groupement d'expressions
+ La commande grep 15

• Rechercher une chaîne de caractères ‘chaine’ en début de ligne dans un fichier

#grep -E ^chaine fichier1

• Rechercher une chaîne de caractères ‘chaine’ en fin de ligne dans un fichier

#grep -E chaine $ fichier1

• Rechercher une chaîne de caractères ‘chaine’ ou ‘Chaine’ dans un fichier

#grep -E [Cc]haine fichier1


+ La commande wc 16

 Cette commande permet de compter le nombre de lignes, de


mots et de caractères dans un fichier.

 Options :

-l : nombre de lignes,

-w : nombre de mots

-c : nombre de caractères.
Exemples
+ La commande cut 17

 Options :
- c : extraire des colonnes
- f : extraire des champs
- d : spécifier délimiteur
 Exemples
+ La commande head 18

 Identifie le début d’un fichier (ou de l’entrée standard).


 Options :
- n : nombre de lignes
- c : nombre de caractères.
 Exemples
+ La commande tail 19

 Identifie la fin d’un fichier ou de l’entrée standard.

 Options :

- c : nbre. de caractères

- n : nbre. de lignes

- b : nbre. de blocs (exemple 512 octets)

Exemples
+ La commande tr 20

 Fonction : substituer ou supprimer des arguments


 Arguments : - Deux chaines de caractères
- La 1ère chaine représente les caractères
recherchés
- La 2ème représente le remplacement
 Options :
-c : inverse la recherche
-s : Traitement d’une seule occurrence
-d : suppression
+ Sed 21

 sed est éditeur ligne non interactif, il lit les lignes d’un fichier une
à une (ou provenant de l’entrée standard) leur applique un
certain nombre de commandes d’édition et renvoie les lignes
résultantes sur la sortie standard.

 Syntaxe : sed [-n] [-e commande] [-f fichier de commandes] [fichier]

-n : écrit seulement les lignes spécifiées (par l'option /p) sur la sortie
standard
-e : permet de spécifier les commandes à appliquer sur le fichier. Cette
option est utile lorsque vous appliquez plusieurs commandes. Afin
d’éviter que le shell interprète certains caractères, il faut mieux encadrer
la commande avec des ' ou des " .
-f : les commandes sont lu à partir d'un fichier.
+ Sed : fonction de substitution : s 22

s permet de changer la 1ère ou toutes les


occurrences d’une chaîne par une autre.

Syntaxe :

- sed "s/toto/TOTO/g" fichier : va changer


toutes les occurrences de la chaîne toto par
TOTO
+ Sed : La fonction de suppression : d 23

 La fonction de suppression d supprime les lignes comprises dans


un intervalle donné.
 Syntaxe : sed "20,30d" fichier1
Cette commande va supprimer les lignes 20 à 30 du fichier ‘fichier1’.
 On peut utiliser les expressions régulières :
- sed "/toto/d" fichier1 : supprime les lignes contenant la chaîne toto
- sed "/toto/!d" fichier : supprime toutes les lignes ne contenant pas la
chaîne toto
En fait les lignes du fichier d’entrée ne sont pas supprimées, elles le
sont au niveau de la sortie standard.
+ Uniq 24

 Prend en paramètre un fichier trié.


 Elle identifie uniquement identiques qui sont successives.
uniq doubl.txt
 Options :
- d : afficher les lignes en double
- c : nombre d’occurences
+ Find 25

 La commande find permet de retrouver des fichiers à partir de certains critères.

 Syntaxe : find repertoire-de-recherche critère-de-recherche

 Options:

-name : nom du fichier , -perm : droits d’accès

-link : nombre de liens , -user : propriétaire

-group : recherche suivant le groupe , -type : recherche suivant le type

-size : recherche suivant la taille , -atime : date de dernier accès en


lecture

-mtime : date de dernière modification du fichier

-ctime : recherche sur la date de création du fichier


+ Find 26

 Utilisation de la commande find

 La commande find permet de chercher des fichiers, et éventuellement d‘exécuter

une action dessus :

• Rechercher un fichier nommé fichier1 dans le répertoire

/home/ludo #find /home/ludo –name fichier1 –print


+ Find 27

• Rechercher tous les fichiers appartenant a l’utilisateur tekup et les

deplacer dans son répertoire home

# find / -user tekup 2>/dev/null

# find / -user tekup -exec mv {} /home/tekup/ \; 2>/dev/null

• Rechercher tous les fichiers commençant par fichier ET appartenant a


l’utilisateur tekup et les copier dans le répertoire /root

#find / -name "fichier*" -a -user tekup -exec cp {} /root/* \; 2>/dev/null


+ Find 28

Option Signification  Pour les options -size, -atime, -mtime, -


ctime et -links, Il faut spécifier une valeur,
Recherche par nom de fichier.
-name précédée par le signe ``+'' pour
-type Recherche par type de fichier.
``supérieur à'', ``-'' pour ``inférieur à'', ou rien
Recherche par propriétaire.
-user pour ``égal à''. Par exemple :
-group Recherche par appartenance à ungroupe.
find . -mtime -3 -print
-size Recherche par taille de fichier.

-atime Recherche par date de dernier accès.  Cette commande affiche les fichiers dont
Recherche par date de dernière modification.
les dernières modifications remontent à
-mtime
moins de 3 jours (donc tous les fichiers
-ctime Recherche par date de création. modifiés entre aujourd'hui et il y a trois jours
-perm
Recherche par autorisations d'accès. seront affichés).
Recherche par nombre de liens au fichier.
-links  De même, +5 afficherait les fichiers
dont les dernières modifications
remontent à plus de 5 jours.
+ Locate 29

 la commande locate cherche les fichiers dans


une base de données.
Syntaxe : locate fichier
 Il faut mettre à jour la base de locate :
Syntaxe : updatedb
+ 30

Merci

Vous aimerez peut-être aussi