0% ont trouvé ce document utile (0 vote)
83 vues29 pages

Chap 2

Transféré par

Siwar Belhaj
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
83 vues29 pages

Chap 2

Transféré par

Siwar Belhaj
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
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 shell Syntaxe 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/ ee Les 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 2023 Echappement 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/SE1 Cré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. CESEROE commande 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 delgnes head 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 50 cut 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 pd Les 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 Tear Expression 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 2B Exemples 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 one Affichage 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" A Tests 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 alpharumeriques Ré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