Exercices by PN

This commit is contained in:
Adrian Amaglio 2022-01-18 22:16:31 +01:00
parent 1e396c0a09
commit e9fb756354
4 changed files with 367 additions and 0 deletions

35
exercices/gen_arbo.sh Normal file
View File

@ -0,0 +1,35 @@
#!/bin/bash
if [ "$#" -ne 1 ] ; then
echo 'Generate file tree at <path>. Not using random seed.'
echo 'Usage: $0 <path>'
exit 1
fi
cd $1
#rm -rf *
mkdir -p viens/voir/par/ici/si/jy/suis
echo "faites demi-tour avec prudence" > viens/voir/par/ici/si/jy/suis/ah_bah_non
mkdir chez ; cd chez
mkdir moi toi lui elle ellui eux nous iels ; cd ..
mkdir Trash ; cd Trash
mkdir tmp info files prefecture ; cd ..
mkdir unix ; cd unix
mkdir bin boot dev etc home home/user home/root home/sudo home/user2 lib media mnt opt proc root run sbin srv sys tmp usr var
touch initrd.img vmlinuz ; cd ..
mkdir Images
touch Images/thisisBASHyoulowlycasual
mkdir TrucSuperImportant
echo -e "La vie ? \nUn sacré sac de petits tracas et de grandes contrariétés. \n\nMais avec des pauses crêpe, ça passe." > TrucSuperImportant/la_verite_se_trouve_ici.txt
mkdir -p "Video/My_Little_Pony-Friendship_is_Magic" ; cd "Video/My_Little_Pony-Friendship_is_Magic"
touch "1_-_Friendship_Is_Magic_(Part_1).webm" "2_-_Friendship_Is_Magic_(Part_2).webm" "3_-_The_Ticket_Master.webm" "4_-_Applebuck_Season.webm" "5_-_Griffon_the_Brush-Off.webm" "6_-_Boast_Busters.webm" "7_-_Dragonshy.webm" "8_-_Look_Before_You_Sleep.webm" "9_-_Bridle_Gossip.webm" "10_-_Swarm_of_the_Century.webm" "11_-_Winter_Wrap_Up.webm" "12_-_Call_of_the_Cutie.webm" "13_-_Fall_Weather_Friends.webm" "14_-_Suited_for_Success.webm" "15_-_Feeling_Pinkie_Keen.webm" "16_-_Sonic_Rainboom.webm" "17_-_Stare_Master.webm" "18_-_The_Show_Stoppers.webm" "19_-_A_Dog_and_Pony_Show.webm" "20_-_Green_Isn't_Your_Color.webm" "21_-_Over_a_Barrel.webm" "22_-_A_Bird_in_the_Hoof.webm" "23_-_The_Cutie_Mark_Chronicles.webm" "24_-_Owl's_Well_That_Ends_Well.webm" "25_-_Party_of_One.webm" "26_-_The_Best_Night_Ever.webm"
cd ../..
mkdir secrets
echo -e "https://www.infokiosques.net : Mine d'or de documentation anarchiste sur tous les sujets de luttes actuelles, passées et futures. Enfin une façon d'apprendre sans s'encombrer de l'école \!\nhttps://www.lamuledupape.com : média indépendant et entêté, qui donne des nouvelles du sud dont on n'entendra jamais parler à la télé ni la radio\nhttps://www.lepoing.net : journal participatif montpeliérain\nhttps://www.rebellyon.fr : actualités des luttes dans la région lyonnaise et le reste de la France\nhttps://www.lemediatv.fr : site de journalisme et actualités en vidéo, fait par des idéalistes indépendant.es" > secrets/ne_pas_ouvrir.txt

66
exercices/gen_enonces.sh Normal file
View File

@ -0,0 +1,66 @@
#!/bin/bash
if [ "$#" -lt 2 ] ; then
echo 'Usage: $0 <seed> <eleve> [root]'
echo '<seed>: seed directory'
echo '<eleve>: home directory'
echo '[root]: unused. Please dont try to feed it! You have been warned.'
exit 1
fi
seed=$1
eleve=$2
root=$3
mkdir -p enonces/$eleve prof/$eleve
function ex1() {
#cd quelque part et touch un fichier
folder=$(head -n 1 $seed/$eleve/folders.seed)
echo -e "\tEXERCICE 1\n\nRends-toi dans le dossier $folder et crée un fichier dont le nom est ton prénom (avec une majuscule au début, et des tirets à la place des espaces).\n\tEx: $folder/Jean-claude" > enonces/$eleve/ex1.txt
echo -e "#!/bin/bash \nls $folder | grep -i $eleve ; exit \$?" > prof/$eleve/ex1.sh
}
function ex2() {
#cd quelque part, ls et touch un fichier
folder=$(head -n 2 $seed/$eleve/folders.seed | tail -n 1)
int=$(head -n 1 $seed/$eleve/ints.seed)
echo -e "\tEXERCICE 2\n\nRends-toi dans le dossier $folder.\nListe les fichiers présents.\nCrée le fichier qui continue la suite logique.\n\tEx: 1.txt 2.txt 3.txt" > enonces/$eleve/ex2.txt
for i in $(seq 1 $int) ; do
touch $folder/$i.txt
done
((i=int+1))
echo -e "#!/bin/bash \nls $folder | grep -i $i.txt ; exit \$?" > prof/$eleve/ex2.sh
}
function ex3() {
folder=$(head -n 3 $seed/$eleve/folders.seed | tail -n 1)
filename=$(head -n 1 $seed/$eleve/filenames.seed) ;
folder2=$(head -n 4 $seed/$eleve/folders.seed | tail -n 1)
filename2=$(head -n 2 $seed/$eleve/filenames.seed | tail -n 1)
echo -e "Va créer un fichier $filename.txt dans le dossier $folder." > $folder2/$filename2
echo -e "Suis les instructions du fichier $folder2/$filename2" > enonces/$eleve/ex3.txt
echo -e "#!/bin/bash \nls $folder | grep -i $filename ; exit \$?" > prof/$eleve/ex3.sh
}
ex1
ex2
ex3

37
exercices/gen_seed.sh Normal file
View File

@ -0,0 +1,37 @@
#!/bin/bash
USAGE="gen_seed.sh ROOT FOLDERS FILES FILENAMES INTEGERS USER DIR : generate a file USER.seed in the DIR folder, which can be then used to generate exercises."
if [[ $# != 7 ]] ; then echo -e $USAGE ; exit 0 ; fi
# This users home
root=$1
# How many random folders, files, filenames and integers you need
folders=$2
files=$3
filenames=$4
ints=$5
# username
USER=$6
# Seeds storage
DIR=$7
if echo $DIR | grep -v /$ ; then DIR=$DIR/ ; fi
mkdir $DIR$USER ;
find $root -type d | shuf | head -n $folders > $DIR$USER/folders.seed
find $root -type f | shuf | head -n $files > $DIR$USER/files.seed
cat haddock.list | shuf | head -n $filenames > $DIR$USER/filenames.seed
if [[ -s $DIR$USER/ints.seed ]] ; then rm $DIR$USER/ints.seed ; fi
for i in $(seq 1 $ints) ; do
echo $((3 + $RANDOM % 13)) >> $DIR$USER/ints.seed
done

229
exercices/haddock.list Normal file
View File

@ -0,0 +1,229 @@
accapareur
aérolithe
amphitryon
anacoluthe
analphabète
animal
anthracite
anthropophage
anthropopithèque
apache
apophtegme
arlequin
ascenseur
autocrate
autodidacte
Aztèques
babouin
bachi-bouzouk
bandit
bibelot
bibendum
bidule
boit-sans-soif
bonhomme
brigand
brontosaure
brute
cachalot
cake-walk
calembredaine
canaille
Canaque
cannibale
casse-pieds
catachrèse
cataplasme
cercopithèque
chauffard
chenapan
choléra
chrysanthème
cloporte
clown
clysopompe
coléoptère
coloquinte
coquin
cornemuse
cornichon
corsaire
coupe-jarret
cromagnon
cuistre
cyanure
cyclone
cyclotron
diable
diablesse
diplodocus
doryphore
dynamiteur
écornifleur
écraseur
Ectoplasme
égoïste
emplâtre
empoisonneur
énergumène
enragé
épouvantail
équilibriste
esclavagiste
escogriffe
escroc
entêté
farceur
fichu
fiston
flibustier
flûte
forban
fourbe
froussard
gaillard
galopin
gamin
gangster
gargarisme
garnement
goujat
gredin
grenouille
gros-plein-de-soupe
gyroscope
hérétique
hors-la-loi
hurluberlu
hydrocarbure
iconoclaste
invertébré
isotope
ivrogne
jocrisse
judas
Khroumir
KRRTCHMVRTZ
Kanak
lâche
lascar
lépidoptère
logarithme
maboul
macaque
macrocéphale
malappris
malheur
malheureux
malotru
Mamelouk
maudit
mazette
mégacycle
mégalomane
mercanti
mercenaire
mérinos
misérable
moratorium
moricaud
mouchard
moujik
moussaillon
mufle
MRKRPXZKRMTFRZ
naufrageur
négrier
nyctalope
olibrius
ophicléide
ornithorynque
oryctérope
ostrogoth
Pachyderme
paltoquet
pantoufle
papou
paranoïaque
parasites
Patagon
patapouf
patate
peau-rouge
pénultième
péronnelle
phénomène
phlébotome
phylactère
phylloxéra
pignouf
pirate
pleurnichard
polichinelle
polygraphe
potentat
poussière
profiteur
protozoaire
pyromane
pyrophore
rapace
rat
ravachol
renégat
rhizopode
rocambole
sacripant
sajou
saltimbanque
sapajou
sapristi
satrape
sauvage
scélérat
schizophrène
scolopendre
scorpion
serpent
sinapisme
soulographe
tchouk-tchouk-nougat
technocrate
terroriste
tigresse
tonnerre
topinambour
tortionnaire
traîne-potence
traître
tricheur
troglodyte
trompe-la-mort
troufignol
vampire
vandale
va-nu-pieds
vaurien
végétarien
vermicelles
vermine
vipère
vivisectionniste
voleur
Wisigoths
Zapotèques
zèbre
zigomar
zouave
Zoulou
anthropopithèque
flibustier
particulier
sinapisme
anthropopithèque
boit-sans-soif
cornichon
froussard
maraud
paltoquet
sapajou