Académique Documents
Professionnel Documents
Culture Documents
Systmeutilisateur .::SystmeUNIX::
semaine7rvisions
2005 - 2006
Systme utilisateur
Q.C.M.
2005 - 2006
Systme utilisateur
Q.C.M.
1.Quelcheminestsynonymedurpertoirepersonneldel'utilisateur"toto"? A. toto B. ~toto C. =toto
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...
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
2005 - 2006
Systme utilisateur
FINDUQCM
2005 - 2006
Systme utilisateur
Q.C.M.
1.Quelcheminestsynonymedurpertoirepersonneldel'utilisateur"toto"? A. toto B. ~toto C. =toto
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...
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
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
[...]
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 }
2005 - 2006
16
Systme utilisateur
Rvisionslesdroitsutilisateurs
3.Rechercherpartirdecettelistedanstouslesfichierspourlequelvousavez ledroitdelectureetd'criture... =>Lesfichierssontrecherchsl'aidedelacommandefind =>Lesdroitssontvrifisl'aidedetestsshell
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.
2005 - 2006
19
Systme utilisateur
Rvisionslesdroitsutilisateurs
=>crireunscriptpermettantdedonnertouslesfichiersd'unutilisateur unautre. changeUser oldUser newUser #!/bin/bash find/user$1execchown$2{}'';''
2005 - 2006
20
Systme utilisateur
Rvisionsenchainementdecommandes
Lancementd'unecommande:
paul@linux>ls
Lancementd'unecommandeenarrireplan:
paul@linux>ls&
Lescommandessontsparespardes;
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
2005 - 2006
22
Systme utilisateur
Rvisionsenchainementdecommandes
Regroupementdecommandes:
paul@linux>(cd/toto||echo''repertoireinexistant''>&2)>resultat.txt Lescommandesplacesentreparenthsessontexcutesdansunsousprocessus dushellilestainsipossiblederedirigertouteslesE/Sdecenouveaushell.
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"
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
2005 - 2006
27
Systme utilisateur
RvisionsScripts
crireunecommandecatquiaffichelecontenud'unfichierl'aide delacommandereadquiliralignelignecefichierenvoysur l'entrestandard.Chaqueligneseraprcdedesonnumro.
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