+ Module Linux
Equipe Pédagogique
Ilhem Gharbi
K.hawla Ammar
Dhouha Krichen
Faten Benabdallah
Redirections, Tubes et filtres
2018-2019
+ Plan 2
Commande Linux
Redirections
Tubes de communications
Filtres
2018-2019
+ Commande Linux 3
Une commande :
Entrée : options et arguments en entrée standard.
Sortie : une réponse en sotie standard
+
une réponse en sortie erreur standard.
+ 4
L’entrée/sortie standard et les
descripteurs de fichiers par défaut
• Standard input (stdin) ou file descriptor 0 :ce descripteur de fichier est
le flux d’entrée de texte. Par défaut, il est attaché au clavier.
• Standard output (stdout) ou file descriptor 1:ce descripteur de fichier
est le flux de sortie de texte. Par défaut, il est attaché au terminal
• Standard error (stderr) ou file descriptor 2 :c’est également un flux de
sortie de texte mais il est utilisé uniquement pour les erreurs
d’exécutions de commandes. Il est également attaché au terminal
+ Redirections des entrées-sorties 5
Principe
• Le concept de « redirection » permet de gérer l’origine d’un flux d’entrée ainsi
que la destination d’un flux de sortie
• Il s’agit de renvoyer le résultat d’une commande vers une sortie différente de la
sortie standard.
• Valide pour une entrée ou une sortie
• Comment? A l’aide de petits symboles spéciaux, appelés flux de redirection
+ Flux de redirection 6
> et >> : renvoient le résultat vers un fichier.
> : rediriger dans un nouveau fichier
Si le fichier n’existe pas, il sera créé. Le contenu de fichier sera
écrasé automatiquement si le fichier existe déjà.
>> : rediriger à la fin d’un fichier
Si le fichier n’existe pas, il sera créé. Si non, les données seront
ajoutées à la fin.
< et << : lire depuis un fichier ou le clavier
< permet d’indiquer d’où vient l’entrée qu’on envoie à la
commande.
<< : lire depuis le clavier progressivement
+ Flux de redirection 7
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.
2>&1 : Fusionner les sorties : Cela a pour effet de rediriger la sortie
d’erreurs et la sortie standard vers le même endroit.
+ 8
Flux de redirection
Il est parfois utile de rediriger la sortie standard et la sortie
d'erreur vers un même endroit.
+ Redirection des entrées-sorties 9
Principe :
Redirection vers un fichier Redirection vers des fichiers
+ Succès et erreur 10
On a parfois besoin de savoir si une commande a réussi ou
non avant d'en lancer une autre.
Les indicateurs && et || permettent, respectivement, de
lancer une commande si (et seulement si) la précédente a
réussi ou échoué.
Par exemple, si on a un fichier toto, on obtient :
Si on n’a pas un fichier foo, on obtient:
+ Tubes de communication 11
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.
+ Traitement des flux de texte à 12
l’aide des filtres
Ce sont des programmes traitant des données qui proviennent
de l’entrée standard.
But: agir sur les flux de texte afin de produire de nouveaux flux
Très utiles en les combinant avec des tubes (pipes).
+ les commandes filtres courantes 13
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 14
La commande grep permet la recherche dans des fichiers d’une
expression particulière.
Les options basiques sont:
-c donne seulement le nombre de lignes trouvées obéissant au critère
-l donne seulement le nom des fichiers où le critère a été trouvé
-v donne les lignes où le critère n'a pas été trouvé
-i ne pas tenir compte de la casse (ne pas différencier majuscules minuscules)
-n pour n'afficher que les numéros des lignes trouvées
-w pour imposer que le motif corresponde à un mot entier d'une ligne
Exemples
+ La commande grep (suite) 15
Voici la liste des symboles utilisables par grep : . * [ ] [^ ] ^ $
. signifie un caractère quelconque
* répétition du caractère situé devant
^ début de ligne
$ fin d'une ligne (donc "e$" mots se terminant par e)
[...] contient une liste ou un intervalle de caractères cherchés
[^..] caractères interdits.
+ 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
-m : nombre de caractères.
Exemples
-m
+ La commande cut 17
La commande cut permet d'afficher des zones spécifiques d'un
fichier.
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
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
+ 21
Expression régulière (1)
Les expressions régulières permettent de définir un
langage interprété par le shell
Les expressions régulières sont le résultat de la combinaison de
patterns (méta-caractères) de Position anchors de Character
sets et de Quantity modifiers
Méta-caractère= caractère ayant une signification
particulière
Position anchor= spécifie la position d’un ou plusieurs
caractères par rapport à une ligne entière de texte
Character set= un jeu de méta-caractères
Quantity modifiers= suivent un Character set et indiquent le
nombre de fois que ce Character set doit être répété
+ 22
Expression régulière (2)
Anchors
^ : début de ligne,
$: fin de ligne,
Exemples:
$ grep '^Linux' file1
$ grep 'x$' file1
Groupes et intervalles
[abc] ou [a-z]: correspond à n’importe quel caractère de
l’intervalle
[^ abc] ou [^ a-z]: correspond à n’importe quel caractère autre que
celui de l’intervalle
Exemples
$ grep '[Ll]inux' file1
$ grep '^[^0-9]' file1
Quantity modifiers
*: correspond à un nombre inconnu de caractères
? : correspond à 0 ou 1 instance de caractère
+ 23
Sed
sed (Stream EDitor) est un é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.
Il ne modifie pas le fichier traité, il écrit tout sur la sortie
standard.
sed est une évolution de l'éditeur ed (précurseur de vi), mais il
permet de réaliser des commandes complexes sur des gros
fichiers.
+ Sed 24
Syntaxe
sed [-n] [-e commande] [-f fichier de commandes] [fichier]
-n : écrit seulement les lignes concernées par le traitement (par l'option /p)
sur la sortie standard
-e : L’argument suivant est une commande. Cette option est utile lorsque
vous appliquez plusieurs commandes sur un fichier. Afin d‘éviter que le
shell interprète certains caractères, il faut mieux encadrer la commande
avec des ' ou des " .
L'option -e n'est pas nécessaire quand vous avez une seule fonction
d'édition.
-f : les commandes sont lu à partir d'un fichier.
+ Sed : fonction de substitution : s 25
La fonction de substitution s peut être utilisée avec une expression régulière délimitée par
des barres obliques (/ regex /).
s permet de changer la 1ère ou toutes les occurrences d’une chaîne par une autre.
Syntaxe :
- sed "s/toto/TOTO/" fichier : va changer la 1ère occurence de la chaîne toto par TOTO
- sed "s/toto/TOTO/3" fichier : va changer la 3ème occurence de la chaîne toto par TOTO
- sed "s/toto/TOTO/g" fichier : va changer toutes les occurrences de la chaîne toto par TOTO
-sed "s/toto/TOTO/p" fichier : en cas de remplacement imprime les lignes concernées
sed -e "s/[Ff]raise/FRAISE/g" fichier substitue toutes les chaînes Fraise ou fraise par FRAISE
+ Sed : La fonction de suppression : d 26
La fonction de suppression d supprime les lignes comprises dans
un intervalle donné.
Syntaxe :
sed "20,30d" fichier
Cette commande va supprimer les lignes 20 à 30 du fichier
On peut utiliser les expressions régulières :
- sed "/toto/d" fichier : 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 27
Prend en paramètre un fichier trié.
Elle permet d’exclure les lignes en double afin de n’avoir qu’
une seule occurrence de celles-ci.
uniq doubl.txt
Options :
- d : afficher les lignes en double
- c : nombre d’occurences
+ Find 28
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
+ 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 mlocate :
Syntaxe : updatedb
+ Diapositive utile pour le TP: 30
La commande PS
Commande "ps" permet d'afficher les processus actifs ainsi que ces
ressources utilisé à un instant t, par utilisateur, par PID ...
Syntaxe: ps [options]
La commande "ps" de base
Par défault ps affiche les commandes qui son actuellement
utilisé dans cette invité de commande.
Les options
L'option "-x" permet de visualiser tout les processus actifs de l'utilisateur
courant
L'option "-ax" permet de visualiser tous les processus de la machine de tous
les utilisateurs
L'option "-aux" permet de visualiser affiche les utilisateurs associés à chaque
processus
L'option "-u nom_utilisateur" affiche chaque processus associés à utilisateur
L'option "-p PID" affiche les informations sur un processus
L'option "-t" affiche tout les processus liées a un terminal