Aller au contenu principal

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