Corrigé contrôle machin

This commit is contained in:
Arnaud NGWALA NGWALA 2023-01-03 17:23:32 +01:00
parent c08ad73ebc
commit e2cc18da4d
35 changed files with 300 additions and 0 deletions

0
CM/TR/lib/kernel/go44go Normal file
View File

View File

View File

View File

@ -0,0 +1,48 @@
#!/bin/bash
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
# ex: ts=8 sw=4 sts=4 et filetype=sh
[[ $1 == "add" ]] || exit 0
[[ $2 ]] || exit 1
exec depmod -a "$2"
#!/bin/bash
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
# ex: ts=8 sw=4 sts=4 et filetype=sh
[[ $1 == "add" ]] || exit 0
[[ $2 ]] || exit 1
exec depmod -a "$2"
#!/bin/bash
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
# ex: ts=8 sw=4 sts=4 et filetype=sh
[[ $1 == "add" ]] || exit 0
[[ $2 ]] || exit 1
exec depmod -a "$2"
#!/bin/bash
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
# ex: ts=8 sw=4 sts=4 et filetype=sh
[[ $1 == "add" ]] || exit 0
[[ $2 ]] || exit 1
exec depmod -a "$2"
#!/bin/bash
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
# ex: ts=8 sw=4 sts=4 et filetype=sh
[[ $1 == "add" ]] || exit 0
[[ $2 ]] || exit 1
exec depmod -a "$2"
#!/bin/bash
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
# ex: ts=8 sw=4 sts=4 et filetype=sh
[[ $1 == "add" ]] || exit 0
[[ $2 ]] || exit 1
exec depmod -a "$2"

View File

Binary file not shown.

Binary file not shown.

View File

View File

View File

@ -0,0 +1,16 @@
#!/bin/bash
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
# ex: ts=8 sw=4 sts=4 et filetype=sh
[[ $1 == "add" ]] || exit 0
[[ $2 ]] || exit 1
exec depmod -a "$2"
#!/bin/bash
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
# ex: ts=8 sw=4 sts=4 et filetype=sh
[[ $1 == "add" ]] || exit 0
[[ $2 ]] || exit 1
exec depmod -a "$2"

View File

@ -0,0 +1,24 @@
#!/bin/bash
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
# ex: ts=8 sw=4 sts=4 et filetype=sh
[[ $1 == "add" ]] || exit 0
[[ $2 ]] || exit 1
exec depmod -a "$2"
#!/bin/bash
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
# ex: ts=8 sw=4 sts=4 et filetype=sh
[[ $1 == "add" ]] || exit 0
[[ $2 ]] || exit 1
exec depmod -a "$2"
#!/bin/bash
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
# ex: ts=8 sw=4 sts=4 et filetype=sh
[[ $1 == "add" ]] || exit 0
[[ $2 ]] || exit 1
exec depmod -a "$2"

151
CM/TaF Normal file
View File

@ -0,0 +1,151 @@
------------------------ INSTRUCTIONS A LIRE JUSQU'AU BOUT -------------------
Cher lecteur, si vous etes en train de me lire par vim ou par un autre
editeur de texte, je vous demanderai de sortir de l'editeur de texte et
de m'ouvrir simplement par la commande less qui fait peser moins de risque
sur moi et sur vous.
Avec less, on avance/recule avec les fleches haut/bas et on avance/recule
page par page par CTRL-V/CTRL-B
----------------------------------------------------------------------------
On rendra l'archive <login>-scr.1.2-1.tar contenant le fichier reponses et
le script <login>-utf8tocode.sh, qui fait l'objet d'un exercice.
A la fin de l'epreuve se reporter au fichier README pour, en particulier,
appliquer correctement la commande d'archivage.
-----------------------------------------------------------------------------
--------------------------------------------------------------------------
/Nom/Prenom/nom_machine/ est-il place au debut du fichier
reponses ?
Preceder chaque reponse par le numero de la question traitee. Ce n'est
pas la longueur de la reponse qui compte mais sa pertinence.
----------------------------------------------------------------------------
------------------------------------------------------------------------------
TOUTES LES QUESTIONS DOIVENT ETRE TRAITEES SANS BOUGER
DU REPERTOIRE DE BASE.
---------------------------------------------------------------------------
1/
Consulter la page manuel de ls pour savoir comment afficher les dates de
derniere modification comme dans :
2022-11-16 15:49:40.036307437 +0100
puis, a l'aide de ls uniquement, donner la ligne de
commandes permettant d'afficher le contenu de toute l'arborescence qui
commence en TR/ en donnant pour chaque element, entre autres, la date de
derniere modification au format indique ci-dessus.
La ligne de commandes ls demandee doit etre non composee, c'est a dire,
sans les symboles ; , | , ||, &&, ...
Placer la ligne de commandes dans le fichier reponses.
Inutile de recopier le resultat de la ligne de commandes.
-------------------------------------------------------------------------------
2/
SANS BOUGER DU REPERTOIRE DE BASE, a l'aide uniquement d'une seule ligne de
commandes ls et sans descendre dans les repertoires dont le nom correspond au motif,
afficher la liste de tous les elements de TR/lib/krb5/ et de TR/lib/kernel/
dont le nom contient deux chiffres qui se suivent formant un nombre de valeur
comprise entre 54 et 67 inclus.
La ligne de commandes ls demandee doit etre non composee, c'est a dire,
sans les symboles ; , | , ||, &&, ...
On doit utiliser les notations standards pour les classes
de caracteres : [:upper:], [:lower:], ...
Les motifs proposes devront fonctionner dans n'importe quel repertoire
ou on chercherait les memes configurations dans les noms des entrees
(fichiers/repertoires) qu'il contient.
Placer la ligne de commandes dans le fichier reponses.
Inutile de recopier le resultat de la ligne de commandes.
----------------------------------------------------------------------------------
3/
SANS BOUGER DU REPERTOIRE DE BASE et a l'aide uniquement d'une seule ligne de
commandes find, sans utiliser xargs et sans aucun pipeline :
afficher la liste de tous les elements de l'arborescence qui commence en TR/
qui se trouvent a une profondeur au moins 6 et dont la date de derniere modification
est posterieure a (plus recente que) celle du fichier inout.dev
Placer la ligne de commandes dans le fichier reponses.
Inutile de recopier le resultat de la ligne de commandes.
-----------------------------------------------------------------------------------
4/
SANS BOUGER DU REPERTOIRE DE BASE et a l'aide uniquement d'une seule ligne de
commandes find, sans utiliser xargs et sans aucun pipeline :
Creer un repertoire NEW dans chaque repertoire se trouvant a une profondeur exactement 8
de l'arborescence qui commence en TR/
Placer la ligne de commandes dans le fichier reponses.
Inutile de recopier le resultat de la ligne de commandes.
---------------------------------------------------------------------------------------
5/
SANS BOUGER DU REPERTOIRE DE BASE et a l'aide uniquement d'une seule ligne de
commandes find, sans utiliser xargs et sans aucun pipeline :
Dans chaque repertoire contenant des fichiers reguliers se trouvant
a une profondeur exactement de 8 de l'arborescence qui commence en TR/
creer une archive appelee archive.tar de ces fichiers-la.
Placer la ligne de commandes dans le fichier reponses.
Inutile de recopier le resultat de la ligne de commandes.
---------------------------------------------------------------------------
6/
On veut ecrire un script <login>-utf8tocode.sh qui prend deux arguments
a la ligne de commandes. Le deuxieme argument est le nom d'un fichier contenant
des encodages UTF-8, un par ligne. Le script affiche en hexadecimal, pour chaque
encodage dans le fichier, la valeur du point de code correspondant. Le premier
argument est un indicateur soumis par l'utilisateur sous la forme 1 ou 2, ou 2
signifie que le point code doit etre prefixe par la notation U+, et 1 signifie
qu'il n'y a aucun prefixe a ajouter lors de l'affichage.
Ecrire le script <login>-utf8tocode.sh en gerant toutes les erreurs
sur les parametres a la ligne de commandes.
-----------------------------------------------------------------------
PLACER NOM/PRENOM/NOM_MACHINE en commentaire VERS LE DEBUT DU script.
----------------------------------------------------------------------
Le fichier utf8.dat est fourni pour faire des tests rapidement.
ATTENTION : Le script ne doit pas etre adapte au contenu de utf8.dat.
On suppose que tous les encodages UTF-8 dans le fichier source sont corrects.
On pourra utiliser la commande printf du shell qui utilise les formats
d'affichage comme le fait printf du C.
$ ./utf8tocode.sh
Usage: ./utf8tocode.sh <display_format> <SCR_FILE>
$ ./utf8tocode.sh 1 mimi.dat
File mimi.dat doesn't exist or is not regular
$ ./utf8tocode.sh 3 utf8.dat
Unknown display format. Please submit 1 if no prefix, 2 for prefix U+
$ ./utf8tocode.sh 1 utf8.dat
4b5
9f74
5b
12bd7c
$ ./utf8tocode.sh 2 utf8.dat
U+4b5
U+9f74
U+5b
U+12bd7c
----------------------------- C'EST FINI -----------------------------------
-----------------------------------------------------------------------------

19
CM/correction.txt Normal file
View File

@ -0,0 +1,19 @@
Exercice 1)
ls -R --full-time TR/
ls -lR --time-style=full-iso TR/
Exercice 2)
ls -d TR/lib/krb5/*5[4-9]* TR/lib/krb5/*6[0-7]* TR/lib/kernel/*5[4-9]* TR/lib/kernel/*6[0-7]*
Exercice 3)
find TR/ -mindepth 6 -newer TR/lib/krb5/plugins/inout.dev
Exercice 4)
find TR/ -mindepth 8 -maxdepth 8 -type d -exec mkdir '{}'/NEW \;
Exercice 5)
find TR/ -mindepth 8 -maxdepth 8 -execdir tar cvf archive.tar '{}' +
Exercice 6)
Voir utf8tocode.sh

4
CM/utf8.dat Normal file
View File

@ -0,0 +1,4 @@
1101001010110101
111010011011110110110100
01011011
11110100101010111011010110111100

38
CM/utf8tocode.sh Executable file
View File

@ -0,0 +1,38 @@
#!/bin/bash
if [[ $# -lt 2 ]]
then
echo "Usage: $0 <display_format> <SCR_FILE>"
exit
fi
if [[ $1 != "1" && $1 != "2" ]]
then
echo "Unknown display format. Please submit 1 if no prefix, 2 for prefix U+"
exit
fi
if [[ ! -f $2 ]]
then
echo "File $2 doesn't exist or is not regular"
exit
fi
if [[ $1 == "2" ]]
then
fmt="U+"
fi
while read addr
do
l=$(expr length $addr)
ind=$(expr index $addr "0")
cont=$(expr substr $addr $((ind+1)) $((8-ind)))
pos=11
while [[ $pos -lt $l ]]
do
cont=$cont$(expr substr $addr $pos 6)
pos=$((pos+8))
done
printf "$fmt%x\n" $((2#$cont))
done < $2
exit