0 évaluation0% ont trouvé ce document utile (0 vote) 83 vues29 pagesChap 2
Copyright
© © All Rights Reserved
Formats disponibles
Téléchargez aux formats PDF ou lisez en ligne sur Scribd
A
Systémes d’exploitation
Chapitre2
Commandes de Base Linux et
Programmation Shell
Souheil Ben Ayed
Ecole Nationale d’Ingénieurs de Sousse (ENISo)
Université de Sousse
Interpréteur de commandes
Un utilisateur peut manipuler un systéme
d’exploitation par Vintermédiaire d'un interpréte de
commandes (appelé "Shell en anglais) , sans avoir &
créer un programme.
Le Shell ne fait pas parti du noyau du systéme
exploitation, mais il utilise le noyau " Kernel " pour
exécuter des programmes, créer des fichiers, ete, ...
interpréter, puis les exécuter dans le noyau.
Chaque interpréteur de commande est muni
d’une syntaxe et peut aussi étre programmable.
Le terminal est |'interface (textuelle) permettant
d'interagir avec l'interpréteur des commandes.
— Utilisé comme I'entrée standard et la sortie standard.
Département informatique Industrie
—— eo
Interpréteur de commandes Réle d'un interpréteur de commandes
Il permet d'entrer des commandes, les Exécution des commandes et des programmes
Gestion des variables
Traitement des caractéres spéciaux
Redirection des entrées/sorties
Fournir un langage de programmation (Script Shell)Interpréteur Shell
Exemples d'interpréteurs de commandes
Bourne Shell et dérivés (UNIX)
Le shell est le programme qui gére I'invite des . te
commandes (la partie interactive) sous UNIX. © Bourne again shell (bash)
+ Remplace le Bourne shel. Il est utiisé par défaut sur les principales
Fournit un moyen aux utilisateurs pour rae
ye Ps © Korn shell (ksh)
— Démarrer des programmes “Compasble sec_Je oune shell et cot Ge nombreuses
, a . Caracteristiques de S
~ Gérer des fichiers sur le systéme des fichiers ezshell ash}
—Gérer les processus en cours d'exécution sur le
= Désigné comme une extension de Boume shell avec beaucoup
eiaeal cate kat Gamélorations. Reprend des fonctions pratiques de bash, ksh et tes
téme d'exploitation * p
TTT i
Exemples d'interpréteurs de commandes Syntaxe générale d'une commande
€ Shell et dérivés (UNIX)
Sous UNIX:
© Chell(csh =
Pacers rms apn emecnangtsemcrecie Scommande [-options] _ [arg’_arg2_arg3...]
«Tesh (tesh)
* Bose sure C shel Ajute&csh plus amelioration.
Les arguments sont es objets cbles de fa commande,
Les arguments sont séparés par des espaces.
Une command® peut accepter une ou
‘serlhostiSTs 1 all /ete
plusieurs options. Une option est at
précédée du caractere tret(~')
Microsoft
DOS: [Link]
Windows: [Link]
PowerSHell
USertehost:-Snkdir rept reo? reps
“Linux, Windows et MacOs,
La commande 8 exéeuter
(généralement en minuscule)
Le prompt ou
vite du shellSyntaxe générale d'une commande
Sous DOS
C:\ecommande [argt arg2 arg3...] options]
Les eptons del cfmande son précéaés par
La liste des arguments G\eeraiodi CA Je
Lernom de la commande
e\users\>
Les arguments et les options
Sous Unix, les arguments et les options
peuvent étre des suites ininterrompu de
caractéres ou des chaines de caractéres
délimitées par ‘ou “
Les arguments sont séparés par des espaces et
peuvent étre précédés par des options.
Les arguments et les options
Chaque option est précédée par le caractére
tiret '-'.
Il est possible de combiner plusieurs options
(d'un seul caractére ) et de les précéder tous
d'un seul tiret.
2 ]abes$is -a 1 [hera/user/aocs)
{dees -al /hone/user/docs/
Les arguments et les options
Certaines options peuvent étre d'un mot
complet ou d'un mot composé.
Ces options sont précédées chacune par deux
tirets successives '—'.
serthosti~/docsiTs 1 all /hone/user/docs/
eeLes caractéres spéciaux
°? Remplace 1 caractére quelconque
Remplace 0 ou plusieurs caractéres
*t] Un caractére parmi l'ensemble des
caractéres
ef] Un caractére different de I’ ensemble
des caractéres
on” Désigne le répertoire personnel de
Vutilisateur
Les caractéres spéciaux
erdhost:-/docss1s
Fleet Flezexe — [Link] Olea cote
aust ane
sershost:~/docs$is
Fleltwt [Link] — [Link] OL txt OZ. Xt
aiet aie
serthost:~/docs$1s ct
let cnt cdtxtcztat
userdhost:~/docs$1s c21*
aioe ane
userdhost:~/docs$1s fite[2-9]*
Fieiext #[Link]
‘serdhost:=/docs$1s-*[92)-*
filelient flestxt cOLtxt —[Link]
Les caractéres spéciaux
Userahasts-/docs22s0=
saactxt aftxt enail [Link] —[Link]
tpatxt zat Lfilete — 2022\[Link]
userdhost:~/docs2Sis [a-21¢
samt afte [Link] [Link] zee
userghost:~/docs2815 [A-20-4¢
ma? Filet [Link] — [Link]
userthost:~/docs281s 722°
[Link] emai]
Uuserahost:=/does281s [4-24-72 pA"
saat emai [Link] —[Link]
Flux d’entrée/sor
Sous UNIX un processus est créé avec 3. flux
(communication) :
* Entrée standard (stdin, flux nO) :
lecture des données d’entrée.
* Sortie standard (stdout, flux ri)
écriture des données de sortie,
* Sortie erreur (stderr, flux 12) :
écriture des données d’erreur.Redirection des entrées/sorties
ll est possible de changer la destination des flux
d’entrée/sortie:
< redirige stdin
> redirige stdout
2> redirige stderr
>> ajoute stdout (en fin de fichier)
2o> ajoute stderr (en fin de fichier)
>& redirige stdout et stderr
2>81 redirige stderr sur stdout
Rediractian dac antréaclear
Mrersioet>-/abces 1
Bieece Fitea ee
cee cline
Seershose:-/mess 1e> {fle 1s_res.txt
sBershost:-/dess cav FileTo-res-txt
[Link] —cOLexe —_cOR. txt
Flees flexor filedext — cOLtxt ——[Link]
aur eee
Userdhose:~/docsS. 15 >» #¥1¢_Is_res oe
Ueerdhost:=/doess cat fiTe-s_res txt
Filelext— filedoxt — [Link] — cOltxt ———[Link]
quer. ajar
Hlelexe Hilezoe — filedext — cOLexe ——[Link]
aioe cate
sershese:-/doess. 1s. /ete/at
4st inpossiole d'accéder a /evc/a :
Aucun fichier ou dossier de ce type
Usersost:-/doess 1s /ete/a* 2 > File [Link]
sserdhose:-/doesS cat Fle 1s res_ext
Ys: inpossiole dacceder a /ete/a
ee Ue J
Opérateur de contrdéle
Opérateurs de contréle:
& ae | is; 0 ob
Servent a séparer deux commandes ou deux listes.
Utilisées pour la communication interprocessus aux
moyens des entrées/sorties.
Une ligne de commande ne comportant aucun
opérateur de contréle est dite simple. Composée
dans le cas contraire.
Exécution de commandes
Uoperateur ';' permet de séparer plusieurs
commandes exécutées dans l'ordre sur une
seule ligne.
$conamandel commande2; commanded |
userdhost:~Snkdir docs ; 1s /bin/* ; echo “sonjourl!1* > ~/[Link]Tube ou Pipe Exécutions conditionnelles
Les commandes pipées ou “pipe”. Commandes enchainées && et || sont des opérateurs binaires.
Parun ‘| Scommande! &8 commande2 | ta commande! réussi a
‘Scommandel | commande?
commande? est exécutée
Le shell crée les processus associés & chaque commande et ‘Scommande! || commande2 lacommande2 sexécute seulement
détourne la sortie du premier (commande) sur l'entrée du sila commanded échoue
second (commande2)
Le résultat de la commande! est utilisé par la commande2.
userdhost:-S1s ~/docs/* | sort | more
Userahost:-Sakdir cours && cd cours @& echo "eercice 1" > [Link]
Userthost:-Scd TP || mkdir TP || 1s *
Exécution en paralléle Priorités des commandes
. . Commandes ou pipelines séparés par des
opérateur '&' permet d'exécuter une commande en arrigre- ‘Operateurs de controle Priorité égale. Le premier
lati: —— Exemple: opérateur rencontré
——___Tremporte la priorité
‘ Rel Seommandel & commande 2| Commande 3 @& commande4 || q ——,
Uoperateur permet aussi d'exécuter plusieurs commandes ————&—&_—E
simultanément-
UNIX: la commande man Sian section) ~ commande»
— Les pages du manuel UNIX sont divisées en plusieurs sections:
* Section 1: commandes utilisateur
+ Section 2: appels systéme
+ Section 3: fonctions diverses
+ Section 4: format de fichiers
+ Section 5: divers
— man -k < mot> :Donne la description courte des commandes
liges &
DOS: /?
Casair?
Affichage de fichier
cat
~ Afficher le contenu d'un fichier
Scat < nom fichier >
— Afficher le contenu de plusieurs fichiers
‘Scat . < fichier >
echo
~ Afficher un text
“Secho
— Interpréter les backslash avec la commande echo
Secho zt
Affichage de
hier
isée pour afficher le contenu d'un fichier texte, page
Par page. |S more < nom fichier»
less
— Permettant de visualiser un fichier texte page par page.
Sa fonction est similaire a la commande more, mais permet
en plus de revenir en arriére ou de rechercher une chaine.
Sess < nom fichier >
Affichage de fichier
Userahost:~$ echo sonjour
Bonjour
Uuserahost:-$ echo sonjour > Filet
Userahost:~$ cat fileL
Bonjour
Userdhost:~$ echo -e ‘wonjour \n2023" > fie2
Userahosti-$ cat file2
Bonjour
2023
Userahost:-$ cat file? filet
Bonjour
2023Echappement des caractéres spéciaux
Le Shell (Unix) propose trois méthodes
d'échappement.
= Le backslash \; échappe un caractére (exemple: \n, \r,
\t eu)
— Les guillemets simples ou apostrophes ' ': servent a
délimiter le contenu (exemple 'une phrase’)
— Les guillemets double: permettent I'interpolation de
variable : “la valeur de la variable var=Svar"
Echappement des caractéres spéciaux
L'échappement avec backslash (\) précédant un
caractére indique au shell d'interpréter ce caractere.
\n_[ retour ala ligne \\___|donne & Vantislash sa signification litérole
“\r _| renvoie le curseur en VY donne au guilemet sa signification ittérale
ebue se Nene \S_—_ donne au caractore $ sa signification
\t_[ tabulation lireerale
|\W___| tabulation verticale \ONNN | Transcode en octal le caractbre dont le
code ASCII est NNN
eet) [ait tensceee er beacicinaele aaa
| praitune ee donicense ner ena
Yb | retour en arviere
Echappement des caractéres spéciaux
Userahosti=§ echo eonjour
Bonjour
uuserdhostieS echo -e ‘sonjour \nTigne suivante \ttabulation’
Bonjour
Vigne suivante tabulation
userdhost:-$ echo'=e "Tes symboles \S et \\ ne sont pas
interprétés s\"iTs sont précédés par un backslash \\."
Tes synboles $ et \ ne sont pas interprétes s'115 sont précedés
par un backslash \,
Userahost:~5
Gestion de fichiers et répertoires
fm ‘Supprimer un fichier ou un répertoire,
mw Déplacer ou renommer un fichier ou un répertoire
mkdir (créer un répertoire
@ Copier un fichier ou un répertoire
ed {Changer le répertaire courant. Se déplacer dans lesystime de fichier.
s ‘Afficher laste des fichiers et repertoires,
pwd ‘Afficher le chemin du repertoire courant.Lister le contenu d'un répertoire
Is 31 laren) = chemin >
: le chemin vers répertoires ou fichiers
Options:
iste les attibuts de fichiers (les permission, le proprietaire,
Tste tous les fichiers et répertoires en plu les fichiers cachés
affiche en séparant les fichiers par une vigule
‘tie par date
F trie par type de fichier (affcheles types de fichier)
s ‘tie par ordre de talle décroissante
x {tie par extension
Lister le contenu d'un répertoire
userahost:~/does/$ 15
aLtxt chap [Link] _exerciced.txt
[Link] Thtxt TORO 1s
Userahost:~/docs/$ 1s -al
total 25
rincr-xe-x 2 user user 4096 aug 1 10:25
riar-xe-x 5 user user 4096 aug 1 10:25
Srixr-xF-x 3 user user 4096 Sep 10 11:10 Chapt
Stwerw-r-> 1 user user 105 sep 10 12:25 exercicel. tt
Steno J user user 1278 sep 10 12:43 exercice2. ot
ciweracr-- L user user 6103 Aug 9 17:15 [Link]
stwerwer-- 1 user user 465 sep 13 18:22 [Link]
Siw-rw-r-- 1 user user 2107 sep 13 21:53 [Link]
rwxr-xe-x 3 user user 4096 Sep 2 11:10 TDs
userehost:~/docs/S
le a
Supprimer un fichier ou un répertoire.
rm Sim [if] .< fchiem >
Sim [ifr] < repertoire] >.< repertoiren >
Options:
7 Jinteractve. Demander &Futiisateur de confirmer effacement de
thaque fichier
force. gnorer les fichiers non existants, et ne pas iterroner
Putisateur
a Fécursive. supprime un répertoie et ses sous répertoires
Supprimer un fichier ou un répertoire.
userdhost==/docs 1s
Filelltxt fileI2txt [Link] fH le22exe eter
chtxt att ciitt [Link]
Userdhost:~/docd rm FTe?L. txt
usershost:~/docs 15
[Link] [Link] [Link] ctxt txt
cliext cd2itktreph
Userahost:~/docsrm -f file?[Link]
userahost:-/decSrm _< nouveau. nom>
~ déplacer un fichier
| $y Ef] < chemin. destination>
Options:
2 backup. Hfectuer une copie de secoure des fichiers qu dahent Se effacks
i Interactive, Demander&Tutisateur de cnfirmer avant de renommer ou de
déplacer chaque fichier.
£ force. Ne pas interroger 'utilsateur avant de dplacer ou renommer,
u update. Ne pas deplacer un fichier sil ecraserait un fichier destination
iii cs
Déplacer/renommer un fichier
Déplacer un fichier (méme nom de fichier source et destination)
‘Smv =/docl filed txt =/doe2/
Déplacer plusieurs fichiers
Smy =/docl txt =/doc2y
Renommer un fichier
Sm ixt_=/doei
soci Tt
Sm earcedbt Tat
Déplacer et renommer un fichier
‘Sinv ~/[Link] =/TD/Exercicel txt
Déplacer/renommer un répert
my
— renommer un répertoire
Smy [fu] _ < noweav-nom>
~ déplacer un répertoire
‘Stnv Gifu] <[Link]>_< chemin-destnation>
Options:
a Jiteractive. Demander 8 Tutilzateur de confirmer avant de renommer ou de
iéplacer chaque répertoire.
{force. Ne pas interroger lutlisateur avant de déplacer ou renammer.
Uupdate. Ne pas déplacer un fichier sil craserait un fichier destination
fxistant ayant une date de modification plus recente.
#
Déplacer/renommer un fichier
Déplacer un répertoire
Sy ~/chap!_ ~[SE/chapl
Déplacer plu:
Sime chap?
urs répertoires
~/SE)
Renommer un répertoire
Simy ~/Sichapl __ ~/3E/chap0i
Sv chap? chapo2
Déplacer et renommer un répertoire
Smy =/SE_ =/GTE/SE1Création de répertoires
mkdir
— Création d'un répertoire:
S mkdir
S mk < chemin nom-répertoire >
~ Création d'un répertoire et des répertoires parents:
S mkdir -p
+ Loprion~p permet de créer le répertoire et les répertoires
parents s'ls n'existent pas.
Création de répertoires
Création d'un répertoire
Smid
images
Création d'un répertoire et des
sot | ree ‘Lz
répertoires parents =
Smit =/does ep wT |
Création de plusieurs répertoires =
Simksir=p ~[doesirep2 _~limages/rep3 rend
3 mkdir =[does/iep2_=/images|rep3_ ~/images(ren3/repd
Copier un fichier ou un répertoire.
op
— Copier un fichier [Sep [bipul = fehier_origine > < fchier_destination >
— Copier un répertoire
Sep [-bipra] < repertoire
1 Jnteractive. Avert de existence d'un fichier de méme nom et demande s'il peut ou
non remplacer son contenu.
°B comme 'opton « s'assure que la copie n’écrase pas un fichier existant. Le fichier 6cras@
fst toutefois alors sauvegardé,renommé avec un suffxe tilde (”
{y_affiche es noms des fichiers copies.
‘2 prliserve les attributs des fichiers lors de a cople,
. copie de maniere
Copier un fichier ou un répert
re.
Copier un fichier
urs répertoires,
[Sep =[docsifile*tat_ =/destination)
Copier un répertoire et tout ses sous-répertoires et fichiers.
CESEROEcommande touch
touch
Userdbosti-$ 1s 1 filel
Yer cannot access ‘Filel*
user@host:-$ touch FileL
Userthost:$ Is -1 FileL
Stwer--r-- 1 user user 0 Sep 13 11:27 fileL
userehost:-$
= Modifier la date diaccés et la date de modification d'un fichier.
— Si le nom du fichier n’existe pas il est créé avec un contenu vide
= Cette commande est souvent utilisé pour créer des fichiers
vides.
No such File oF directory
Saisie d'un fichier
Userehost:~$ cat > Filel Center)
entrer le texte (Enter)
que vous voulez conserver Center)
Userehost:-$ 1s
D'autres commandes permettent de rediriger un contenu vers
un fichier. Si le fichier n'existe pas dans le systéme de fichier il
sera créé,
Userdhost:-8 echo -e “entrer Te
texte\ngue vous voulez conserve:
FileL
userahost:-$ 1s -1
fileL
userthost:~$ cat fileL
filet
userdhost:-5 cat filel
fentrer Te texte
que vous voulez conserver
Userthost:-5
fentrer Te texte
‘que vous voulez conserver
Userdhast:~§
head
tail
find
wep
Extraire, trier et filtrer des données
se des ste de ue zs des fichiers et affcher le résutat
Ces quelques commandes Unix permettent de traiter un flux
de données textuelles récupérées sur l'entrée standard:
[Aficher les premieres lignes de texte d'un fichier.
ficher les dernidres lignes de texte dun fichier
(Chercher des fchiers/répertoires dans un ou plusieurs répertoires selon
des crttres.
Rechercher des chaines de caractires dans un fichier
CCompter le nombre de lignes, de mots et de caracteres des fichiers
| Trier des ignes de texte d'un fichier
head et tail
‘head! permet d'afficher les premiéres lignes de texte d'un
fichier. Alors que ‘tail affiche les derniéres lignes. (par défaut
10 lignes).
Syntaxe: Shead = fichiers
S head
S head -NUM < fichier >
Stall
5 ull -n NUM « fichier >
S tall NUM < fichier >
NUM: nombre delgneshead et tail
Afficher les 3 premiéres lignes du fichier filed
Userahost:-8 head -n 3 Filed Userahosti-¥ head —3 Filel
premiere Vigne premiere Tigne
Seurieme Tone deuxiane Tene
clest 1a 3ene ligne crest Ta 3eme Vigne
Userdhost:-§ cat filed liserdhose:=$
premiere ligne
Seuxiene Tigne
Clest 1a Sema Tigne
Viavane derniare ligne
Ja derniere Tigne
userthost:-$
head et tail
Uuserahost:-8 cail_-n 2 filed
Viavane derniére 1igne
Ja derniere Tigne
Userahose:~$ ca11 -2 filed
Viavant dernire ligne
Ja derniere ligne
userghost:~$
userhos
crest Ta dene Tigne
Ta Vigne 5
Ja Vigne 6
Afficher les 2 derniéres lignes du fichier filed
Afficher la 4° ligne jusqu‘a la 6* |i
$ head -6 file | tail 3
ne d'un fichier
Ibpremiéxe commence rupere
es 6 premiézes ines,
rcupere les 3 demiézes lignes de
| eesblignes
sort
sort : trie les lignes d’un fichier texte
Par défaut, ‘sort’ affiche l'ensemble des lignes des
fichiers qu'on lui passe en parameétre triées par
ordre croissant ( selon le code ASCII)
Le trie peut étre réalisé selon l'option:
Syntaxe:
(Sore fend fichier >.
sort
trie alphabétique d'un fichier
Userahost:~$ cat file
stylo
bateau
chaise
Userahost:~$ sort file
bateau
chaise
stylo
Userehost:~$ sort -r file
stylo
chaise
bateau
trie numérique
Userghost:-£ cat nonbres txt
ws
32
20
1
Userahost:~S sort -n nombres. txt
a
2
50
ws
Usershost:~$ sort nonbres. txt
a
Bs
2
50cut
Affiche des parties sélectionnées des lignes.
Afficher un nombre de caractéres de chaque ligne.
— Afficher uniquement les caractéres de 3 8 5 de chaque ligne.
[Stout -c 3-5 fichier
— Alficher du 1% au 42 caractére de chaque ligne.
Scut_-¢ -4 fichier
~ Afficher du 3** au dernier caractére de chaque ligne.
Sur -€ 3 fichier
cut
Ilest aussi possible de spécifier un délimiteur et d'afficher un
ensemble de champs.
Options:
sd indique le délimiteur 8 utiliser dans le fichier
-_ indique le numéro du ou des champs & extraire pour les afficher
Afficher uniquement le champ 2 de chaque ligne (délimiteur est la virgule
Sct titer
— Afficher les champs 3 et 5 de chaque ligne (délimiteur est le point '.’).
Scu_-6'-13,5 fichier }
Afficher les champs de 3 a 5 et 8de chaque ligne (déimiteur est le point',',
Seut_-d"-F3-5,8 fichier
wc
La commande we permet de compterle nombre de lignes, de mots
et de caracteres des fichiers
~ options Swe [-Iwel < fichier] >.
+4 nombre de ignes
+ aw nombee de mots
+2 nombre coctets
sm nombre de caractires
Userahost:-Syc filel File
4265 332 Filed
294 4413 20407 Filez
5306 4478 20739 total
Userthost:=$ we -w Filed,
65 Fitel
Rechercher des fichiers
La commande "find" permet de chercher des fichiers/répertoires
dans un ou plusieurs répertoires selon des criteres.
[Sifind_< répertoire de recherche > < erttres de recherche > |
Syntaxe:
Critéres de recherche:
“name recherche sur le nom du fichier.
ype ‘recherche sur le type (d=tépertice, e=carotie, fichier normal).
“user recherche sure propritaire du fiche.
104 recherche sure groupe auquel appartentlepropriftaire da fiche
“perm recherche sures droits daccés cu fichier.
“atime, time, recherche par date de demieraccés, demilre modification ov de
time création du fichier (lors)
“amin, #imin, recherche par date de demier acct, demiere modification ov de
erin, éréation du fichier (Minutes)
———Rechercher de fichiers
la commande find est récursive ( parcourir les répertoires et les sous
répertoires du ).
— Chercher & partir du répertoire racine
terminent par l'extension txt
Sfind
= Chercher tous les fichiers (et répertoires) modifiés en moins de 3 jours dans
toute Marborescence'f!
$find —j_-mtime 3
tous les fichiers (et répertoires) qui se
Rechercher de fichiers
~ Ghercher tous les fichiers créés 2 jours avant, de type fichier et d'extension
"mp3" dans le répertoire ‘/home/user/music’
Sind __jhomejuser/mas
ime
— chercher tous les fichiers de type répertoire dont le nom commence par
"ENISO” créés depuis plus de 5 jours dans le répertoire racine ‘7
Sfind [typed -name ENISO™-ctime +5
Rechercher de fichiers
— Chercher tous les fichiers modifiés 2 & 5 jours avant et de type fichier dans le
répertoire de travail
Gfind = time (2 _-ctime 5 type F
— Chercher tous les répertoires ( type d) danse répertoire racine '/*
appartenant bob dont la permission est fixée a 755,
¥find
type d bob
erm 755
Rechercher de fichiers
~ lest possible de combiner plusieurs critéres avec 'operateur ou "-0" -
— Chercher tous les fichiers/répertoires dont extension est "txt" ou "pdf".
Sfind | name "txt" -@ name pdP™
— chercher tous les fichiers dont I'extension est "xt" ou "pdf".
Sind
=o tame pdLes expressions réguliéres sont des suites de
caractéres formant une expression permettant
de sélectionner un texte ou un motif.
Les expressions réguliéres fonctionnent avec
certaines commandes comme ‘grep’ et
‘egrep'.
Expression réguliére
C'est un motif a associer pour chaque ligne
d'entrée.
Un motif est une séquence de caractéres.
Exemples:
A[o-9}+S /{ la ligne ne contient que des nombres
(t2-9}12{0-9)/2(0-5) Mn entier entre tet 25
Expression réguliére
EL ‘un caractére (n’importe quel caractére)
0? | 003 earactiren
ne 1 plusieurs caractéres 1
08 plusieurs caracteres
tl ‘un caractére parmi celles entre crochets
1 |__| uncaractére diferent de calles entre crochets
3 nau début della ligne
"s alefin delaigne
nfmph | intervalle de répétitions. Le caractére n est répeété dem ap fois
am altemative dans un motif . Le caractére n ou m
)
Expression réguliére
Exemples d'expressions régulizres:
— motif contenant un chiffre impaire Tass
— motif contenant un caractéve alphabétique majuscule “A.
— un caractére alphabétique majuscule ou minuscule "TA-Za-zF
— un caractére quelconque l'exception de 1 et a
un caractére queleonque a l'exception de3,4,5et6 [1/36
— un caractere exception de3,4, 5, 6 f g,heti TearExpression réguliére
Exemples d'expressions réguliéres:
= un nombre compris enteooet sa | "6-5H2F]
un nombre entre 10 et 9999, 910-910, 3°
un mot d'au moins 3 caractéres alphabétiques minuscule { “la-z/3,°
un motif qui correspond ala chaine un ou deux | "unideuxy”
tune ligne qui commence parle caractére m_ [Ani
= une ligne commencant par le caractére m et qui se termi
Les classes de caractéres Perl.
Présentent un raccourci pour certaines classes de caractéres
\d___|Caractres numeériques(chitfre décimal)
\o | Autre chose qu'un chiffre décimal
v | Coractéresalphabétiques (une letre) (2-242)
\L__ Autre chose que les coractiresalphabétiques
w | Caractéres alphanumériques, et «_»
\W | Atte chose ques cractrs alphanumeric, et «
\ | Caractéres espace et tabulation
| Autre chose que les caractéres espace et tabul:
Les classes de caractéres Perl
Un nombre compris ente 00 et 99
Une line ne contenant pas d'espaces ou tabulations
Un mot commencant par un nombre compris entre 20 et 9999, suivi
dau moins 1 caractéres alphanumériques (et'_') et fini par un
caractére qui n'est pas numérique. “9h aiiws io"
Une line ne contenant pas de caractéres alphanumériques, \','" et des
points “AIR WwalS
Les classes d
(alnum:]
= Caractéres alphanumériques
[alphas]
= Caractéres alphabétiques
:blank:]
— espace et caractére de tabulation
[:space:]
~ Caractéres despace/blanc: tabulation, nouvelle ign, tab verticale, retour en
arriere et espace.
~"Lesnombresde 089 (éuvaent 80)
{suppers and (lower:]
=" Caractere ajc oppercxe et minuscules (ower cas)Les classes de caractéres POSIX
= Un nombre compris ente 00 et 99 iat
— Une line ne contenant pas d'espaces ou tabulations [AINIbiankTEES™
— Un mot commencant par un nombre compris entre 10 et 9999, suivi
dau moins 1 caractéres alphanumériques et fini par un caractéve
alphabétique minuscule. "[i=8) Edigit i, 3Maleur| Blower]
La commande grep
Permet d'afficher sur la sortie standard les lignes du fichier
contenant une occurrence d'un texte ou d'un motif
Commande gre:
Syntaxe:
Options; ee
<¢: compter le nombre de lignes contenant le motif
-v :afficher les lignes ne contenant pas le motif
ns numéroter chaque ligne contenant le motif
-£ : supporter les expressions réguliéres étendues
-P :Interpréter le motif comme une expression régulire Perl.
Sgcep (-EPcwnl motif < fichier >
La commande egrep
Recherchez un motif en utilisant des expressions réguliéres
étendues.
egrep était & l'origine une version étendue et améliorée de grep
Méme resultat que I'exécution de grep avec I'option ~E
‘Syntaxe:
Options:
-c: compterle nombre de lignes contenant le motif
-v: afficher les lignes ne contenant pas le motif
=n: numéroter chaque ligne contenant le motif
-P : Interpréter le motif comme une expression réguliére Perl.
[Segrep [Pewnl moti < fichier >
Exemples grep et egrep
Afficher les lignes contenant le texte "Bonjour"
Siegrep. Bonjour exemple:ot
Afficher les ligne contenant le texte (Bonjour) | #3##P \(Benjour|) exemple txt
Afficher les lignes commengant par le mot Bon]
Se grep "Monjour” exemple-txt
‘Afficher le nombre de lignes commencant par le mot Bonjot
Afficher le nombre de lignes ne commencant pas par le mot Bonjour
[Link] -c-v "ABonjour" exemple. txt
2BExemples grep et egrep
— Afficher les lignes commengant par un nombre entre 10 et 999 et qui
seterminent par un point. FE fap SE Vali S|O-BHi 2h). Seekemplewt
“AT -B]0-91i 2). exemple
Fegrep
— Afficher et numéroter les lignes commengant par lun des mats: Un,
Une,le,la: $gren -E-n **(Un|Unelellay” exempletxt
Une carte graphique
Thlesysteme dlexplottation |
ev programmation Shell
a | | aH
Script shell
Un shell n'est pas seulement un simple interpréteur de
commandes mais c'est également un véritable langage de
programmation,
Un shell peut exécuter un ensemble de commandes écrite
dans un fichier.
Un fichier contenant des commandes pour le shell ou un
programme écrit dans le langage shell est appelé un script
shell.
Script shell
Un script shell permet
— Automatiser un ensemble de commandes taches) répétitives
/oériodiques.
— Lancer quelques commandes disposant d’eptions complexes.
— Créer un programme personnalisé adapté pour des opérations
spécifiques.
Un script shell peut inclure des commandes, des variables
et des structures de contréle (constructions conditionnelles
et boucles)Script shell
Création d'un script pour le shell bash
* créer un fic nant la premiére liene suivante:
* Pour pouvoir exécuter le script, le fichier créé doit avoir
la permission d’exécution:
eT
* Le script peut étre exécuté en utilisant la commande:
Sferncsh
Script shell
Un script shell est une succession de commandes.
4 Ce qui est ici est un commentairs
5 Scriptshell permet dafficher
1 le repertoire courant dans une
| [Higne puis ia date systéme
Testpassible dinsérer des
| \ J commentaires dans leseript
chaque ligne de commentaire est
préctdée du caractére"#
echo “Le répertoire de travail est:
pwd
[date
Les variables
Les variables sont utilisées pour stocker des informations
temporaires, aceéder a des paramétres, etc...
Par défaut dans les scripts shell, les variables utilisées ne
sont pas typées.
= Le contenu d'une variable est considéré comme une chaine de
caractares.
— Une variable peut étre traitée comme une variable de type
entier si indiqué explicitement pour étre utilisée dans des
opérations arithmétiques.
Les variables
Une variable n’a pas a étre déclarée.
Dés qu’une valeur est affectée a une variable,
celle-ci peut étre utilisée.
Toute variable posséde un nom et une valeur
variable=valeur (sans espaces autour du
signe égal)Les variables
Pour utilis
symbole
‘Seiptsnol parmet dati des messaaes r
‘od commande qi permet de re des
‘oriables Ble demande dusted
Hl permet aut re plusieurs
‘erable enutlsant a méme commande,
[Link]
Ceci
echo $message
read nom prenom
echo "Bonjour Snom Sprenom*
S$ /scriptsh
La valeur de Ta variable 4 est 10
Bonjour
Ali salah
Les variables des paramétres
Les scripts bash peuvent accepter des parametres
comme toute autre commande.
Le script peut étre appelé:
§ Jseriptsh param param2 param?
Retourne tous les parametres
Retourne
1 des parametres
Retourne le nombre de paramétres
Retoume le nom de la commande
Retourme le premier parametre, $2, $3
Les variables des paramétres
Peilbinibash
cho “Le nom du fichier script est: $0
| echo “Nombre de paramétres: 5#"
| echo “Le premier paramatre: $1
‘echo “Le deuxibme paramere: $2)
3 [Link] 30 Bonjour
Le nom du fichier script est: ./seript-sh
nombre de paramitres: 2 en
Le premier paranétre: 30
Le deuxigne paranétre: Bonjour
Les tableaux
Un tableau est une variable contenant
d'autres variables rangée.
Bash permet d’utiliser des tableaux indicés ou
associatifs.
Le premier indice d'un tableau est "0".Création d'un tableau
Il est possible de créer un tableau directement par
initialisation.
Création d'un tableau indicé par initialisation
[[Link] eux wols"quare")
Création d'un tableau avec des indices imposés:
¥ mon_tableauL ind
‘pommet [37]="cerise"ananas")
Création d'un tableau associati
[[Smon-tableau-assoe-(fun]"one" [eux ]"ewo™ [trols]—"three")
Création d'un tableau
Il est aussi possible d'utiliser la commande declare et
'option -a ou -A pour déclarer un tableau.
Déclaration d'un tableau indicé et associatif:
§ declare “a mon-tableau indie
S declare “Am [Link]
Aussi, le tableau peut étre initialisé avec la déclaration:
$ declare -a mon tableau | are")
5 declare -A mon-tableau_ass0« wo" [erols]="three" )
‘un? "deux “trois
(un'}"one" [deur
Création d'un tableau
Un tableau peut étre déclaré en lecture seule
en utilisant la commande readonly.
‘deux "ois" quatre”)
[readonly -a mon tableau. indie
Seadonly
Affichage d'un tableau
Affichage de tous les éléments d’un tableau:
— Syntaxe ${mon_tableau[*]} ou ${mon_tableau[@]}
declare -a mon tableau. indie=C"un* "deux "trois" “quae®)
S echo Sevan tableau indict)
un deux ros quatre
S echo S{mon tableau. indie‘)
dindeux trots quatre
§ declare “A mon_tableau_assoe=( [un]—"one” [deuxe]"wo" [ewois] three")
5 echo S{mon_tableau_assoc(@]}
two three one
S echo S{mon_tableau_assocl']}
two three oneAffichage de la liste des clefs
Affichage de la liste des clés d’un tableau:
— Syntaxe ${!mon_tableau[@]}
4 declare -a mon tableau indl(*un "deux ois" "quate*)
§ echo Stimon tableau indict)
0123
declare “A mon-tableau_assoc—(Tun'J—"one” [deux|—"wo° [wois]—"three")
S$ echo Stimon tableau associa)
deux trois un
Lecture d'un élément
¥ declare -a mon tableau indie=Cun™-deux
5 echo §{mon_tableau_indic(2})
[Link] S{mon.tableau_indic(-1))
quate
S-echo Smon tableau indic
ros" “quatre
§ declare -A mon tableau assoc
S echo S{mon.tableau_assoc[ eux’)
Mo:
ication d'un élément
‘mon tableau, indie(O[= “un”
mon_tableau_indiel1}= "deux
Secho Simon tableau indiclO})
un
acho S{mon_tableau_indic(@))
Undeux
( Sideclare =A mon.rableau_assoc
$mon-tableau_assoe{'un}="one™
| $ mon-tableau_assoctdeux'}="two”
S echo Stmon-tableau-assoctuniIt
Secho S{mon_tableau.ass0ctit}
SS «
La taille d’un tableau
Ilest possible d'obtenir le nombre d’éléments contenus dans un
tableau,
— Syntaxe: ${# mon_tableau[@])
§ declare -a montableau_indle—("un" “deux “wos "quatre")
S echo $4#mon tableau Indic}
4
5 echo ${#mon tableau Indic)
5
§ declare -A mon_tableau_assoc=( [un]—"one” [deus
5S echo S{#mon tableau assoc(@))
3
"wo" frois'—three" )Destruction d'un tableau
lest possible de supprimer un élément d'un tableau en
utilisant la commande unset
¥ mon. tableau “deux” wos” “auate")
4 ansec mon-tablea 1)
wo" [trois |="three")
$ mon_tableau~(Tun] "one" [deux
$ unset mon. tableau (trois)
La commande unset permet aussi la destruction d'un tableau.
Les trois lignes suivantes sont équivalentes et permettent de
supprimer le tableau mon_tableau.
$ unset [Link]
§ Unset mon-fable3u[]
5 unset mon-tableauled
Les back quotes *~
Les back quotes sont utilisés pour exécuter
une ou plusieurs commandes et récupérer le
résultat dans une variable:
Tavvarabe rep recevre le résukarae b, | H/bin/bash (nae
lexéeution dela commande pwd sn
cho “vous es dane le epertoire Srep” |
Usertlocaihost=S -/scriptsh
vous étes dans le répertaire home /user
Operation arithmétique
Le shell permet de réaliser des opérations arithmétiques simples.
Les opérations arithmétiques sont représentés par:
$CC opérations ))
Opérateurs:
= Les quatre opérations de base: +,-,*,et /
= Le modulo: %
Les décalages binaires & gauche et & droite: << et>>
Les opérateurs binaires ( Et, Ou et Ou Exclusif): &, |, et®
~ La négation binaire: ~
Calcul arithmétique
ia Coa
read abe i
echo "Sa + $b = ${(5a + Sb) i
| echo "Sa -sb = sSa- Sb) i
echo "Se / $4 ~ $10 Se / Sd)" {
|echo"Semodulo $d ~ Si(Sew sd" |
[eons tml [3 jscripash
24007101 24000110
Filibin bash
read ab | |2#o01101 a 2#000110
echo "Sa & Sb ~ $\( $2. $b) 24001101 | 2900011
| echo "Sa | Sb ~ 5((Sa| 5b)" || 2ao01101 1 2200011
| echo "Sa » $b — S((Sa 4 Sb)" || zeoorio) <2 = 52
| echo "Sa <<2=Si(Sa << 2))Structures de contréle
Sélection d’instructions:
— Construction if-then-else
— Construction case-esac
Itérations d’instructions
— Répétition while-do
— Construction for-do
Construction if-then-else
Permet d’exécuter des instructions sous certaines conditions.
Sila condition est correcte exécuter des instructions si non exécuter
dlautres instructions. ee
veada
VF condition 2 tUS2-420 then
then tcho “Snes ineur 20
connande_2 se —
nit condition echo Sas supriurou 6ale3 20" |
Shen is :
commande 2 i
arse ts J
commande 3 jscrish
# i
10 est inférieur 20,
Conditions et tests
ll existe plusieurs méthodes pour évaluer une expression.
Le shell offre deux operateurs interne (synonymes) pour
I'évaluation d'expressions :
— test condition
= [ condition ] ( espace entre la condition et les crochets)
lest possible d’effectuer trois types d'évaluations en bash:
~ tests sur des chaines de caracteres
— tests sur des nombres
tests sur des fichiers
Tests sur des chaines de caractéres
es veal
chainel = chaine? Les deux ehaines sont identiques. (sensible la casse)
chainel = chained | Les deux chaines sont différentes
chaine La chaine est non nulle
-zchaine La chaine est vide La longueur de le chaine est nulle)
fn chaine La chatne est non vide (La longueur de la chaine est non nulle)
Wijbinjbash
#[-251} then
‘echo "pas de paramétres
sepa
echo "le parametre 1 est: $1"
ATests sur des nombres
Condition Vale si
(equal) Les deux valeurs arithmétiques sont épales|
(not equal) Les deux valeurs arthmétiques sont différentes.
valeurt eq valeur?
valeur -ne valeur?
(greater or equal) La premiere valeur est supérieure ou égale ala
seconde
valeur -ge valeur
(greater than) La premiére valeur est strictement supérieure & la
seconde.
valeurt -gt valeur2
(lesser or equal) La premiére valeur est inféieure ou égale & la
seconde.
valeurt -le valeur2
valeurt lt valeur2 (lesser than) La premigre valeur eststrictementinférieure & la
seconde.
Tests sur des nombres
& jseript sh
Donner deuentiers:
305
30 st supertura 5
[$2 -g¢ $b]; then
‘echo "Sa est superleur Sb
if test Sa —t Sbithen
‘echo "Sa est inferieur a $b"
echo "Sa-et Sb sont egaux?
Tests sur des fichiers
er Vrale s!
fichier Le fichier indiqué existe
fichier Le fichier indiqué est un fichier
drépertoire Le repertoire indique existe
fichier La taille du fiehier
iiqué est non nul
“fichier Le fichier indiqué est sible (peut étre lu)
ow fichier (On peut éctite dans le fichier indiqué (peut
fichier Le fichier est executable (peut are exécuté)
fichier -nt fichier? | Le fichier est plus récent que le fichier? ( date de modification)
fichier1 ot ichier2 | Le fichier est plus ancien que le fichier? ( date de modification)
Tests sur des fichiers
Paivbinrbash Tao
read -p "Donner le chemin du cépertoire: repertoire
IF -4 Srepertaire J, then
‘echo "Le répertoire existe
else
echo "Le répertoire existe pas.”
1
seriptsh
Donner le chemin du répertoir: howe user
Le repertoire existe
$ jscripesh
Donner le chemin du repertoire: jhome/root
Lerépertoire n'existe pas.Opérateurs logiques
|l est possible de combiner plusieurs conditions avec
les opérateurs suivant:
earns vrai
‘condition Lacondition est fausse
‘condition && condition?
‘condition’ || condition?
Les deux conditions sont vraies
‘Au moins une des deux conditions est vale
Opérateurs logiques
iF [SH get] &&{ $1 ~ "Bonjour’]: then
echo “le premier parametre est Bonjour”
fecha "ll existe au'moins un parametre
a
sabe
“APL Se-ot21 68-51] &8{-d 52); then :
‘echo “copier le fichier $1 vers le répertoire destination |
ler
[si s2
fi
Construction case-esac
La structure case permet de tester plusieurs conditions & la fois.
expression de case est évaluée puis son résultat est comparé avec
les différents motifs.
‘case expression in ase $1 in
SOLITL) commande jj 0) echo"Le paramatre est egal 30
moult ) commande? 1) echo “Le parametre est egal
2 *) echo "Patametre incom
Ciibinjbash Tai
Construction case-esac
| echo "Taper sur une touche du clavir, puls sur ener.”
read Key
case "$key" in
[lower] ) echo "Letter minuscule
[upper }echo “Letter majuscule’
[ [0-9] echo "Un nombre”
| __© echo “Auta (nom alpharumeriquesRépétition while-do-done Construction for-do-done
La structures while-do-done sert 4 répéter une Permet de parcourir une liste de valeurs et de
séquence d’ instructions jusqu’a ce qu’une 7
eer solt vérifiée. Jusq q boucler autant de fois qu'il y a de valeurs.
‘bin/ibasin
Piibinibas
for variable in liste stedefichiers—"Is
0 ©
‘read -p Donner un entierentre Vet 10 "1
while condition comandes i
Hor flehier i Sistedefichiers
| while $11 11) Si-gt 10] ‘done
comandes
done
ise is
echo "Si: Sfchier
read -p ‘Donner un entier entre 1 et 10:"1
done
J echo = si
Construction for-do-done
Payee
[eciocs
for fichier in jhome /user/*
joo
if -astenie")
then
echo *Sfichierest un repertoire
if ( 4 °Sfle" |
echo "Sfichlerest un fichier” |
Vous aimerez peut-être aussi