SlideShare une entreprise Scribd logo
1  sur  49
By Jacques Polombwe
The Power of PowerPoint | thepopp.com 2
Dispensé par :
Jacques Polombwe
• Master in Computer Systems Security (Cyber-security and Cyber-defense)
from the International University of Tunis
• Dev’Ops Infrastructure Engineer
• Cisco Network Engineer
https://www.linkedin.com/in/jacques-
polombwe-3ab69b152/
LinkedIn
jacquespolombwe@gmail.com
Gmail
tumblr.com/bruce_beresford
tumblr
01
02
03
04
05
06
Plan du cours
Notions sur Linux
Notions sur Python
Bibliothèques réseau
Ansible
Docker
Kubernetes
The Power of PowerPoint | thepopp.com 3
Rappel réseau
Pourquoi les scripts ?
 Les scripts jouent un rôle important dans
l'administration système car ils permettent aux
administrateurs d'automatiser les tâches
répétitives, de gérer un grand nombre de
systèmes à grande échelle et d'assurer une
configuration cohérente sur différents
systèmes .
Pourquoi ?
6
Bash
Le Shell
8
Le shell est l’interpreteur de commandes de Linux. C’est un
programme qui prend les commandes du clavier et les donne
au système d'exploitation pour qu'il les exécute. Autrefois,
c'était la seule interface utilisateur disponible sur un système
de type Unix tel que Linux. De nos jours, nous avons des
interfaces utilisateur graphiques (GUI) en plus des interfaces
de ligne de commande (CLI) telles que le shell.
Il existe plusieurs shells, tous partageant des points communs.
L’utilisateur est libre d’utiliser celui
qui lui convient le mieux parmi (entre autres) :
• le Bourne-Again shell (bash),
• le Korn shell (ksh),
• le C shell (csh),
• etc.
Le Shell
9
Le shell est aussi un langage de programmation qui comprend
non seulement les commandes, mais aussi des structures de
contrôle (constructions conditionnelles et boucles)
On peut stocker un ensemble de lignes de commandes dans un
fichier texte pour en faire un script shell exécutable, les commandes
sont exécutées de manière séquentielle.
Pour pouvoir être lancé, le fichier créé doit avoir le droit d’exécution
(chmod +x) ou le lancer en faisant bash nom_du_script.
Si la première ligne du fichier débute par #! (Shebang), elle doit être
suivie du chemin du shell à lancer. Si ce n’est pas le cas, le shell
courant l’exécutera.
Les permissions des scripts
10
Les permissions déterminent le niveau d'accès d'un
utilisateur à un fichier. Lorsqu'un utilisateur exécute un
programme et que celui-ci accède à un fichier, les
autorisations sont vérifiées pour déterminer si
l'utilisateur dispose des droits d'accès corrects au fichier.
Il existe trois types de permissions : lecture, écriture et
exécution. Chacune a une signification différente selon
qu'elle est appliquée à un fichier ou à un répertoire.
4 = r (lire)
2 = w (écrire)
1 = x (exécuter)
Le chemin
The Power of PowerPoint | thepopp.com 11
Lors de l’utilisation d’un programme, le shell utilise la
variable d’environnement PATH pour retrouver le
chemin d’accès à ce programme. quand vous tapez
une commande ("ls" par exemple), le shell regarde
dans le PATH qui lui indique où chercher le code de la
commande.
# echo $PATH
Par défaut
Parfois, vous souhaiterez peut-être installer des
programmes dans d'autres emplacements de votre
ordinateur, mais être en mesure de les exécuter
facilement sans spécifier leur emplacement exact.
# export PATH=$PATH:File/Place
Personnaliser
12
Les variables
Une variable est une zone mémoire à laquelle
nous attribuons une valeur. La valeur assignée
peut être un nombre, du texte, un nom de
fichier, un périphérique ou tout autre type de
données. Une variable n'est rien d'autre qu'un
pointeur vers les données réelles
Pas besoin de déclarer les variables comme
en langage C, par exemple. On peut
directement affecter une valeur à une variable
de cette façon :
variable=valeur
Les variables
13
En début de script, on peut définir la valeur de départ des
variables utilisées dans le script.
VARIABLE="valeur"
Variable interne
Les variables d'environnement sont les variables spécifiques
à un certain environnement. Par exemple, chaque utilisateur
d'un système d'exploitation a son propre environnement.
Variable d’environnement
Les variables (suite)
14
Elles s'appellent comme ceci dans le script :
echo$VARIABLE
Il peut être utile de marquer les limites d'une variable avec
les accolades. echo${VARIABLE}
Par exemple :
#!/bin/bash
# script2.sh
PRENOM="esis"
echo"dossier personnel /home/$PRENOM"
exit
Variables internes
Vous pouvez déclarer une variable d'environnement requise
uniquement par votre utilisateur (par exemple, un jeton
secret) qui n'a pas besoin d'être exposée aux autres
utilisateurs.
Voici quelques exemples de variables d'environnement sous
Linux :
$USER: Utilisateur actuel
$HOME: Répertoire personnel de l’utilisateur actuel
$PATH: Chemin d’accès au programme shell
Variables d’environnement
Les variables spéciales
15
$0: nom du script. Plus précisément, il s'agit du paramètre 0
de la ligne de commande
$1,$2, ...,$9: respectivement premier, deuxième, ..., neuvième
paramètre de la ligne de commande
$*: tous les paramètres vus comme un seul mot
$@: tous les paramètres vus comme des mots séparés :
"@"équivaut à "$1" "$2" ...
$#: nombre de paramètres sur la ligne de commande
$-: options du shell
$?: code de retour de la dernière commande
$$: PID du shell
$!: PID du dernier processus lancé en arrière-plan
$_: dernier argument de la commande précédente
Substitution des commandes
16
Une fonctionnalité du shell très utile lors de la création de
scripts s'appelle la substitution de commandes. Cela permet
au script d'exécuter une commande shell et de rediriger la
sortie de la commande vers une variable au lieu d'afficher la
sortie sur le terminal.
sysadmin@localhost:~$ start=$(date)
sysadmin@localhost:~$ end=$(date)
sysadmin@localhost:~$ echo $start $end
Fri Sep 18 03:58:34 UTC 2020 Fri Sep 18 03:59:22 UTC 2020
17
Interaction utilisateur
La commande echo pose une question à l’utilisateur
La commande read lit les valeurs entrées au clavier
et les stocke dans une variable à réutiliser.
echo"question"
read reponse
echo $response
On peut aller plus vite avec read-p:
read-p "question" reponse
echo $reponse
Fonctions
18
Pour structurer et réutiliser son code comme dans tout langage, on peut utiliser des
fonctions.
Pour déclarer une fonction, on utilise la syntaxe suivante :
maFonction() { instructions }
Ou de manière plus ancienne :
Function ma_fonction{ instructions }
La déclaration d'une fonction doit toujours se situer avant son appel. On les mettra donc
également en début de script.
Par exemple :
#!/bin/bash
# script3.sh
read-p"quel est votre prénom ?" prenom
reponse()
{
echo$0
echo"merci $prenom"
exit
}
reponse
exit
19
Structure conditionnelle
et tests
Lors de l'écriture de scripts shell, il y aura des moments où un
administrateur voudra exécuter certaines commandes en
fonction des conditions . Une instruction conditionnelle peut
être utilisée pour déterminer les éléments suivants :
● Si deux variables de chaîne ou valeurs correspondent (ou
ne correspondent pas)
● Si deux variables ou valeurs numériques correspondent (ou
ne correspondent pas)
● L'état des fichiers (si le fichier existe, si le fichier est un
répertoire, etc.)
● Si une commande se termine avec succès
La commande test peut effectuer des comparaisons
numériques, des comparaisons de chaînes et des opérations
de test de fichiers.
Tests
20
Structure conditionnelle (suite)
21
Pour vérifier qu'une ou plusieurs
conditions sont remplies avant
d'effectuer un
traitement, on utilise souvent le if,
par exemple :
if [ $age -ge 18 ];
then echo Vous etes majeur(e)
fi
If
Le else (sinon) permet de compléter
le if pour effectuer un traitement
dans le cas ou la condition n'est pas
remplie. Exemple :
if [ $age -ge 18 ];
then echo Vous etes majeur(e)
else echo Vous etes mineur(e)
fi
Else
Le elif (else if) permet d'imbriquer
plusieurs if les uns dans les autres pour
pouvoir traiter tous les cas possibles :
if [ $feu = «rouge» ];
then echo N'avancez pas
elif [ $feu = «orange» ];
then echo Ralentissez
else echo Allez-y
fi
Elif
Exemple
22
Exercices
The Power of PowerPoint | thepopp.com 23
Ecrivez un script qui indique le type de système d'exploitation.
Écrivez un script qui dit si le premier paramètre passé en ligne
de commande est un nom de fichier ou un nom de répertoire,
ou de type inconnu.
24
Plusieurs conditions
Vous pouvez aussi combiner un certain nombre de conditions
les unes après les autres,
par exemple pour vérifier que l'àge entré par l'utilisateur est
situé entre 0 et 100 :
if [ $age -le 0 ] || [ $age -ge 100 ];
then echo l'age entré n'est pas correct
fi
Pour combiner plusieurs conditions, vous pouvez utiliser soit
OU ( || ), soit ET ( && ). Il s'agit
des opérateurs logiques :
OU signifie soit l'un, soit l'autre, soit les deux.
ET signifie l'un et l'autre obligatoirement.
25
Case
La structure case permet de faire un traitement différent en
fonction de la valeur d'une
variable, par exemple :
#!/bin/bash
echo Quel est votre OS préféré ?
echo 1- Windows 2- Linux 3- Mac OS 4- Autre
read choix
case $choix in
1) echo " Vous préférez Windows " ;;
2) echo " Vous préférez Linux ";;
3) echo " Vous préférez Mac OS ";;
4) echo " Vous préférez un autre OS ";;
else ) echo « Vous devez taper un nombre entre 1 et 4 ! »;;
esac
26
Les boucles
Les boucles servent en général à deux choses :
– Vérifier qu'une information saisie par l'utilisateur est
correcte et lui faire recommencer la saisie tant que ce
n'est pas correct
– Recommencer un certain nombre de fois la même
suite de commandes, d'autre part elles fonctionnent
toujours avec ces trois critères :
– Une valeur de départ
– Une condition d'entrée ou de sortie
– Une incrémentation
Les boucles While et Until testent une condition avant
d'effectuer le traitement, ce qui veut dire qu'il se peut
qu'on n'entre jamais dans la boucle.
27
Boucle while
28
Boucle while
While signifie tant que, ce qui veut dire que la boucle sera
exécutée tant que la condition est respectée.
Exemples :
#!/bin/bash
i=1 # Valeur de départ 1
while [ $i -le 5 ]; do # Condition de sortie : i > 5
echo tour de boucle n° $i
i=$((i+1)) # Incrément de 1 par tour de boucle
done
continuer=o # Valeur de départ «o»
while [ $continuer = «o» ]; do # condition de sortie : pas o
echo Voulez-vous recommencer ? o/n
read continuer # Nouvelle valeur de continuer
done # (qui remplace l'incrément)
29
Boucle for
A priori, la boucle for est utilisée quand on veut
exécuter un ensemble de commandes un nombre
précis de fois.
Exemple :
echo Combien voulez-vous d'étoiles ?
read nombre
for i in `seq $nombre`
do
echo -n *
done
Exercices
The Power of PowerPoint | thepopp.com 30
Ecrivez un script qui demande une valeur à l’entrée et affiche sa table de multiplication
jusqu’à la dixième itération.
Ecrivez un script qui demande une valeur à l’entrée et calcule sa factorielle.
Ecrivez un script shell qui ira dans tous les fichiers stockés dans le répertoire /etc et
affichera combien de fois le mot nameserver est repris dans le fichier resolv.conf
Entrée - Sortie
32
Manipulation des
fichiers
Sous linux, la plupart des opérations sont effectuées sur des
fichiers. Et pour gérer ces fichiers, Linux a des répertoires
également appelés dossiers qui sont maintenus dans une
structure arborescente. Cependant, ces répertoires sont
également un type de fichier eux-mêmes. Linux a 3 types de
fichiers :
• Fichiers réguliers
• Répertoires
• Fichiers spéciaux : Pour les E/S
Chaque fois qu'un individu exécute une commande, il peut
prendre une entrée, donner une sortie ou faire les deux.
Ls, mkdir, cat, tail, head, less, touch, cp, rm, mv
stdin, stdout et stderr
33
Entrée standard Sortie standard Sortie d’erreur standard
 Les entrées peuvent provenir soit
du clavier soit d’un fichier.
 La sortie standard d’un
programme, que l’on
nomme stdout, est un flux qui va
contenir tout ce qui est affiché à
l'écran par la commande.
 La sortie d'erreurs, est similaire à
la sortie standard à la différence
que ce flux est destiné aux erreurs
renvoyés par la commande. Par
défaut cette sortie est dirigée vers
le terminal, et s'affiche donc en
même temps que la sortie
standard.
Redirection
34
La redirection nous aide à rediriger ces fonctionnalités d'entrée et de sortie vers les fichiers ou dossiers
que nous voulons, et nous pouvons utiliser des commandes ou des caractères spéciaux pour le faire.
Par exemple, si nous exécutons la commande "date", cela nous donne une sortie à l'écran. Cependant, si
nous voulons enregistrer le résultat dans un fichier à la place, nous pouvons utiliser la redirection de
sortie.
35
Redirection (suite)
$ cat ESIS_as_gars.txt
• Josué
• Ben
• David
$ cat ESIS_as_filles.txt
• Esther
• Consolate
• Sarah
$ cat ESIS_as_gars.txt ESIS_as_filles.txt >
ESIS_as.txt
$ cat ESIS_as.txt
• Josué
• Ben
• David
• Esther
• Consolate
• Sarah
01 02 03
Types de redirection
36
Écraser la redirection Ajouter la redirection Redirection de fusion
 « > » Sortie standard
cat > Esis_as.txt
 « < » Entrée standard
cat < Esis_as.txt
 « >> » Sortie standard
cat >> ESIS_as.tx
 « << » Entrée standard
cat << EOF
jacques
EOF
 "p>& q" Fusionne la sortie du flux
p avec le flux q
 "p <& q" Fusionne l'entrée du flux
p avec le flux q
37
Redirection (suite)
On pourrait souhaiter enregistrer les erreurs dans un
fichier à part pour ne pas les oublier et pour pouvoir les
analyser ensuite.
Pour cela, on utilise l'opérateur 2>( le chiffre 2 collé au
chevron).
$ cat ESIS_as_gars.txt ESIS_as_fillesz.txt >
ESIS_as.txt 2> ESIS_asz.txt
38
Redirection de fusion
Parfois, on n'a pas envie de séparer les informations
dans deux fichiers différents. Heureusement, il est
possible de fusionner les sorties dans un seul et même
fichier. Comment ? Il faut utiliser la syntaxe suivante :
2>&1.
Cela a pour effet de rediriger toute la sortie d'erreurs
dans la sortie standard. Traduction pour l'ordinateur : «
envoie les erreurs au même endroit que le reste ».
Ici, 2>&1 signifie que STDERR redirige vers la cible
de STDOUT. Plus formellement, le message d'erreur
généré par « 2 » est fusionné avec la sortie actuelle
« 1 »
$ cat ESIS_as_gars.txt ESIS_as_fillesz.txt >
ESIS_as.txt 2>&1
Exercices
The Power of PowerPoint | thepopp.com 39
Créez un fichier contenant les noms de cinq personnes. Utilisez cat et la redirection de
sortie pour créer le fichier et utilisez un document ici pour terminer l'entrée.
Expression régulière
41
Find
La commande find sous UNIX est un utilitaire de ligne
de commande permettant de parcourir une hiérarchie
de fichiers. Il peut être utilisé pour rechercher des
fichiers et des répertoires et effectuer des opérations
ultérieures sur ceux-ci. Il prend en charge la recherche
par fichier, dossier, nom, date de création, date de
modification, propriétaire et autorisations. En utilisant '-
exec', d'autres commandes UNIX peuvent être
exécutées sur les fichiers ou dossiers trouvés.
Syntaxe:
The Power of PowerPoint | thepopp.com 42
find [d'où commencer la recherche] [l'expression détermine ce qu'il faut trouver] [-
options] [ce qu'il faut trouver]
Quelques options :
•-name esis : recherche les fichiers spécifiés par ‘esis'.
•-newer file : recherche les fichiers qui ont été modifiés/créés après 'file'.
•-perm octale : Recherche le fichier si la permission est 'octal'.
•-print : Affiche le nom du chemin des fichiers trouvés en utilisant le reste des
critères.
•-empty : recherche les fichiers et répertoires vides.
•-user nom: vrai si le fichier appartient à l’utilisateur nom.
Exemples
The Power of PowerPoint | thepopp.com 43
$ find ./for -name for.sh
$ find . -mtime+20 -print
$ find /home/jacques -type f -amin -40
$ find ./while -perm 764
$ find . -size +50k
$ find ./ -type f -name "*.txt" -exec grep ‘esis' {} ;
Exercices
The Power of PowerPoint | thepopp.com 44
Recherchez, dans toute l’arborescence, tous les fichiers de taille supérieure à
300 000 caractères. Puis affichez à l’écran de la liste de ces fichiers.
Recherchez tous les fichiers créés entre les 5 et 10 derniers jours
45
Grep
Dans les systèmes Linux et Unix, Grep, abréviation de
« global regular expression print », est une commande
utilisée pour rechercher et faire correspondre les
fichiers texte contenus dans les expressions régulières.
Grep (suite)
46
grep [options] pattern [files]
Description des options
-c: Ceci n'imprime qu'un nombre de lignes qui correspondent à un motif
-h: affiche les lignes correspondantes, mais n'affiche pas les noms de fichiers.
-i: Ignore, la casse
-l: affiche uniquement la liste des noms de fichiers.
-n: affiche les lignes correspondantes et leurs numéros de ligne.
-v: Ceci imprime toutes les lignes qui ne correspondent pas au motif
-e exp: spécifie l'expression avec cette option. Peut utiliser plusieurs fois.
-f fichier: Prend des motifs du fichier, un par ligne.
-E: traite le modèle comme une expression régulière étendue (ERE)
-w: correspond au mot entier
-o: n'imprime que les parties correspondantes d'une ligne correspondante,
avec chacune de ces parties sur une ligne de sortie distincte.
Grep(suite)
The Power of PowerPoint | thepopp.com 47
$ grep “[^aeiou]” file1 #Match all lines that do not contain a vowel
$ $ grep -i “hello”
$ grep “done$” file1 #Match all lines that end with ‘done’. E.g: “well done”
48
Expressions régulières
Les expressions régulières permettent de décrire des
motifs formés de caractères
Les caractères spéciaux pour les expressions
régulières sont les suivants :
| . * + ? ^ $ ( ) [ ] { } 
Exemples
a : le caractère a
[i n] : un caractère appartenant à l'ensemble ijklmn
. : un caractère quelconque
. : le caractère .
[^0 9] : tout caractère autre qu'un chiffre
^linux$ : une ligne ne contenant que linux
^$ : une ligne vide
[A Z]{8} | [0 9]{4} : 8 lettres majuscules ou 4 chiffres
Expressions régulières (suite)
The Power of PowerPoint | thepopp.com 49
esis{2} : esis et aucune autre chaîne : Le quantifieur {2} n’est appliqué qu’au dernier s
(esis){2} : esisesis et aucune autre chaîne :Le quantifieur {2} est appliqué à
l’expression esis

Contenu connexe

Similaire à Scripting Linux avec Python partie1.pptx

Similaire à Scripting Linux avec Python partie1.pptx (20)

Drools
DroolsDrools
Drools
 
Une introduction à Javascript et ECMAScript 6
Une introduction à Javascript et ECMAScript 6Une introduction à Javascript et ECMAScript 6
Une introduction à Javascript et ECMAScript 6
 
0519-pdf-php-bases-initiation.pdf
0519-pdf-php-bases-initiation.pdf0519-pdf-php-bases-initiation.pdf
0519-pdf-php-bases-initiation.pdf
 
Tp n 5 linux
Tp n 5 linuxTp n 5 linux
Tp n 5 linux
 
Cours php
Cours phpCours php
Cours php
 
Php1
Php1Php1
Php1
 
Linux Scripting
Linux Scripting Linux Scripting
Linux Scripting
 
PHP Training
PHP TrainingPHP Training
PHP Training
 
Test unitaires - refactoring - clean code
Test unitaires - refactoring - clean codeTest unitaires - refactoring - clean code
Test unitaires - refactoring - clean code
 
PHP mysql Xml.doc
PHP mysql Xml.docPHP mysql Xml.doc
PHP mysql Xml.doc
 
PHP mysql Xml.pdf
PHP mysql Xml.pdfPHP mysql Xml.pdf
PHP mysql Xml.pdf
 
Bash bonnes pratiques
Bash bonnes pratiquesBash bonnes pratiques
Bash bonnes pratiques
 
POO_Java_BasesLangage.pdf
POO_Java_BasesLangage.pdfPOO_Java_BasesLangage.pdf
POO_Java_BasesLangage.pdf
 
Php4 Mysql
Php4 MysqlPhp4 Mysql
Php4 Mysql
 
lpi 101 notes de cours
lpi 101 notes de courslpi 101 notes de cours
lpi 101 notes de cours
 
Tp n 3 linux
Tp n 3 linuxTp n 3 linux
Tp n 3 linux
 
Cours c#
Cours c#Cours c#
Cours c#
 
Programmation web cours php -- sahmi academy
Programmation web   cours php -- sahmi academyProgrammation web   cours php -- sahmi academy
Programmation web cours php -- sahmi academy
 
Formation php 1
Formation php 1Formation php 1
Formation php 1
 
Formation php 1
Formation php 1Formation php 1
Formation php 1
 

Dernier

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
 
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
 
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
 
BONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIE
BONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIEBONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIE
BONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIEgharebikram98
 
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
 
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
 
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
 
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
 
Le Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeLe Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeXL Groupe
 
Présentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptxPrésentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptxrababouerdighi
 
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
 
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
 
Evaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. MarocpptxEvaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. MarocpptxAsmaa105193
 
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
 
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
 
le present des verbes reguliers -er.pptx
le present des verbes reguliers -er.pptxle present des verbes reguliers -er.pptx
le present des verbes reguliers -er.pptxmmatar2
 
systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertChristianMbip
 
SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSKennel
 
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)

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
 
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
 
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
 
BONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIE
BONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIEBONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIE
BONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIE
 
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 .
 
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...
 
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
 
DO PALÁCIO À ASSEMBLEIA .
DO PALÁCIO À ASSEMBLEIA                 .DO PALÁCIO À ASSEMBLEIA                 .
DO PALÁCIO À ASSEMBLEIA .
 
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
 
Le Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeLe Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directe
 
Présentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptxPrésentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptx
 
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
 
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
 
Evaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. MarocpptxEvaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. Marocpptx
 
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
 
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
 
le present des verbes reguliers -er.pptx
le present des verbes reguliers -er.pptxle present des verbes reguliers -er.pptx
le present des verbes reguliers -er.pptx
 
systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expert
 
SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.
 

Scripting Linux avec Python partie1.pptx

  • 2. The Power of PowerPoint | thepopp.com 2 Dispensé par : Jacques Polombwe • Master in Computer Systems Security (Cyber-security and Cyber-defense) from the International University of Tunis • Dev’Ops Infrastructure Engineer • Cisco Network Engineer https://www.linkedin.com/in/jacques- polombwe-3ab69b152/ LinkedIn jacquespolombwe@gmail.com Gmail tumblr.com/bruce_beresford tumblr
  • 3. 01 02 03 04 05 06 Plan du cours Notions sur Linux Notions sur Python Bibliothèques réseau Ansible Docker Kubernetes The Power of PowerPoint | thepopp.com 3
  • 5. Pourquoi les scripts ?  Les scripts jouent un rôle important dans l'administration système car ils permettent aux administrateurs d'automatiser les tâches répétitives, de gérer un grand nombre de systèmes à grande échelle et d'assurer une configuration cohérente sur différents systèmes .
  • 8. Le Shell 8 Le shell est l’interpreteur de commandes de Linux. C’est un programme qui prend les commandes du clavier et les donne au système d'exploitation pour qu'il les exécute. Autrefois, c'était la seule interface utilisateur disponible sur un système de type Unix tel que Linux. De nos jours, nous avons des interfaces utilisateur graphiques (GUI) en plus des interfaces de ligne de commande (CLI) telles que le shell. Il existe plusieurs shells, tous partageant des points communs. L’utilisateur est libre d’utiliser celui qui lui convient le mieux parmi (entre autres) : • le Bourne-Again shell (bash), • le Korn shell (ksh), • le C shell (csh), • etc.
  • 9. Le Shell 9 Le shell est aussi un langage de programmation qui comprend non seulement les commandes, mais aussi des structures de contrôle (constructions conditionnelles et boucles) On peut stocker un ensemble de lignes de commandes dans un fichier texte pour en faire un script shell exécutable, les commandes sont exécutées de manière séquentielle. Pour pouvoir être lancé, le fichier créé doit avoir le droit d’exécution (chmod +x) ou le lancer en faisant bash nom_du_script. Si la première ligne du fichier débute par #! (Shebang), elle doit être suivie du chemin du shell à lancer. Si ce n’est pas le cas, le shell courant l’exécutera.
  • 10. Les permissions des scripts 10 Les permissions déterminent le niveau d'accès d'un utilisateur à un fichier. Lorsqu'un utilisateur exécute un programme et que celui-ci accède à un fichier, les autorisations sont vérifiées pour déterminer si l'utilisateur dispose des droits d'accès corrects au fichier. Il existe trois types de permissions : lecture, écriture et exécution. Chacune a une signification différente selon qu'elle est appliquée à un fichier ou à un répertoire. 4 = r (lire) 2 = w (écrire) 1 = x (exécuter)
  • 11. Le chemin The Power of PowerPoint | thepopp.com 11 Lors de l’utilisation d’un programme, le shell utilise la variable d’environnement PATH pour retrouver le chemin d’accès à ce programme. quand vous tapez une commande ("ls" par exemple), le shell regarde dans le PATH qui lui indique où chercher le code de la commande. # echo $PATH Par défaut Parfois, vous souhaiterez peut-être installer des programmes dans d'autres emplacements de votre ordinateur, mais être en mesure de les exécuter facilement sans spécifier leur emplacement exact. # export PATH=$PATH:File/Place Personnaliser
  • 12. 12 Les variables Une variable est une zone mémoire à laquelle nous attribuons une valeur. La valeur assignée peut être un nombre, du texte, un nom de fichier, un périphérique ou tout autre type de données. Une variable n'est rien d'autre qu'un pointeur vers les données réelles Pas besoin de déclarer les variables comme en langage C, par exemple. On peut directement affecter une valeur à une variable de cette façon : variable=valeur
  • 13. Les variables 13 En début de script, on peut définir la valeur de départ des variables utilisées dans le script. VARIABLE="valeur" Variable interne Les variables d'environnement sont les variables spécifiques à un certain environnement. Par exemple, chaque utilisateur d'un système d'exploitation a son propre environnement. Variable d’environnement
  • 14. Les variables (suite) 14 Elles s'appellent comme ceci dans le script : echo$VARIABLE Il peut être utile de marquer les limites d'une variable avec les accolades. echo${VARIABLE} Par exemple : #!/bin/bash # script2.sh PRENOM="esis" echo"dossier personnel /home/$PRENOM" exit Variables internes Vous pouvez déclarer une variable d'environnement requise uniquement par votre utilisateur (par exemple, un jeton secret) qui n'a pas besoin d'être exposée aux autres utilisateurs. Voici quelques exemples de variables d'environnement sous Linux : $USER: Utilisateur actuel $HOME: Répertoire personnel de l’utilisateur actuel $PATH: Chemin d’accès au programme shell Variables d’environnement
  • 15. Les variables spéciales 15 $0: nom du script. Plus précisément, il s'agit du paramètre 0 de la ligne de commande $1,$2, ...,$9: respectivement premier, deuxième, ..., neuvième paramètre de la ligne de commande $*: tous les paramètres vus comme un seul mot $@: tous les paramètres vus comme des mots séparés : "@"équivaut à "$1" "$2" ... $#: nombre de paramètres sur la ligne de commande $-: options du shell $?: code de retour de la dernière commande $$: PID du shell $!: PID du dernier processus lancé en arrière-plan $_: dernier argument de la commande précédente
  • 16. Substitution des commandes 16 Une fonctionnalité du shell très utile lors de la création de scripts s'appelle la substitution de commandes. Cela permet au script d'exécuter une commande shell et de rediriger la sortie de la commande vers une variable au lieu d'afficher la sortie sur le terminal. sysadmin@localhost:~$ start=$(date) sysadmin@localhost:~$ end=$(date) sysadmin@localhost:~$ echo $start $end Fri Sep 18 03:58:34 UTC 2020 Fri Sep 18 03:59:22 UTC 2020
  • 17. 17 Interaction utilisateur La commande echo pose une question à l’utilisateur La commande read lit les valeurs entrées au clavier et les stocke dans une variable à réutiliser. echo"question" read reponse echo $response On peut aller plus vite avec read-p: read-p "question" reponse echo $reponse
  • 18. Fonctions 18 Pour structurer et réutiliser son code comme dans tout langage, on peut utiliser des fonctions. Pour déclarer une fonction, on utilise la syntaxe suivante : maFonction() { instructions } Ou de manière plus ancienne : Function ma_fonction{ instructions } La déclaration d'une fonction doit toujours se situer avant son appel. On les mettra donc également en début de script. Par exemple : #!/bin/bash # script3.sh read-p"quel est votre prénom ?" prenom reponse() { echo$0 echo"merci $prenom" exit } reponse exit
  • 19. 19 Structure conditionnelle et tests Lors de l'écriture de scripts shell, il y aura des moments où un administrateur voudra exécuter certaines commandes en fonction des conditions . Une instruction conditionnelle peut être utilisée pour déterminer les éléments suivants : ● Si deux variables de chaîne ou valeurs correspondent (ou ne correspondent pas) ● Si deux variables ou valeurs numériques correspondent (ou ne correspondent pas) ● L'état des fichiers (si le fichier existe, si le fichier est un répertoire, etc.) ● Si une commande se termine avec succès La commande test peut effectuer des comparaisons numériques, des comparaisons de chaînes et des opérations de test de fichiers.
  • 21. Structure conditionnelle (suite) 21 Pour vérifier qu'une ou plusieurs conditions sont remplies avant d'effectuer un traitement, on utilise souvent le if, par exemple : if [ $age -ge 18 ]; then echo Vous etes majeur(e) fi If Le else (sinon) permet de compléter le if pour effectuer un traitement dans le cas ou la condition n'est pas remplie. Exemple : if [ $age -ge 18 ]; then echo Vous etes majeur(e) else echo Vous etes mineur(e) fi Else Le elif (else if) permet d'imbriquer plusieurs if les uns dans les autres pour pouvoir traiter tous les cas possibles : if [ $feu = «rouge» ]; then echo N'avancez pas elif [ $feu = «orange» ]; then echo Ralentissez else echo Allez-y fi Elif
  • 23. Exercices The Power of PowerPoint | thepopp.com 23 Ecrivez un script qui indique le type de système d'exploitation. Écrivez un script qui dit si le premier paramètre passé en ligne de commande est un nom de fichier ou un nom de répertoire, ou de type inconnu.
  • 24. 24 Plusieurs conditions Vous pouvez aussi combiner un certain nombre de conditions les unes après les autres, par exemple pour vérifier que l'àge entré par l'utilisateur est situé entre 0 et 100 : if [ $age -le 0 ] || [ $age -ge 100 ]; then echo l'age entré n'est pas correct fi Pour combiner plusieurs conditions, vous pouvez utiliser soit OU ( || ), soit ET ( && ). Il s'agit des opérateurs logiques : OU signifie soit l'un, soit l'autre, soit les deux. ET signifie l'un et l'autre obligatoirement.
  • 25. 25 Case La structure case permet de faire un traitement différent en fonction de la valeur d'une variable, par exemple : #!/bin/bash echo Quel est votre OS préféré ? echo 1- Windows 2- Linux 3- Mac OS 4- Autre read choix case $choix in 1) echo " Vous préférez Windows " ;; 2) echo " Vous préférez Linux ";; 3) echo " Vous préférez Mac OS ";; 4) echo " Vous préférez un autre OS ";; else ) echo « Vous devez taper un nombre entre 1 et 4 ! »;; esac
  • 26. 26 Les boucles Les boucles servent en général à deux choses : – Vérifier qu'une information saisie par l'utilisateur est correcte et lui faire recommencer la saisie tant que ce n'est pas correct – Recommencer un certain nombre de fois la même suite de commandes, d'autre part elles fonctionnent toujours avec ces trois critères : – Une valeur de départ – Une condition d'entrée ou de sortie – Une incrémentation Les boucles While et Until testent une condition avant d'effectuer le traitement, ce qui veut dire qu'il se peut qu'on n'entre jamais dans la boucle.
  • 28. 28 Boucle while While signifie tant que, ce qui veut dire que la boucle sera exécutée tant que la condition est respectée. Exemples : #!/bin/bash i=1 # Valeur de départ 1 while [ $i -le 5 ]; do # Condition de sortie : i > 5 echo tour de boucle n° $i i=$((i+1)) # Incrément de 1 par tour de boucle done continuer=o # Valeur de départ «o» while [ $continuer = «o» ]; do # condition de sortie : pas o echo Voulez-vous recommencer ? o/n read continuer # Nouvelle valeur de continuer done # (qui remplace l'incrément)
  • 29. 29 Boucle for A priori, la boucle for est utilisée quand on veut exécuter un ensemble de commandes un nombre précis de fois. Exemple : echo Combien voulez-vous d'étoiles ? read nombre for i in `seq $nombre` do echo -n * done
  • 30. Exercices The Power of PowerPoint | thepopp.com 30 Ecrivez un script qui demande une valeur à l’entrée et affiche sa table de multiplication jusqu’à la dixième itération. Ecrivez un script qui demande une valeur à l’entrée et calcule sa factorielle. Ecrivez un script shell qui ira dans tous les fichiers stockés dans le répertoire /etc et affichera combien de fois le mot nameserver est repris dans le fichier resolv.conf
  • 32. 32 Manipulation des fichiers Sous linux, la plupart des opérations sont effectuées sur des fichiers. Et pour gérer ces fichiers, Linux a des répertoires également appelés dossiers qui sont maintenus dans une structure arborescente. Cependant, ces répertoires sont également un type de fichier eux-mêmes. Linux a 3 types de fichiers : • Fichiers réguliers • Répertoires • Fichiers spéciaux : Pour les E/S Chaque fois qu'un individu exécute une commande, il peut prendre une entrée, donner une sortie ou faire les deux. Ls, mkdir, cat, tail, head, less, touch, cp, rm, mv
  • 33. stdin, stdout et stderr 33 Entrée standard Sortie standard Sortie d’erreur standard  Les entrées peuvent provenir soit du clavier soit d’un fichier.  La sortie standard d’un programme, que l’on nomme stdout, est un flux qui va contenir tout ce qui est affiché à l'écran par la commande.  La sortie d'erreurs, est similaire à la sortie standard à la différence que ce flux est destiné aux erreurs renvoyés par la commande. Par défaut cette sortie est dirigée vers le terminal, et s'affiche donc en même temps que la sortie standard.
  • 34. Redirection 34 La redirection nous aide à rediriger ces fonctionnalités d'entrée et de sortie vers les fichiers ou dossiers que nous voulons, et nous pouvons utiliser des commandes ou des caractères spéciaux pour le faire. Par exemple, si nous exécutons la commande "date", cela nous donne une sortie à l'écran. Cependant, si nous voulons enregistrer le résultat dans un fichier à la place, nous pouvons utiliser la redirection de sortie.
  • 35. 35 Redirection (suite) $ cat ESIS_as_gars.txt • Josué • Ben • David $ cat ESIS_as_filles.txt • Esther • Consolate • Sarah $ cat ESIS_as_gars.txt ESIS_as_filles.txt > ESIS_as.txt $ cat ESIS_as.txt • Josué • Ben • David • Esther • Consolate • Sarah
  • 36. 01 02 03 Types de redirection 36 Écraser la redirection Ajouter la redirection Redirection de fusion  « > » Sortie standard cat > Esis_as.txt  « < » Entrée standard cat < Esis_as.txt  « >> » Sortie standard cat >> ESIS_as.tx  « << » Entrée standard cat << EOF jacques EOF  "p>& q" Fusionne la sortie du flux p avec le flux q  "p <& q" Fusionne l'entrée du flux p avec le flux q
  • 37. 37 Redirection (suite) On pourrait souhaiter enregistrer les erreurs dans un fichier à part pour ne pas les oublier et pour pouvoir les analyser ensuite. Pour cela, on utilise l'opérateur 2>( le chiffre 2 collé au chevron). $ cat ESIS_as_gars.txt ESIS_as_fillesz.txt > ESIS_as.txt 2> ESIS_asz.txt
  • 38. 38 Redirection de fusion Parfois, on n'a pas envie de séparer les informations dans deux fichiers différents. Heureusement, il est possible de fusionner les sorties dans un seul et même fichier. Comment ? Il faut utiliser la syntaxe suivante : 2>&1. Cela a pour effet de rediriger toute la sortie d'erreurs dans la sortie standard. Traduction pour l'ordinateur : « envoie les erreurs au même endroit que le reste ». Ici, 2>&1 signifie que STDERR redirige vers la cible de STDOUT. Plus formellement, le message d'erreur généré par « 2 » est fusionné avec la sortie actuelle « 1 » $ cat ESIS_as_gars.txt ESIS_as_fillesz.txt > ESIS_as.txt 2>&1
  • 39. Exercices The Power of PowerPoint | thepopp.com 39 Créez un fichier contenant les noms de cinq personnes. Utilisez cat et la redirection de sortie pour créer le fichier et utilisez un document ici pour terminer l'entrée.
  • 41. 41 Find La commande find sous UNIX est un utilitaire de ligne de commande permettant de parcourir une hiérarchie de fichiers. Il peut être utilisé pour rechercher des fichiers et des répertoires et effectuer des opérations ultérieures sur ceux-ci. Il prend en charge la recherche par fichier, dossier, nom, date de création, date de modification, propriétaire et autorisations. En utilisant '- exec', d'autres commandes UNIX peuvent être exécutées sur les fichiers ou dossiers trouvés.
  • 42. Syntaxe: The Power of PowerPoint | thepopp.com 42 find [d'où commencer la recherche] [l'expression détermine ce qu'il faut trouver] [- options] [ce qu'il faut trouver] Quelques options : •-name esis : recherche les fichiers spécifiés par ‘esis'. •-newer file : recherche les fichiers qui ont été modifiés/créés après 'file'. •-perm octale : Recherche le fichier si la permission est 'octal'. •-print : Affiche le nom du chemin des fichiers trouvés en utilisant le reste des critères. •-empty : recherche les fichiers et répertoires vides. •-user nom: vrai si le fichier appartient à l’utilisateur nom.
  • 43. Exemples The Power of PowerPoint | thepopp.com 43 $ find ./for -name for.sh $ find . -mtime+20 -print $ find /home/jacques -type f -amin -40 $ find ./while -perm 764 $ find . -size +50k $ find ./ -type f -name "*.txt" -exec grep ‘esis' {} ;
  • 44. Exercices The Power of PowerPoint | thepopp.com 44 Recherchez, dans toute l’arborescence, tous les fichiers de taille supérieure à 300 000 caractères. Puis affichez à l’écran de la liste de ces fichiers. Recherchez tous les fichiers créés entre les 5 et 10 derniers jours
  • 45. 45 Grep Dans les systèmes Linux et Unix, Grep, abréviation de « global regular expression print », est une commande utilisée pour rechercher et faire correspondre les fichiers texte contenus dans les expressions régulières.
  • 46. Grep (suite) 46 grep [options] pattern [files] Description des options -c: Ceci n'imprime qu'un nombre de lignes qui correspondent à un motif -h: affiche les lignes correspondantes, mais n'affiche pas les noms de fichiers. -i: Ignore, la casse -l: affiche uniquement la liste des noms de fichiers. -n: affiche les lignes correspondantes et leurs numéros de ligne. -v: Ceci imprime toutes les lignes qui ne correspondent pas au motif -e exp: spécifie l'expression avec cette option. Peut utiliser plusieurs fois. -f fichier: Prend des motifs du fichier, un par ligne. -E: traite le modèle comme une expression régulière étendue (ERE) -w: correspond au mot entier -o: n'imprime que les parties correspondantes d'une ligne correspondante, avec chacune de ces parties sur une ligne de sortie distincte.
  • 47. Grep(suite) The Power of PowerPoint | thepopp.com 47 $ grep “[^aeiou]” file1 #Match all lines that do not contain a vowel $ $ grep -i “hello” $ grep “done$” file1 #Match all lines that end with ‘done’. E.g: “well done”
  • 48. 48 Expressions régulières Les expressions régulières permettent de décrire des motifs formés de caractères Les caractères spéciaux pour les expressions régulières sont les suivants : | . * + ? ^ $ ( ) [ ] { } Exemples a : le caractère a [i n] : un caractère appartenant à l'ensemble ijklmn . : un caractère quelconque . : le caractère . [^0 9] : tout caractère autre qu'un chiffre ^linux$ : une ligne ne contenant que linux ^$ : une ligne vide [A Z]{8} | [0 9]{4} : 8 lettres majuscules ou 4 chiffres
  • 49. Expressions régulières (suite) The Power of PowerPoint | thepopp.com 49 esis{2} : esis et aucune autre chaîne : Le quantifieur {2} n’est appliqué qu’au dernier s (esis){2} : esisesis et aucune autre chaîne :Le quantifieur {2} est appliqué à l’expression esis