Vous êtes sur la page 1sur 32

Systme utilisateur

Systmeutilisateur .::SystmeUNIX::
semaine7rvisions

I.U.T. Informatique 1re anne

2005 - 2006

Systme utilisateur

Q.C.M.

I.U.T. Informatique 1re anne

2005 - 2006

Systme utilisateur

Q.C.M.
1.Quelcheminestsynonymedurpertoirepersonneldel'utilisateur"toto"? A. toto B. ~toto C. =toto

2.Lechemin".."estsynonymedurpertoire: A. predurpertoirecourant B. racinedel'arborescencedesfichiers C. personneldel'utilisateur

I.U.T. Informatique 1re anne

2005 - 2006

Systme utilisateur

Q.C.M.
3.Untubepermet: A. deconnecterlasortiestandardd'unprocessusversl'entre standardd'unautreprocessus B. deconnecterlasortiestandardd'unprocessussursonentre standard C. delancerplusieursprocessusindpendantsenparallle 4.Pourafficherunmessagesurlasortied'erreursstandardilfaututiliserla redirection: A. >&2 B. 2> C. >stderr
I.U.T. Informatique 1re anne 4

2005 - 2006

Systme utilisateur

Q.C.M.
5.Danslacommande"p1||p2"op1etp2sontdeuxprocessus,p2sera excutsi... A. p1seterminenormalement B. p1setermineanormalement C. quelquesoitlecodederetourdep1 6.Uneseuledescommandessuivantesestcorrecte(fichiertantunfichier rgulier): A. ls<fichier B. cat|fichier C. cat<fichier D. fichier|cat
I.U.T. Informatique 1re anne 5

2005 - 2006

Systme utilisateur

Q.C.M.
7.QuelleE.R.permetdeslectionnerleslignesnecontenantpasdechiffres? A. ^[^09]*$ B. ^.*[^09].*$ C. ^.*[!09].*$ D. ^[!09]*$ 8.Queltestpermetdecomparerl'galitnumriquedesvariablesAetB? A. if[$A=$B];then... B. if[$A==$B];then... C. if[$Aeq$B];then...

I.U.T. Informatique 1re anne

2005 - 2006

Systme utilisateur

Q.C.M.
9.Lalistedesargumentsd'unscriptshellestplacedanslavariable A. # B. * C. ! D. $ 10.Pourretournerunchainedecaractresdansunefonction,onutilise: A. return$chaine B. echo$chaine C. RETURN=$chaine

I.U.T. Informatique 1re anne

2005 - 2006

Systme utilisateur

FINDUQCM

I.U.T. Informatique 1re anne

2005 - 2006

Systme utilisateur

Q.C.M.
1.Quelcheminestsynonymedurpertoirepersonneldel'utilisateur"toto"? A. toto B. ~toto C. =toto

2.Lechemin".."estsynonymedurpertoire: A. predurpertoirecourant B. racinedel'arborescencedesfichiers C. personneldel'utilisateur

I.U.T. Informatique 1re anne

2005 - 2006

Systme utilisateur

Q.C.M.
3.Untubepermet: A. deconnecterlasortiestandardd'unprocessusversl'entre standardd'unautreprocessus B. deconnecterlasortiestandardd'unprocessussursonentre standard C. delancerplusieursprocessusindpendantsenparallle 4.Pourafficherunmessagesurlasortied'erreursstandardilfaututiliserla redirection: A. >&2 B. 2> C. >stderr
I.U.T. Informatique 1re anne 10

2005 - 2006

Systme utilisateur

Q.C.M.
5.Danslacommande"p1||p2"op1etp2sontdeuxprocessus,p2sera excutsi... A. p1seterminenormalement B. p1setermineanormalement C. quelquesoitlecodederetourdep1 6.Uneseuledescommandessuivantesestcorrecte(fichiertantunfichier rgulier): A. ls<fichier B. cat|fichier C. cat<fichier D. fichier|cat
I.U.T. Informatique 1re anne 11

2005 - 2006

Systme utilisateur

Q.C.M.
7.QuelleE.R.permetdeslectionnerleslignesnecontenantpasdechiffres? A. ^[^09]*$ B. ^.*[^09].*$ C. ^.*[!09].*$ D. ^[!09]*$ 8.Queltestpermetdecomparerl'galitnumriquedesvariablesAetB? A. if[$A=$B];then... B. if[$A==$B];then... C. if[$Aeq$B];then...

I.U.T. Informatique 1re anne

2005 - 2006

12

Systme utilisateur

Q.C.M.
9.Lalistedesargumentsd'unscriptshellestplacedanslavariable A. # B. * C. ! D. $ 10.Pourretournerunchainedecaractresdansunefonction,onutilise: A. return$chaine B. echo$chaine C. RETURN=$chaine

I.U.T. Informatique 1re anne

2005 - 2006

13

Systme utilisateur

Rvisionslesdroitsutilisateurs
=>crireunscriptquilistetouslesfichiersquelestudiantsdevotrepromo vousautorisentmodifier: >/etc/passwordvouspermetdetrouverlalistedestudiantsetleur homel'aidedeleurgroupe
paul@linux:~>cat/etc/passwd

masegal:x:1327:205:MathieuSEGAL:/home/1a/masegal:/bin/bash
[...]

1.crireunefonctiongetHomequilitleslignesde/etc/passwordsurson entrestandardetretournelechamphomesilegroupecorrespond l'argumentpass. 2.EcrirelafonctiongetListequiretournelalistedeshomespartirdufichier /etc/password,enutilisantgetHome.


I.U.T. Informatique 1re anne
2005 - 2006

14

Systme utilisateur

Rvisionslesdroitsutilisateurs
1.crireunefonctiongetHomequilitleslignesde/etc/passwordsurson entrestandardetretournelechamphomesilegroupecorrespond l'argumentpass. getHome(){ OLDIFS=$IFS;IFS=":" whilereadloginpassuidgidnamehomeshell;do if[$gideq$1];then echo$home fi done IFS=$OLDIFS return0 }
I.U.T. Informatique 1re anne
2005 - 2006

15

Systme utilisateur

Rvisionslesdroitsutilisateurs
2.crirelafonctiongetListequiretournelalistedeshomespartirdufichier /etc/password,enutilisantgetHome. getListe(){ echo`cat/etc/passwd|getHome$1|column` return0 }

I.U.T. Informatique 1re anne

2005 - 2006

16

Systme utilisateur

Rvisionslesdroitsutilisateurs
3.Rechercherpartirdecettelistedanstouslesfichierspourlequelvousavez ledroitdelectureetd'criture... =>Lesfichierssontrecherchsl'aidedelacommandefind =>Lesdroitssontvrifisl'aidedetestsshell

I.U.T. Informatique 1re anne

2005 - 2006

17

Systme utilisateur

Rvisionslesdroitsutilisateurs
3.Rechercherpartirdecettelistedanstouslesfichierspourlequelvousavez ledroitdelectureetd'criture... =>Lesfichierssontrecherchsl'aidedelacommandefind =>Lesdroitssontvrifisl'aidedetestsshell main(){ formyHomein`getListe$1`;do forfichierin`find$myHometypefname"*"2>/dev/null`;do if[r$fichier]&&[w$fichier];then echo$fichier fi done done } main$1
I.U.T. Informatique 1re anne
2005 - 2006

18

Systme utilisateur

Rvisionslesdroitsutilisateurs
=>crireunscriptpermettantdedonnertouslesfichiersd'unutilisateur unautre. changeUser oldUser newUser =>L'optionuserdefindpermetdeslectionnerlesfichiers appartenantl'utilisateurindiqujusteaprs.

I.U.T. Informatique 1re anne

2005 - 2006

19

Systme utilisateur

Rvisionslesdroitsutilisateurs
=>crireunscriptpermettantdedonnertouslesfichiersd'unutilisateur unautre. changeUser oldUser newUser #!/bin/bash find/user$1execchown$2{}'';''

I.U.T. Informatique 1re anne

2005 - 2006

20

Systme utilisateur

Rvisionsenchainementdecommandes
Lancementd'unecommande:
paul@linux>ls

Lancementd'unecommandeenarrireplan:
paul@linux>ls&

Leshelln'attendpaslafindelacommandepourrendrelamain. exempleavecfind/name''bash''& Lancementdecommandessuccessives:


paul@linux>cd/etc/;ls

Lescommandessontsparespardes;

I.U.T. Informatique 1re anne

2005 - 2006

21

Systme utilisateur

Rvisionsenchainementdecommandes
Enchanementconditionns:
paul@linux>cd/toto&&ls Lacommandelsn'estexcutequesilacommandecd/tototerminesanserreur paul@linux>cd/toto||echo''rpertoireinexistant'' Lacommandeechon'estexcutequesilacommandecd/totosetermineavec erreur

Lancementenparallle: Utilisationdumcanismedestubes.
paul@linux>lsl/etc|greppasswd

I.U.T. Informatique 1re anne

2005 - 2006

22

Systme utilisateur

Rvisionsenchainementdecommandes
Regroupementdecommandes:
paul@linux>(cd/toto||echo''repertoireinexistant''>&2)>resultat.txt Lescommandesplacesentreparenthsessontexcutesdansunsousprocessus dushellilestainsipossiblederedirigertouteslesE/Sdecenouveaushell.

Lecodederetourd'unenchanementoud'unregroupementestceluidu dernierprocessusexcut Pourforceruncodederetourilestpossibled'utiliserlacommande exitnonprendlavaleurretourner:


paul@linux>(cd/toto2>/dev/null||(echo''repertoireinexistant''>&2;exit1))&&ls Lacommandelsn'estexcutequesilerpertoireexiste,lessorties

sontrediriges...
I.U.T. Informatique 1re anne
2005 - 2006

23

Systme utilisateur

Rvisionsinterceptiondesignaux
$ cat alarme #!/bin/bash trap 'echo "Le temps est coul !"; exit 1' SIGALRM (/usr/bin/sleep 3; kill -SIGALRM $$ 2> /dev/null )& echo -n "Vous disposez de 3 s. pour entrez un mot: " read MOT trap - SIGALRM; kill -SIGKILL $! 2> /dev/null echo "le mot lu: $MOT"

I.U.T. Informatique 1re anne

2005 - 2006

24

Systme utilisateur

Rvisionsexpressionsrgulires
=>Rechercherdansunfichiertouteslavariablesdetypeintdclares commesuit:intvar1;ouintvar1=(uneseuledclarationpar ligne) =>crireunscriptquiremplacetouteslesvariablesd'unfichierparune variableanonymedetypea0,a1,a2... exemple: intmaVariableBienEcrire=2; intmaSecondeVariable; deviendrainta0=2; inta1;
I.U.T. Informatique 1re anne
2005 - 2006

25

Systme utilisateur

Rvisionsexpressionsrgulires
=>Rechercherdansunfichiertouteslavariablesdetypeintdclares commesuit:intvar1;ouintvar1=(uneseuledclarationpar ligne) sede''s/^.*int[]+\([^;=]+\)[;=].*$/\1/'' ^.*int =>leslignescontenantlachaneint []+ =>suivied'espace(s) [^;=]+ =>suivid'unechanesansespaceni;ni= correspondantaunomdelavariable [;=] =>suivid'uncaractreespaceou;ou= .*$ =>seterminantdefaonquelconque =>Sontremplacesparleseulnomdelavariable
I.U.T. Informatique 1re anne
2005 - 2006

26

Systme utilisateur

Rvisionsexpressionsrgulires
=>crireunscriptquiremplacetouteslesvariablesd'unfichierparune variableanonymedetypea0,a1,a2... #!/bin/bash #$1:nomdufichier compteur=0 forvarin`sede''s/^.*int[]+\([;=]+\)[;=].*$/\1/''$1|column` do sede''s/$var/a$compteur/g''$1>$1 compteur=$(($compteur+1)) done

I.U.T. Informatique 1re anne

2005 - 2006

27

Systme utilisateur

RvisionsScripts
crireunecommandecatquiaffichelecontenud'unfichierl'aide delacommandereadquiliralignelignecefichierenvoysur l'entrestandard.Chaqueligneseraprcdedesonnumro.

I.U.T. Informatique 1re anne

2005 - 2006

28

Systme utilisateur

RvisionsScripts
crireunecommandecatquiaffichelecontenud'unfichierpass commeargumentl'aidedelacommandereadquiliralignelignece fichierenvoysurl'entrestandard.Chaqueligneseraprcdedeson numro.
#!/bin/bash lit(){ localligne=0 whileread;do echo''$ligne:$REPLY'' ligne=$(($ligne+1)) done return0 } lit<$1
I.U.T. Informatique 1re anne
2005 - 2006

29

Systme utilisateur

RvisionsScripts
Lacommandepsauxretournepourchaqueprocessus,encolonne3la chargeCPUqu'ilconsommesouslaformed'unnombredcimal(nn.n) crirelacommandesysinfoquiaffichelachargedusystmeen additionnantlachargedechaqueprocessus.Cettecommandepourra treappeleavecl'optionuseruserlimitantalorslecalculaux processusdel'utilisateuruser. 1)crirelafonctionanalysePsquianalyseleslignesdepsluessur sonentrestandardetcalculelasommedeschargesCPU 2)crirelafonctionmainquianalyselalignedecommande etappelleanalysePSenluipassantleslignesdeps.
I.U.T. Informatique 1re anne
2005 - 2006

30

Systme utilisateur

RvisionsScripts
1)crirelafonctionanalysePsquianalyseleslignesdepsluessur sonentrestandardetcalculelasommedeschargesCPU
functionanalysePs(){ localcpu=0 read whileread;do localicpu=`echo$REPLY|trs""|cutd""f3` cpu=`echo"scale=2;$cpu+$icpu"|bc` done echo$cpu return0 }
I.U.T. Informatique 1re anne
2005 - 2006

31

Systme utilisateur

RvisionsScripts
2)crirelafonctionmainquianalyselalignedecommandeetappelle analysePSenluipassantleslignesdeps.
main(){ filtre='.*' if[$#gt0]&&[$1==''user''];then filtre=$2 fi gcpu=`psaux|grep"$filtre"|analysePs` echo"utilisationducpu:$gcpu%" } main$*
I.U.T. Informatique 1re anne
2005 - 2006

32

Vous aimerez peut-être aussi