Université Polytechnique de Bingerville Année Académique 2025-2026
LICENCE 2 MIAGE Administration Système Linux 2
TD 1 : SCRIPTING SHELL
Ce TD est sous la forme de 50 QCM. Certaines questions ont plusieurs
réponses correctes et d’autres n’ont qu’une seule réponse correcte.
CONSIGNE : Répondre aux questions et expliquez vos réponses.
QCM 1 – Objectif du scripting shell
Le scripting shell permet principalement :
A. Développer des interfaces graphiques
B. Automatiser des tâches système
C. Programmer des pilotes matériels
D. Modifier le noyau Linux
QCM 2 – Bash
Bash est :
A. Un compilateur
B. Un interpréteur de commandes
C. Un langage compilé
D. Un noyau
QCM 3 – Shebang
La ligne `#!/bin/bash` :
A. Est un commentaire
B. Indique l’interpréteur à utiliser
C. Définit une variable
D. Est obligatoire
QCM 4 – Exécution d’un script
Pour exécuter un script :
A. `./[Link]`
B. `bash [Link]`
C. Le fichier doit être exécutable
D. Il faut être root
QCM 5 – Droits
Quelle commande ajoute le droit d’exécution ?
A. `chmod +x [Link]`
B. `chmod 777 [Link]`
C. `exec [Link]`
D. `set +x [Link]`
QCM 6 – Variables
Déclaration correcte :
A. `var = 5`
B. `var=5`
C. `$var=5`
D. `int var=5`
QCM 7 – Affichage variable
Afficher la variable `HOME` :
A. `echo HOME`
B. `echo $HOME`
C. `echo ${HOME}`
D. `print HOME`
QCM 8 – Variables d’environnement
Rendre une variable accessible aux sous-processus :
A. `set`
B. `env`
C. `export`
D. `declare`
QCM 9 – Paramètres positionnels
`$1` représente :
A. Le nom du script
B. Le premier argument
C. Le PID
D. Le nombre d’arguments
QCM 10 – `$#`
`$#` contient :
A. Le code retour
B. Le nombre d’arguments
C. Le dernier argument
D. Le PID
QCM 11 – `$?`
`$?` représente :
A. Le PID
B. Le code retour de la dernière commande
C. Le nombre d’arguments
D. Le nom du script
QCM 12 – Structure if
Syntaxe correcte :
A.
bash
if [ condition ]; then
commandes
fi
B.
bash
if condition { }
C.
bash
if (condition)
D.
bash
if [ condition ]
QCM 13 – Test d’existence
Tester l’existence d’un fichier :
A. `-f`
B. `-e`
C. `-d`
D. `-r`
QCM 14 – Répertoire
Tester un répertoire :
A. `-d`
B. `-f`
C. `-x`
D. `-w`
QCM 15 – Comparaison numérique
Comparer deux entiers :
A. `-eq`
B. `==`
C. `-lt`
D. `-gt`
QCM 16 – Comparaison de chaînes
Comparer deux chaînes :
A. `=`
B. `!=`
C. `-eq`
D. `==`
QCM 17 – Boucle for
Syntaxe valide :
A.
bash
for i in 1 2 3; do echo $i; done
B.
bash
for(i=0;i<3;i++)
C.
bash
foreach i (1 2 3)
D.
bash
for i in {1..3}
QCM 18 – Boucle while
La boucle `while` s’exécute tant que :
A. La condition est vraie
B. La condition est fausse
C. Le script est actif
D. Le fichier existe
QCM 19 – Boucle until
La boucle `until` s’exécute tant que :
A. La condition est vraie
B. La condition est fausse
C. Le script est lancé
D. Le shell existe
QCM 20 – read
`read` sert à :
A. Lire un fichier
B. Lire une entrée utilisateur
C. Lire une variable
D. Lire un processus
QCM 21 – Redirection sortie
Rediriger STDOUT :
A. `>`
B. `<`
C. `>>`
D. `2>`
QCM 22 – Redirection erreur
Rediriger STDERR :
A. `2>`
B. `>`
C. `&>`
D. `<`
QCM 23 – Pipe
Le pipe `|` permet :
A. Chaîner des commandes
B. Rediriger vers un fichier
C. Filtrer une sortie
D. Exécuter en arrière-plan
QCM 24 – grep
`grep` permet :
A. Rechercher un motif
B. Modifier un fichier
C. Supprimer des lignes
D. Filtrer du texte
QCM 25 – awk
`awk` est utilisé pour :
A. Traitement de texte structuré
B. Réseau
C. Calculs simples
D. Gestion des utilisateurs
QCM 26 – sed
`sed` permet :
A. Modifier un flux texte
B. Compiler
C. Automatiser des remplacements
D. Gérer des processus
QCM 27 – Fonctions
Déclaration correcte :
A. `f() { }`
B. `function f() { }`
C. `def f():`
D. `function f {}`
QCM 28 – Portée
Par défaut, une variable est :
A. Locale
B. Globale au shell
C. Exportée
D. Constante
QCM 29 – local
`local` sert à :
A. Définir une variable globale
B. Définir une variable locale à une fonction
C. Exporter une variable
D. Supprimer une variable
QCM 30 – set -e
`set -e` :
A. Arrête le script à la première erreur
B. Active le debug
C. Ignore les erreurs
D. Optimise
QCM 31 – set -x
`set -x` permet :
A. Tracer l’exécution
B. Arrêter le script
C. Masquer les erreurs
D. Optimiser
QCM 32 – cron
Utilisé pour :
A. Programmer des tâches
B. Gérer les utilisateurs
C. Compiler
D. Redémarrer
QCM 33 – Sécurité
Bonne pratique :
A. Vérifier les entrées utilisateur
B. Utiliser chmod 777
C. Tout exécuter en root
D. Supprimer les logs
QCM 34 – Quoting
Les guillemets doubles :
A. Autorisent l’expansion des variables
B. Bloque toute expansion
C. Protègent les espaces
D. Sont inutiles
QCM 35 – Guillemets simples
Ils :
A. Désactivent toute expansion
B. Autorisent l’expansion
C. Protègent les caractères spéciaux
D. Sont équivalents
QCM 36 – Substitution de commande
Syntaxe moderne :
A. `` `ls` ``
B. `$(ls)`
C. `${ls}`
D. `(ls)`
QCM 37 – useradd
Commande pour créer un utilisateur :
A. `useradd`
B. `adduser`
C. `usermod`
D. `groupadd`
QCM 38 – userdel
Supprimer un utilisateur :
A. `userdel`
B. `deluser`
C. `rm user`
D. `kill user`
QCM 39 – Vérifier un utilisateur
Commande :
A. `id user`
B. `whoami user`
C. `ls user`
D. `groups`
QCM 40 – PID
PID signifie :
A. Process ID
B. Program ID
C. Parent ID
D. Priority ID
QCM 41 – kill
`kill` :
A. Envoie un signal
B. Supprime un fichier
C. Redémarre le système
D. Supprime un utilisateur
QCM 42 – SIGKILL
Signal 9 :
A. SIGKILL
B. SIGTERM
C. SIGSTOP
D. SIGINT
QCM 43 – exit 0
Signifie :
A. Erreur
B. Succès
C. Redémarrage
D. Pause
QCM 44 – case
La structure `case` :
A. Remplace plusieurs if
B. Améliore la lisibilité
C. Est obligatoire
D. Sert aux menus
QCM 45 – Logs
Bonne pratique :
A. Écrire dans `/var/log`
B. Supprimer les logs
C. Ne rien tracer
D. Écraser systématiquement
QCM 46 – Robustesse
Script robuste :
A. Vérifie les erreurs
B. Vérifie les paramètres
C. Ignore les retours
D. Utilise exit
QCM 47 – Automatisation
Objectif :
A. Gagner du temps
B. Réduire les erreurs
C. Remplacer l’admin
D. Standardiser
QCM 48 – Admin système
Un bon script admin :
A. Est lisible
B. Est commenté
C. Est sécurisé
D. Est minimal
QCM 49 – Maintenance
Le scripting aide à :
A. Maintenance
B. Supervision
C. Sauvegarde
D. Graphisme
QCM 50 – Finalité
Le scripting shell permet :
A. Administration efficace
B. Automatisation système
C. Supervision
D. Développement GUI