0% ont trouvé ce document utile (0 vote)
1 vues8 pages

QCM Correction Linux Shell-2

Ce document est un questionnaire à choix multiples (QCM) sur les systèmes Linux et la programmation Shell, comprenant 70 questions de niveau intermédiaire avec des réponses et des explications. Chaque question aborde des concepts clés tels que les commandes, les scripts Bash, la gestion des fichiers et des processus, ainsi que des éléments de syntaxe. Le document sert de ressource pour tester et renforcer les connaissances en administration système et en programmation Shell.

Transféré par

rdq55nd4m5
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
1 vues8 pages

QCM Correction Linux Shell-2

Ce document est un questionnaire à choix multiples (QCM) sur les systèmes Linux et la programmation Shell, comprenant 70 questions de niveau intermédiaire avec des réponses et des explications. Chaque question aborde des concepts clés tels que les commandes, les scripts Bash, la gestion des fichiers et des processus, ainsi que des éléments de syntaxe. Le document sert de ressource pour tester et renforcer les connaissances en administration système et en programmation Shell.

Transféré par

rdq55nd4m5
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

QCM — Systèmes Linux & Programmation Shell

Niveau Intermédiaire | 70 Questions | Corrigé complet avec explications

Q1. Commandes permettant d'obtenir le type/contenu d'un fichier

✔ B. sort | C. file | D. cat


■ file identifie le type, cat affiche le contenu

Q2. Lire un fichier texte dans un pipeline

✔ C. Redirige uniquement vers [Link] sans afficher à l'écran


■ La redirection > envoie la sortie vers un fichier

Q3. Que fait diff fichier1 fichier2 ?

✔ B. Affiche les différences ligne par ligne entre les deux fichiers
■ diff compare deux fichiers et montre les lignes différentes

Q4. Affirmations correctes sur les tableaux (arrays) Bash

✔ A. ${arr[@]} développe tous les éléments C. arr=(a b c) déclare un tableau


■ En Bash, arr=(...) déclare un tableau, ${arr[@]} accède à tous les éléments

Q5. Compte le nombre de lignes contenant 'error'

✔ D. grep -c 'error' [Link]


■ -c compte le nombre de lignes correspondantes

Q6. Cherche le PID d'un processus nommé nginx

✔ A. pidof nginx ou D. ps aux | grep nginx


■ pidof renvoie directement le PID, ps aux liste tous les processus

Q7. Exporter la variable PATH visible dans les sous-shells

✔ A. export PATH=$PATH:/nouveau/chemin
■ export rend la variable disponible pour les sous-processus

Q8. Éléments d'un shebang valide pour un script Bash

✔ C. #!/usr/bin/env bash (préférable pour la portabilité) D. Il doit être la première ligne du script
■ Le shebang indique l'interpréteur à utiliser

Q9. Que fait set -e en début de script ?

✔ C. Le script s'arrête si une commande retourne un code d'erreur non nul


■ set -e active l'arrêt automatique sur erreur

Q10. Que fait uniq -c appliqué à une sortie triée ?


✔ B. Affiche les lignes avec leur nombre d'occurrences
■ -c préfixe chaque ligne par le nombre d'occurrences

Q11. Exécuter une commande avec & en fin de ligne

✔ C. La commande s'exécute en arrière-plan


■ & lance la commande en background

Q12. grep recherche 'erreur' insensible à la casse dans [Link]

✔ B. grep -i 'erreur' [Link]


■ -i ignore la distinction majuscules/minuscules

Q13. Que fait cat << EOF ... EOF dans un script ?

✔ C. Crée un here-document / lit un bloc de texte en entrée


■ Le here-document passe du texte multiligne en entrée d'une commande

Q14. Comment définir une fonction dans un script Bash ?

✔ A. function ma_fonction() { ... } D. ma_fonction() { ... }


■ Les deux syntaxes sont valides en Bash

Q15. Options de set utiles pour déboguer un script Bash

✔ A. set -v (affiche les lignes du script à la lecture) B. set -x (affiche chaque commande avant
exécution)
■ set -x est le plus utilisé pour le débogage

Q16. Que fait la commande wc -l [Link] ?

✔ A. Compte le nombre de lignes dans [Link]


■ -l compte les lignes

Q17. Affirmations correctes sur la commande find

✔ D. -exec permet d'exécuter une commande sur chaque fichier trouvé


■ -exec {} \; exécute une commande pour chaque résultat

Q18. Commandes pour gérer les jobs en arrière-plan

✔ A. fg %1 (ramène job 1 en avant-plan) B. jobs (liste les jobs) D. bg %2 (reprend job 2 en


arrière-plan)
■ fg/bg/jobs sont les commandes de gestion des jobs

Q19. Modifier la priorité (nice value) d'un processus PID 5678 à +10

✔ D. renice 10 5678
■ renice modifie la priorité d'un processus déjà en cours

Q20. Remplace la première occurrence de foo par bar


✔ D. sed 's/foo/bar/' [Link]
■ sed 's/motif/remplacement/' remplace la 1ère occurrence par ligne

Q21. Effets du bit SUID sur un exécutable

✔ B. L'exécutable s'exécute avec les droits du propriétaire du fichier


■ SUID = Set User ID, élève les privilèges temporairement

Q22. Envoyer le signal SIGKILL au processus PID 1234

✔ C. kill -9 1234
■ -9 correspond au signal SIGKILL (arrêt forcé)

Q23. Quelle commande affiche l'arborescence des processus ?

✔ B. pstree
■ pstree affiche les processus sous forme d'arbre

Q24. Lire un fichier ligne par ligne en script Bash

✔ A. while IFS= read -r ligne; do ...; done < fichier C. while read ligne; do ...; done < fichier
■ IFS= évite la suppression des espaces en début/fin

Q25. Afficher les 20 dernières lignes de syslog

✔ A. tail -n 20 /var/log/syslog
■ tail -n N affiche les N dernières lignes

Q26. Que représente $1 dans un script Bash ?

✔ B. Le premier argument passé au script


■ $1, $2... représentent les arguments positionnels

Q27. Syntaxe correcte de case en Bash

✔ A. case $var in motif) commande;; esac


■ La structure case...in...esac est propre à Bash/sh

Q28. Que fait find /tmp --empty --delete ?

✔ A. Supprime tous les fichiers et répertoires vides dans /tmp


■ --empty filtre les fichiers vides, --delete les supprime

Q29. Que représente $$ dans un script Bash ?

✔ C. Le PID du script en cours


■ $$ contient le PID du processus shell courant

Q30. awk affiche le 3e champ d'un fichier CSV (séparateur virgule)

✔ A. awk -F',' '{print $3}' [Link]


■ -F définit le séparateur de champ, $3 = 3e champ

Q31. Différence entre pipe | et substitution de processus <(commande)

✔ B. La substitution permet de passer la sortie d'une commande comme un fichier


■ <(cmd) crée un descripteur de fichier virtuel

Q32. Que fait la commande cp -r /src /dest ?

✔ A. Copie récursivement le répertoire /src vers /dest


■ -r (ou -R) copie récursivement les répertoires

Q33. Que signifie 2>&1 ?

✔ B. Redirige la sortie d'erreur (fd 2) vers la sortie standard (fd 1)


■ 2>&1 fusionne stderr dans stdout

Q34. Que fait trap 'rm -f /tmp/lock' EXIT dans un script ?

✔ B. Exécute la commande de nettoyage à la fin du script


■ EXIT déclenche la commande quand le script se termine

Q35. Que fait nohup commande & ?

✔ C. Lance la commande en arrière-plan, immunisée contre SIGHUP


■ nohup empêche la terminaison lors de la déconnexion

Q36. Quelle commande sed supprime les lignes vides ?

✔ B. sed '/^$/d' fichier


■ ^$ correspond à une ligne vide, d la supprime

Q37. Créer l'arborescence /tmp/a/b/c en une seule fois

✔ B. mkdir -p /tmp/a/b/c
■ -p crée tous les répertoires parents manquants

Q40. Commandes ajoutant la sortie à la fin de [Link]

✔ B. commande >> [Link]


■ >> ajoute (append) sans écraser le fichier

Q41. Différence entre > et >>

✔ B. > écrase le fichier, >> ajoute à la suite


■ > tronque et écrase, >> ajoute en fin de fichier

Q42. Afficher en temps réel les nouvelles lignes de /var/log/messages

✔ D. tail -f /var/log/messages
■ -f (follow) suit les nouvelles lignes en temps réel
Q43. Qu'implique umask 022 pour un nouveau fichier ?

✔ C. Les droits du fichier seront 644


■ 666 (droits max fichier) - 022 (umask) = 644

Q44. Option grep affichant le numéro de ligne des correspondances

✔ D. grep -n 'motif' fichier


■ -n préfixe chaque résultat par son numéro de ligne

Q45. Commandes awk calculant la somme du 2e champ d'un fichier

✔ A. awk '{sum+=$2} END{print sum}' fichier


■ END{} s'exécute après le traitement de toutes les lignes

Q46. Afficher tous les processus avec PID et commande complète

✔ C. ps aux
■ a=tous les utilisateurs, u=format détaillé, x=sans terminal

Q47. Extraire les caractères 5 à 10 de chaque ligne de [Link]

✔ B. awk '{print substr($0,5,10)}' [Link]


■ substr($0, début, longueur) extrait une sous-chaîne

Q48. Afficher les ACL d'un fichier [Link]

✔ C. getfacl [Link]
■ getfacl affiche les ACL, setfacl les modifie

Q49. Que retourne du -sh /home ?

✔ B. La taille totale du répertoire /home dans un format lisible


■ -s = résumé total, -h = format humain (Ko, Mo, Go)

Q50. Syntaxe pour affecter la sortie de date à la variable TODAY

✔ C. TODAY=$(date)
■ $(...) est la substitution de commande moderne

Q51. grep avec ERE pour lignes commençant par un chiffre

✔ A. grep -E '^[0-9]' fichier


■ -E active les expressions régulières étendues, ^ = début de ligne

Q52. Syntaxes correctes de boucle for en Bash

✔ A. for i in $(seq 1 5); do echo $i; done B. for i in {1..5}; do echo $i; done
■ Les deux formes sont équivalentes

Q53. Somme des valeurs du 3e champ supérieur à 100


✔ A. awk '$3 > 100 {sum+=$3} END{print sum}' [Link]
■ Condition avant l'action en awk

Q54. Afficher les variables d'environnement actuelles

✔ B. printenv ou C. env
■ Les deux affichent les variables d'environnement

Q55. Que fait sed -i 's/foo/bar/g' [Link] ?

✔ D. Modifie [Link] en remplaçant TOUTES les occurrences de foo par bar


■ -i modifie le fichier en place, /g remplace toutes les occurrences

Q56. Affirmations correctes sur le sticky bit

✔ D. Sur un répertoire, il empêche les utilisateurs de supprimer les fichiers des autres
■ Utilisé sur /tmp : seul le propriétaire peut supprimer ses fichiers

Q60. Signification des droits rwxr-x--- sur un fichier

✔ B. Propriétaire : rwx ; Groupe : r-x ; Autres : --- (aucun droit)


■ rwx=7, r-x=5, ---=0 soit 750

Q61. Syntaxes for correctes en Bash

✔ A. for i in $(seq 1 5); do echo $i; done B. for i in {1..5}; do echo $i; done
■ Deux syntaxes valides pour itérer de 1 à 5

Q62. Que fait grep -v 'DEBUG' [Link] ?

✔ B. Affiche toutes les lignes ne contenant PAS DEBUG


■ -v inverse la sélection (exclut le motif)

Q63. Différence entre [ ] et [[ ]] en Bash

✔ C. [[ ]] est un mot-clé Bash étendu supportant &&, || et les regex


■ [[ ]] est plus puissant et sûr que [ ]

Q64. Donner le droit d'exécution à tous les scripts dans /opt/scripts

✔ B. chmod -R u+x /opt/scripts


■ -R applique récursivement, u+x ajoute l'exécution pour le propriétaire

Q65. Valeur octale correspondant aux droits rwxr-xr-x

✔ A. 755
■ rwx=7, r-x=5, r-x=5 → 755

Q66. Que fait kill -l ?

✔ A. Affiche la liste de tous les signaux disponibles


■ -l liste tous les signaux (SIGTERM, SIGKILL, etc.)

Q67. Permettre à l'utilisateur bob de lire [Link] via les ACL

✔ B. setfacl -m u:bob:r [Link]


■ setfacl -m modifie les ACL, u:bob:r = lecture pour bob

Q68. Donner les droits 755 au fichier [Link]

✔ B. chmod 755 [Link]


■ 755 = rwxr-xr-x

Q69. Syntaxe Bash pour une opération arithmétique

✔ A. result=$((3 + 4))
■ $((...)) est la syntaxe d'évaluation arithmétique

Q70. Créer un lien symbolique lien pointant vers /etc/hosts

✔ C. ln -s /etc/hosts lien
■ -s crée un lien symbolique (soft link)

Tableau Récapitulatif des Réponses


N° Réponse N° Réponse
Q1 B/C/D (file, cat) Q2 C (redirection >)

Q3 B (diff) Q4 A/C (tableaux)

Q5 D (grep -c) Q6 A (pidof)

Q7 A (export) Q8 C/D (shebang)

Q9 C (set -e) Q10 B (uniq -c)

Q11 C (arrière-plan) Q12 B (grep -i)

Q13 C (here-doc) Q14 A/D (fonction)

Q15 A/B (set -v/-x) Q16 A (wc -l)

Q17 D (-exec) Q18 A/B/D (fg/jobs/bg)

Q19 D (renice) Q20 D (sed s///)

Q21 B (SUID) Q22 C (kill -9)

Q23 B (pstree) Q24 A/C (while read)

Q25 A (tail -n 20) Q26 B ($1)

Q27 A (case) Q28 A (--delete)

Q29 C ($$=PID) Q30 A (awk -F)

Q31 B (substitution) Q32 A (cp -r)

Q33 B (2>&1) Q34 B (trap EXIT)

Q35 C (nohup) Q36 B (sed /^$/d)

Q37 B (mkdir -p) Q40 B (>>)

Q41 B (> vs >>) Q42 D (tail -f)

Q43 C (umask→644) Q44 D (grep -n)


Q45 A (awk sum) Q46 C (ps aux)

Q47 B (awk substr) Q48 C (getfacl)

Q49 B (du -sh) Q50 C ($(...))

Q51 A (grep -E) Q52 A/B (for)

Q53 A (awk $3>100) Q54 B/C (env)

Q55 D (sed -i /g) Q56 D (sticky bit)

Q60 B (rwxr-x---) Q61 A/B (for)

Q62 B (grep -v) Q63 C ([[ ]])

Q64 B (chmod -R) Q65 A (755)

Q66 A (kill -l) Q67 B (setfacl)

Q68 B (chmod 755) Q69 A ($(()))

Vous aimerez peut-être aussi