Quiz Module 6 - Scripting Shell
Instructions
Ce quiz contient 30 questions à choix multiples pour valider votre compréhension du Module 6.
Conseil: Répondez à chaque question avant de révéler la réponse. Les réponses sont cachées juste après chaque question.
Question 1
Quel est le shebang standard pour un script Bash?
Voir l'explication
Réponse correcte: #!/bin/bash
Explication: Le shebang #!/bin/bash indique que le script doit être exécuté avec Bash. Il doit être sur la première ligne du script. Exemple: #!/bin/bash suivi d'une ligne vide puis le code.
Question 2
Comment rendre un script exécutable?
Voir l'explication
Réponse correcte: chmod +x script.sh
Explication: chmod +x script.sh ajoute la permission d'exécution au script. On peut ensuite l'exécuter avec ./script.sh ou bash script.sh. chmod 755 script.sh fait la même chose.
Question 3
Comment déclarer une variable en Bash?
Voir l'explication
Réponse correcte: var="valeur"
Explication: En Bash, on déclare une variable avec `var="valeur"` (pas d'espaces autour du `=`). Pour utiliser la variable: `$var` ou `${var}`. Pour l'afficher: `echo $var`.
Question 4
Quelle commande permet de planifier une tâche récurrente dans Linux?
Voir l'explication
Réponse correcte: cron
Explication: cron est le démon qui exécute les tâches planifiées. crontab est la commande pour gérer les tâches cron. Les tâches sont définies dans des fichiers crontab avec une syntaxe spéciale.
Question 5
Quelle commande permet d'éditer les tâches cron d'un utilisateur?
Voir l'explication
Réponse correcte: crontab -e
Explication: crontab -e ouvre l'éditeur pour modifier les tâches cron de l'utilisateur courant. crontab -l liste les tâches, crontab -r supprime toutes les tâches. Les tâches sont stockées dans /var/spool/cron/crontabs/username.
Question 6
Quelle est la syntaxe correcte d'une ligne crontab?
Voir l'explication
Réponse correcte: minute heure jour mois jour-semaine commande
Explication: Format crontab: minute heure jour mois jour-semaine commande. Exemples: 0 * * * * (chaque heure), 0 0 * * * (minuit chaque jour), */5 * * * * (toutes les 5 minutes). Les jours de la semaine: 0-7 (0 et 7 = dimanche).
Question 7
Quelle syntaxe crontab exécute une tâche toutes les heures?
Voir l'explication
Réponse correcte: 0 * * * *
Explication: 0 * * * * signifie: minute 0 de chaque heure, chaque jour, chaque mois, chaque jour de la semaine = toutes les heures à la minute 0. 0 0 * * * = minuit chaque jour. * * * * * = chaque minute.
Question 8
Quelle syntaxe crontab exécute une tâche tous les jours à minuit?
Voir l'explication
Réponse correcte: 0 0 * * *
Explication: 0 0 * * * signifie: minute 0, heure 0 (minuit), chaque jour, chaque mois, chaque jour de la semaine = tous les jours à minuit. C'est très courant pour les sauvegardes quotidiennes.
Question 9
Quelle commande liste les tâches cron d'un utilisateur?
Voir l'explication
Réponse correcte: crontab -l
Explication: crontab -l liste les tâches cron de l'utilisateur courant. crontab -l -u username liste les tâches d'un autre utilisateur (nécessite root). crontab -e édite, crontab -r supprime toutes les tâches.
Question 10
Quelle structure de contrôle permet d'exécuter du code conditionnel en Bash?
Voir l'explication
Réponse correcte: if-then-else
Explication: La structure if-then-else permet d'exécuter du code conditionnel. Syntaxe: if [ condition ]; then commandes; else commandes; fi. Exemple: if [ $var -eq 10 ]; then echo "Égal"; fi.
Question 11
Quelle boucle permet d'itérer sur une liste en Bash?
Voir l'explication
Réponse correcte: for
Explication: La boucle for permet d'itérer sur une liste. Syntaxes: for var in liste; do commandes; done ou for ((i=1; i<=10; i++)); do commandes; done. Exemple: for file in *.txt; do echo $file; done.
Question 12
Quelle boucle exécute du code tant qu'une condition est vraie?
Voir l'explication
Réponse correcte: while
Explication: La boucle while exécute du code tant qu'une condition est vraie. Syntaxe: while [ condition ]; do commandes; done. until fait l'inverse (tant que la condition est fausse). Attention aux boucles infinies!
Question 13
Quelle variable contient le code de retour de la dernière commande?
Voir l'explication
Réponse correcte: $?
Explication: $? contient le code de retour de la dernière commande. 0 = succès, non-zéro = erreur. Exemple: command; if [ $? -eq 0 ]; then echo "Succès"; fi. On peut aussi utiliser directement: if command; then ....
Question 14
Quelle variable contient le nombre d'arguments passés au script?
Voir l'explication
Réponse correcte: $#
Explication: $# contient le nombre d'arguments passés au script. $1, $2, etc. contiennent les arguments individuels. $0 contient le nom du script. $@ contient tous les arguments.
Question 15
Quelle variable contient le premier argument passé au script?
Voir l'explication
Réponse correcte: $1
Explication: $1 contient le premier argument, $2 le deuxième, etc. $0 contient le nom du script. $@ contient tous les arguments. Exemple: ./script.sh arg1 arg2 → $1="arg1", $2="arg2".
Question 16
Quelle commande permet de créer une fonction en Bash?
Voir l'explication
Réponse correcte: function_name() suivi de commandes entre accolades
Explication: Syntaxe pour créer une fonction: `function_name() { commandes; }` (avec des accolades autour des commandes). On peut aussi utiliser `function function_name { commandes; }`. Pour appeler: `function_name` ou `function_name arg1 arg2`. Note: Les accolades sont nécessaires pour délimiter le corps de la fonction.
Question 17
Quel fichier contient les tâches cron système (pour tous les utilisateurs)?
Voir l'explication
Réponse correcte: /etc/crontab
Explication: /etc/crontab contient les tâches cron système. Format similaire mais avec un champ utilisateur: minute heure jour mois jour-semaine utilisateur commande. Les répertoires /etc/cron.d/, /etc/cron.hourly/, /etc/cron.daily/, etc. contiennent aussi des tâches système.
Question 18
Quel répertoire contient les scripts exécutés quotidiennement par cron?
Voir l'explication
Réponse correcte: /etc/cron.daily
Explication: /etc/cron.daily/ contient les scripts exécutés quotidiennement. Similaire: /etc/cron.hourly/, /etc/cron.weekly/, /etc/cron.monthly/. Ces scripts sont exécutés par anacron ou run-parts.
Question 19
Quelle commande permet de tester si un fichier existe en Bash?
Voir l'explication
Réponse correcte: [ -f fichier ] ou test -f fichier
Explication: [ -f fichier ] teste si un fichier existe et est un fichier régulier. Autres tests: [ -d fichier ] (répertoire), [ -e fichier ] (existe), [ -r fichier ] (lisible), [ -w fichier ] (modifiable), [ -x fichier ] (exécutable).
Question 20
Quelle commande permet de lire une entrée utilisateur dans un script Bash?
Voir l'explication
Réponse correcte: read
Explication: read variable lit une ligne depuis l'entrée standard et la stocke dans la variable. Exemples: read name, read -p "Entrez votre nom: " name (avec prompt), read -s password (masquer l'entrée).
Question 21
Quelle structure permet de faire un choix multiple en Bash?
Voir l'explication
Réponse correcte: case-esac
Explication: case permet de faire un choix multiple. Syntaxe: case $var in pattern1) commandes;; pattern2) commandes;; *) commandes;; esac. Plus lisible que plusieurs if-elif pour de nombreux choix.
Question 22
Quelle syntaxe crontab exécute une tâche toutes les 5 minutes?
Voir l'explication
Réponse correcte: */5 * * * *
Explication: */5 * * * * signifie toutes les 5 minutes. Le */5 signifie "toutes les valeurs divisibles par 5". 5 * * * * = seulement à la minute 5 de chaque heure. 5,10,15 * * * * = aux minutes 5, 10 et 15.
Question 23
Quelle variable contient le PID du processus actuel?
Voir l'explication
Réponse correcte: $$
Explication: $$ contient le PID du processus shell actuel. Utile pour créer des fichiers temporaires uniques: tempfile="/tmp/script.$$". $PPID contient le PID du processus parent.
Question 24
Quelle commande permet de rediriger la sortie d'erreur vers un fichier?
Voir l'explication
Réponse correcte: command 2> error.log
Explication: 2> redirige la sortie d'erreur (stderr, file descriptor 2). > redirige la sortie standard (stdout, file descriptor 1). 2>&1 redirige stderr vers stdout. &> redirige les deux vers un fichier.
Question 25
Quelle commande permet de rediriger à la fois la sortie standard et d'erreur vers un fichier?
Voir l'explication
Réponse correcte: command &> file ou command > file 2>&1
Explication: command &> file redirige stdout et stderr vers le fichier. Équivalent à command > file 2>&1. L'ordre est important: 2>&1 doit venir après > file pour rediriger stderr vers le même endroit que stdout.
Question 26
Quelle commande permet de créer un tableau (array) en Bash?
Voir l'explication
Réponse correcte: array=(1 2 3)
Explication: Syntaxe pour créer un tableau: `array=(1 2 3)` ou `array=("un" "deux" "trois")`. Pour accéder: `${array[0]}`, `${array[1]}`, etc. `${array[@]}` contient tous les éléments. `${#array[@]}` = nombre d'éléments.
Question 27
Quelle syntaxe crontab exécute une tâche tous les lundis à 9h00?
Voir l'explication
Réponse correcte: 0 9 * * 1
Explication: 0 9 * * 1 = minute 0, heure 9, chaque jour, chaque mois, lundi (1). Les jours de la semaine: 0 ou 7 = dimanche, 1 = lundi, 2 = mardi, ..., 6 = samedi.
Question 28
Quelle commande permet de sortir d'une fonction avec une valeur de retour?
Voir l'explication
Réponse correcte: return
Explication: return sort d'une fonction avec un code de retour. return 0 = succès, return 1 = erreur. exit quitte tout le script. break sort d'une boucle. return sans argument retourne le code de la dernière commande.
Question 29
Quelle commande permet de quitter un script avec un code de retour?
Voir l'explication
Réponse correcte: exit
Explication: exit quitte le script avec un code de retour. exit 0 = succès, exit 1 (ou autre non-zéro) = erreur. Si aucun code n'est spécifié, utilise le code de la dernière commande. return ne fonctionne que dans les fonctions.
Question 30
Quelle commande permet de voir les logs des tâches cron sur Ubuntu 24.04?
Voir l'explication
Réponse correcte: journalctl -u cron ou grep CRON /var/log/syslog
Explication: Sur Ubuntu 24.04, les logs cron sont dans les logs systemd. journalctl -u cron affiche les logs du service cron. On peut aussi chercher dans /var/log/syslog: grep CRON /var/log/syslog. Les logs montrent les exécutions et erreurs des tâches cron.
Résultat du Quiz
Félicitations pour avoir complété le quiz du Module 6!
Score:
- 25-30 bonnes réponses: Excellent! Vous maîtrisez le scripting Bash et cron.
- 20-24 bonnes réponses: Très bien! Revoyez les concepts où vous avez eu des difficultés.
- 15-19 bonnes réponses: Bien! Revoyez les chapitres sur le scripting et cron.
- Moins de 15: Recommandé de revoir le module avant de continuer.
Prochaines Étapes
Maintenant que vous avez validé vos connaissances:
Module 7: Réseau et Configuration
Labs pratiques: Mettez en pratique le scripting et cron avec les labs du Module 6
Quiz créé le: Décembre 2024 - Testé sur Ubuntu 24.04