Cours SR (Systèmes et Réseaux) I5TC1  Programmation système
46 pages
Français

Cours SR (Systèmes et Réseaux) I5TC1 Programmation système

Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres
46 pages
Français
Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres

Description

Cours SR (Systemes et Reseaux) I5TC1 Programmation systemeCours SR (Systemes et Reseaux) I5TC1Programmation systemeOlivier Togni(038039)3887olivier.togni@u-bourgogne.frModi e le 21 septembre 20091 de 1Cours SR (Systemes et Reseaux) I5TC1 Programmation systemeProgrammation systemeLangages systemeI shellI awkI perlI CRem : On peut tout faire en C, certains traitements sont plussimples a ecrire en shell/awk2 de 1Cours SR (Systemes et Reseaux) I5TC1 Programmation systemeProgrammation systemeShellEnvironnementShell = liste de couples (variable,valeur) + cmd internesVariables prede nies : PATH, IFS, HOME, ...Cmds internes : cd, echo, pwd, read, set, trap, wait, ...Envir. peut ^etre initialise gr^ace aux chiers d’initialisation du shell,lus au moment de la connexion (sh : .pro le, csh :.login, .cshrc ;bash :.bash pro le .bashrc)3 de 1Cours SR (Systemes et Reseaux) I5TC1 Programmation systemeProgrammation systemeShellEnvironnementTraitement d’une cmd :1. Phase de saisie : edition, historique, completion2. Phase de substitutions : analyse de la liste de cmd3. Execution : la cmd resultant du 2 est recherchee puis executeeExemple : date > RC.L; ls-l .??* |grep rc >> RC.Ldevient apres substitutionsdate > RC.L; ls-l .bash_history .bash_profile.dtprofile .profile |grep rc >> RC.L54 de 1Cours SR (Systemes et Reseaux) I5TC1 Programmation systemeProgrammation systemeShellTraitement d’une commande ...

Sujets

Informations

Publié par
Nombre de lectures 58
Langue Français

Extrait

1
CoursSR(Syst`emesetR´eseaux)I5TC1Programmationsyst`eme
de1
CoursSR(Syste`mesetRe´seaux)I5TC1 Programmationsyste`me
Olivier Togni (038039)3887 olivier.togni@u-bourgogne.fr
Modie´le21septembre2009
2
CoursSR(Syste`mesetR´eseaux)I5TC1Programmationsyst`me e Programmationsyst`eme
Langages systeme `
de1
Ishell
Iawk
Iperl
IC
Rem : On peut tout faire en C, certains simplesa`e´crireenshell/awk
traitements
sont
plus
ogPrme`eioatmmrame`tsysnllehSeseautR´eTC1Px)I5maamorrgystsitno3de1
Environnement
Shell = liste de couples (variable,valeur) + cmd internes
Variablespre´de´nies:PATH,IFS,HOME,...
Cmds internes :cd, echo, pwd, read, set, trap, wait,...
Envir.peutˆetreinitialise´graˆceauxchiersdinitialisationdushell, lus au moment de la connexion (sh : .profile, csh :.login, .cshrc ; bash :.bash profile .bashrc)
mesest`eR(SyursSoC
Exemple : ;date > RC.L ? ?* ls-l . |grep rc >> RC.L devientapre`ssubstitutions
date > RC.L; ls-l .bash_history .bash_profile .dtprofile .profile |grep rc >> RC.L5
4de1
Environnement
Traitement d’une cmd :
1.desaisiePhase,nihtsro´:detioi´eplontiueiqom,c 2.de substitutions : analyse de la liste de cmdPhase 3.xEr´mdac:lonticu´eertse2udtnatlusehcrehce´peiues´xecut´ee
ionsmmatograC1PrI)T5aexu´Rseseteemt`ys(SSRrsouClme`eelShontistsyrgoramma`tsyPeme
5
CoursSR(Syst`emesetRe´seaux)I5TC1Programmationsyst`eme Programmationsyst`eme Shell
Traitement d’une commande simple
de1
ligne<mot0> <mot1> <mot2> ... [<redirections>]
Si mot0 est une cmd interne au shellexec directe
Sinon un fichier de nom<mot0>ehcertseslalisterch´edaned repertoiresdechiersexecutable(de´nieparlavariablePATH) -chiernontrouv´e - fichier non executable par l’util - fichier exec avec droits OK (ex : cp, rm,...)lancement de la cmd -scriptavecacc`esOKeletuce´xeiuqllehnsutdenemncla script.Lecheminabsoludushellpeuteˆtrepr´ecise´dansla1iere ligne du script :#!/bin/shou bien#!/bin/csh, ...
)x5ICTP1orrgmaamst`emesetR´eseaummaroitasysnme`tontistsyme`eogPrlleShe
Lavaleurestinterpre´t´eeparleshellcommeunboole´en(0=vrai, autre=faux)
ATTENTION de ne pas confondre ler´esultat´yovnetseiuqec(e vers la sortie std) d’une cmd avec sa valeur. Ex : pwd valeur=0, resultat=/home1/togni
Toute cmd qui termine son exec retourne unevaleur.
-terminaisonnormale:leprocessusexecuteunappelsyst`eme exit(i)=>valeur=i (normalement 0). -term.anormale:processinterrompuparr´eceptiondusignaln0s (ex : 9 du kill -9) =>valeur = c s, avec c=1 si fichier core produit,0sinonets=num´erosignal.
1e
Valeur d’une cmd
d6CoursSR(Sy
7
CoursSR(Syste`mesetRe´seaux)I5TC1Programmationsyst` eme Programmationsyst`eme Shell
Exemple
de1
Ex : cat sortie.c
main(int argc, char **argv) { if(argc==2) exit(atoi(argv[1])); }
if sortie 0 then echo oui else echo non if sortie 100 then echo oui else echo non Lesigne$?repr´esentelavaleurdeladerni`erecmdexe´cutee ´ Ex prec : sortie 100 echo $? va donner 100
8
CoursSR(Syst`emesetRe´seaux)I5TC1Programmationsyste`me Programmationsyst`eme Shell
Cmdcompose´e
de1
pipelineseysbmloseeddrapsee´ilerselpimdscmdeteui=s redirection cmdcompose´eobelssmysesinliresp´edear=tsilpedelepi d’enchainement :
cmd1;cmd2se´quentiel:cmd2lance´equandcmd1esttermin´ee cmd1&cmd2parallele:cmd2lanc´eeenmemetempsquecmd1 cmd1&&cmd2etlogique:cmd2lance´esicmd1retlavalvrai cmd1||cmd2oulogique:cmd2lance´esicmd1retfaux
Rem :cmd &suivi d’une commande vide lance cmd en arriere plan ` (rendlamainaushellimme´diatement) Exs :cd $CHEMIN && ls -l a.out 2>&1>LOG || echo Erreur
9
CoursSR(Syste`mesetRe´seaux)I5TC1Programmationsyste`me Programmationsyste`me Shell
Parenth´esage
de1
pour forcer les priorites ´ Ex :echo $F1est-ce$F1ou bien$F 1? - Accolades Ex :{cat $F1 || cat $F2}| wc -l -Parenthe`ses:idemmaisexecdelacmddansunsousshell=> on peut alors rediriger les ES d’une liste facilement. Ex :(date ; pwd ; ls-cF) >LOG Valeurdcmdcunes´eeompolav=druecalealdmad+`itroe
ouCtammargo`tsysnoigrroePemontimaamS(sysrRSsete`tmeeauxR´esC1Pr)I5TShellsyst`emede101
1.substitution de commandes Le motif‘<cmd>‘edltltaedalxecepa´eacplsu´eerrlmertse cmd<cmd> 2.substitution de variables $<var>elalavirbavaleurdec´eparlaertsalpme<var> 3.substitution de chemins Trois motifs : ee`dearcairvtecdemtnlseelentue´evsuit: ?:uncaracte`reqcq []:alphabet(ensembledecaract`eres)
Substitutions Avant d’executer une ligne, le shell recherche les motifs a substituer dans la ligne de cmd et remplace chacun d’entre eux par lere´sultatdelasubsdanscetordre:
11
CoursSR(Syste`mesetRe´seaux)I5TC1Programmationsyst`eme Programmationsyst`eme Shell
Substitutions
de1
Ex : [abcdef] = [af], [AZaz]=toutes les lettres
Rem:lecaract`ere.ntbusrnutiiartemettˆetenchieedeparticulier:eng´ene´ral,leschierscommen¸cantpar.sontles chiersdecongauxquelsonacce`deenlesp´eciantexplicitement motifdetsuotetiudilalropencpuoartnersdur´esleschi commenc¸antpasparun.et.niop.tptnanuracommen¸cceux
  • Univers Univers
  • Ebooks Ebooks
  • Livres audio Livres audio
  • Presse Presse
  • Podcasts Podcasts
  • BD BD
  • Documents Documents