QCM : Commandes Linux et environnement shell (38 questions)

Questions et réponses du QCM

1. Dans un motif de nom de fichier, quelle interprétation distingue correctement `?` de `*` ?

`?` correspond à une chaîne éventuellement vide, tandis que `*` correspond à un caractère
`?` correspond à un caractère, tandis que `*` correspond à une chaîne éventuellement vide
`?` correspond à plusieurs caractères, tandis que `*` correspond à une chaîne non vide
`?` correspond à un caractère parmi une classe, tandis que `*` correspond à un caractère quelconque

`?` correspond à un caractère, tandis que `*` correspond à une chaîne éventuellement vide

Explication

Le joker `?` représente exactement un caractère, alors que `*` peut représenter une chaîne de longueur variable, y compris vide. Confondre leurs rôles inverse ces deux règles.

2. Quel outil permet de lister les tâches lancées depuis le shell courant ?

`top`
`kill`
`jobs`
`ps`

`jobs`

Explication

`jobs` liste les tâches du shell courant, tandis que `ps` affiche des processus et que `top` permet de les observer de façon interactive. `ps` concerne bien les processus, mais n’est pas la commande indiquée pour lister les tâches du shell courant.

3. Un utilisateur doit pouvoir lister un répertoire et traverser celui-ci pour atteindre un fichier qu’il contient : quelles permissions concernent ces deux actions ?

`w` pour lister le contenu et `r` pour traverser le répertoire
`r` pour lister le contenu et `x` pour accéder au répertoire et le traverser
`r` pour modifier le contenu et `w` pour accéder au répertoire
`x` pour lister le contenu et `r` pour accéder au répertoire

`r` pour lister le contenu et `x` pour accéder au répertoire et le traverser

Explication

Pour un répertoire, `r` autorise la liste du contenu et `x` l’accès ainsi que la traversée vers ses fichiers. La permission `x` ne correspond pas à la liste : sur un fichier ordinaire, elle concerne l’exécution.

4. Vous voulez effacer la ligne de commande en cours sans confondre cette action avec l’effacement de l’affichage du terminal ; quel raccourci utilisez-vous ?

Ctrl-D efface la ligne en cours.
Ctrl-U efface la ligne en cours.
Tab efface la ligne en cours.
Ctrl-L efface la ligne en cours.

Ctrl-U efface la ligne en cours.

Explication

Ctrl-U efface la ligne en cours, alors que Ctrl-L efface l’affichage du terminal. Ctrl-D transmet une fin de fichier et Tab tente de compléter la saisie.

5. Quelle commande sélectionne les lignes qui ne correspondent pas au motif `erreur`, sans tenir compte des majuscules et minuscules ?

`grep erreur -n`
`grep -i -v erreur`
`grep -v erreur`
`grep -i erreur`

`grep -i -v erreur`

Explication

`-v` inverse la sélection pour retenir les lignes non correspondantes, et `-i` ignore la casse. Employer `-i` sans `-v` ignorerait la casse, mais sélectionnerait encore les lignes correspondantes.

6. Un administrateur cherche les fichiers de configuration du système, les répertoires personnels et les fichiers temporaires : quels répertoires doit-il examiner, dans cet ordre ?

`/home`, `/etc`, `/var`
`/etc`, `/home`, `/tmp`
`/var`, `/tmp`, `/home`
`/tmp`, `/var`, `/etc`

`/etc`, `/home`, `/tmp`

Explication

`/etc` contient les fichiers de configuration, `/home` les répertoires personnels et `/tmp` les fichiers temporaires. `/var` accueille plutôt des données variables, comme des journaux ou des bases de données.

7. Après être passé dans un autre répertoire, vous voulez revenir à celui que vous occupiez juste avant ; quelle commande convient ?

cd /
cd
cd ..
cd -

cd -

Explication

cd - rejoint le répertoire précédent. cd .. remonte vers le répertoire parent, ce qui ne garantit pas le retour au répertoire visité auparavant.

8. Que fait le shell lorsqu’il rencontre `$nom` après qu’une variable `nom` a reçu une valeur ?

Il transmet `nom` comme variable d’environnement à tous les processus
Il supprime `$nom` de la commande avant de l’exécuter
Il remplace `$nom` par la chaîne associée à cette variable
Il recherche un fichier dont le nom correspond à la valeur de la variable

Il remplace `$nom` par la chaîne associée à cette variable

Explication

Une variable shell associe un nom à une chaîne, et l’expansion remplace `$nom` par cette chaîne. La transmission aux processus enfants relève de l’exportation, et non de la simple expansion.

9. Un terminal se trouve dans un répertoire dont vous ignorez le chemin absolu ; quelle commande permet de l’afficher ?

mkdir
pwd
cd
ls

pwd

Explication

La commande pwd affiche le chemin absolu du répertoire courant. ls affiche le contenu d’un répertoire, sans répondre directement à la demande de connaître son chemin absolu.

10. Lors d’une compilation C, quel est l’effet propre de l’option `-Werror` ?

Elle transforme les avertissements émis en erreurs
Elle active des avertissements supplémentaires en plus de ceux de base
Elle sélectionne le nom du fichier exécutable produit
Elle active la plupart des avertissements courants

Elle transforme les avertissements émis en erreurs

Explication

`-Werror` fait traiter les avertissements comme des erreurs, ce qui peut rendre la compilation bloquante. `-Wall` et `-Wextra` activent des catégories d’avertissements au lieu de modifier leur statut.

11. Vous voulez savoir si un nom désigne une commande interne, une commande externe ou un autre type de commande ; quel outil utilisez-vous ?

type
help
man
pwd

type

Explication

type indique la catégorie ou l’emplacement correspondant à une commande. help fournit l’aide des commandes internes, mais ne remplit pas ce rôle général de catégorisation.

12. Quelle association permet de consulter l’identité et les groupes de l’utilisateur, puis les entrées décrivant les comptes ?

La commande `who`, puis le répertoire `/home`
La commande `groups`, puis le fichier `/etc/shadow`
La commande `id`, puis le fichier `/etc/passwd`
La commande `ls`, puis le fichier `/etc/group`

La commande `id`, puis le fichier `/etc/passwd`

Explication

La commande `id` affiche des informations sur l’identité de l’utilisateur et ses groupes, tandis que `/etc/passwd` contient des entrées décrivant les comptes utilisateurs. `/etc/group` décrit les groupes plutôt que les comptes utilisateurs.

13. Depuis le répertoire courant `/var/log`, comment le shell interprète-t-il le chemin relatif `../tmp` ?

À partir de `/var`, puis vers son sous-répertoire `tmp`
À partir de `/var/log`, en cherchant un sous-répertoire `../tmp`
À partir du répertoire personnel, puis vers `tmp`
À partir de la racine, puis vers le répertoire `var/tmp`

À partir de `/var`, puis vers son sous-répertoire `tmp`

Explication

Un chemin relatif est interprété depuis le répertoire courant : `..` remonte ici de `/var/log` vers `/var`, puis `tmp` désigne son sous-répertoire. La racine servirait de point de départ à un chemin commençant par `/`.

14. Comment Linux organise-t-il les disques et les partitions dans son système de fichiers ?

Il leur attribue des lettres de lecteur séparées de l’arborescence
Il les monte dans une arborescence unique qui part de `/`
Il les présente comme des répertoires temporaires sous `/tmp`
Il les regroupe sous une racine distincte pour chaque utilisateur

Il les monte dans une arborescence unique qui part de `/`

Explication

Le système de fichiers Linux forme une hiérarchie unique partant de `/`, et les volumes y sont montés. L’usage de lettres de lecteur est le modèle associé ici à Windows, pas à Linux.

15. Dans une commande shell, que produit l’expression `{a,b,c}` ?

Les chaînes `a`, `b` et `c`, générées sans tenir compte des fichiers présents
Les noms de fichiers dont le caractère correspondant appartient à la classe `abc`
Les chemins vers les fichiers `a`, `b` et `c`, s’ils existent dans le répertoire courant
Les valeurs des variables nommées `a`, `b` et `c`, réunies en une chaîne

Les chaînes `a`, `b` et `c`, générées sans tenir compte des fichiers présents

Explication

L’expansion d’accolades génère des chaînes à partir d’une énumération, indépendamment des fichiers existants. La recherche de noms correspondant à une classe de caractères est associée à une expression entre crochets, comme `[abc]`.

16. Avec `chmod`, quel effet produit l’opérateur symbolique `=` sur les droits d’une catégorie ?

Il fixe exactement les droits indiqués
Il retire les droits indiqués des droits existants
Il inverse les droits indiqués sans modifier les autres
Il ajoute les droits indiqués aux droits existants

Il fixe exactement les droits indiqués

Explication

En notation symbolique, `=` fixe exactement les droits spécifiés pour la catégorie visée. L’opérateur `+` ajoute des droits, tandis que `-` les retire.

17. Quel enchaînement décrit les grandes étapes qui transforment un programme C en exécutable ?

Compilation en assembleur, édition de liens, prétraitement, puis assemblage du fichier objet
Assemblage en fichier objet, prétraitement, édition de liens, puis compilation en assembleur
Édition de liens, assemblage en fichier objet, prétraitement, puis compilation en assembleur
Prétraitement, compilation en assembleur, assemblage en fichier objet, puis édition de liens

Prétraitement, compilation en assembleur, assemblage en fichier objet, puis édition de liens

Explication

La chaîne suit le prétraitement, la compilation en assembleur, l’assemblage en fichier objet et enfin l’édition de liens pour produire l’exécutable. Commencer par l’édition de liens inverse les étapes nécessaires à la préparation des fichiers.

18. Une commande écrit dans `journal.txt`, qui contient déjà des données. Quelle différence y a-t-il entre `>` et `>>` ?

`>` lit le contenu du fichier, tandis que `>>` écrit la sortie dans un nouveau fichier
`>` envoie la sortie d’erreur au fichier, tandis que `>>` envoie la sortie standard
`>` ajoute la sortie à la fin, tandis que `>>` remplace le contenu existant
`>` remplace le contenu existant, tandis que `>>` ajoute la sortie à la fin

`>` remplace le contenu existant, tandis que `>>` ajoute la sortie à la fin

Explication

L’opérateur `>` redirige la sortie standard en écrasant le contenu déjà présent, alors que `>>` ajoute la sortie à la fin. L’erreur la plus probable est d’inverser les effets de ces deux opérateurs.

19. Dans une commande shell saisie puis validée avec Entrée, quel rôle joue le premier mot ?

Il précise le répertoire courant, les mots suivants étant des commandes séparées.
Il indique le résultat attendu, les mots suivants étant des options obligatoires.
Il donne le nom de la commande, les mots suivants étant ses arguments.
Il marque la fin de la commande, les mots suivants étant ignorés par le shell.

Il donne le nom de la commande, les mots suivants étant ses arguments.

Explication

Le premier mot fournit le nom de la commande, tandis que les mots qui le suivent constituent ses arguments. Le répertoire courant n’est pas déterminé par la position du premier mot.

20. Si deux répertoires de `PATH` contiennent un programme portant le même nom, lequel le shell choisit-il lors de sa recherche ?

Le programme dont le nom de répertoire vient en premier par ordre alphabétique
Le programme du répertoire rencontré en premier dans l’ordre de `PATH`
Le programme dont le fichier a la date de modification la plus récente
Le programme du répertoire rencontré en dernier dans l’ordre de `PATH`

Le programme du répertoire rencontré en premier dans l’ordre de `PATH`

Explication

Le shell parcourt les répertoires dans l’ordre indiqué par `PATH` et retient le premier programme correspondant. Choisir le dernier répertoire inverse la règle de priorité.

21. Dans l’affichage `ls -l`, comment se répartissent les caractères de la chaîne de type et de permissions ?

Le premier indique le propriétaire, puis trois groupes indiquent les types
Les trois premiers indiquent le type, puis neuf indiquent les groupes
Les neuf premiers indiquent le type, puis trois indiquent les permissions
Le premier indique le type, puis trois groupes de trois indiquent les permissions

Le premier indique le type, puis trois groupes de trois indiquent les permissions

Explication

Le premier caractère signale le type, et les neuf caractères suivants sont répartis en trois permissions pour chacune des catégories propriétaire, groupe et autres. Les trois catégories ne sont donc pas codées par les trois premiers caractères.

22. Une variable est créée par une affectation simple, sans commande `export` : quelle différence cela fait-il pour un processus enfant ?

La variable reste dans le shell courant et n’est pas transmise comme variable d’environnement
La variable est transmise à l’enfant, mais disparaît du shell courant
La variable est transformée en argument de la prochaine commande exécutée
La variable est transmise à l’enfant uniquement si sa valeur contient des lettres

La variable reste dans le shell courant et n’est pas transmise comme variable d’environnement

Explication

Une affectation simple crée une variable dans le shell courant; `export` sert à la transmettre aux processus enfants comme variable d’environnement. Une affectation seule ne la rend donc pas automatiquement visible à l’enfant.

23. Dans `commande_A | commande_B`, quel flux le tube transmet-il d’une commande à l’autre ?

L’entrée standard de `commande_A` vers la sortie standard de `commande_B`
La sortie standard de `commande_A` vers l’entrée standard de `commande_B`
La sortie d’erreur de `commande_A` vers l’entrée standard de `commande_B`
La sortie standard de `commande_B` vers l’entrée standard de `commande_A`

La sortie standard de `commande_A` vers l’entrée standard de `commande_B`

Explication

Un tube relie la sortie standard de la première commande à l’entrée standard de la suivante. La sortie d’erreur n’est pas le flux relié par le tube décrit ici.

24. Une commande produit un message d’erreur que l’on veut envoyer dans `erreurs.txt` sans rediriger sa sortie standard ; quel opérateur convient ?

`2> erreurs.txt`, car le canal 2 correspond à la sortie d’erreur
`1> erreurs.txt`, car le canal 1 correspond à la sortie d’erreur
`> erreurs.txt`, car l’opérateur redirige la sortie d’erreur par défaut
`0< erreurs.txt`, car le canal 0 reçoit les messages d’erreur

`2> erreurs.txt`, car le canal 2 correspond à la sortie d’erreur

Explication

`2>` redirige la sortie d’erreur vers un fichier, tandis que `1>` et `>` redirigent la sortie standard. Confondre `1>` et `2>` enverrait donc le flux de sortie standard plutôt que les messages d’erreur.

25. Pour consulter l’aide d’une commande interne intégrée au shell, quelle commande convient ?

ls
man
help
type

help

Explication

help fournit l’aide des commandes internes du shell. man sert à consulter l’aide des commandes externes, ce qui en fait un choix inadapté ici.

26. Quel comportement caractérise un filtre de texte ?

Il lit un fichier de configuration, transforme les commandes et les envoie au shell
Il observe les processus en cours, trie leurs identifiants et les écrit sur la sortie d’erreur
Il lit ou peut lire l’entrée standard, transforme les données et écrit le résultat sur la sortie standard
Il lit la sortie d’erreur, transforme les données et écrit le résultat dans un fichier

Il lit ou peut lire l’entrée standard, transforme les données et écrit le résultat sur la sortie standard

Explication

Un filtre de texte traite des données en les lisant depuis l’entrée standard et en envoyant le résultat vers la sortie standard. La sortie d’erreur est un flux différent et ne décrit pas le comportement général d’un filtre.

27. Que contient la variable d’environnement `PATH` utilisée par le shell pour trouver une commande saisie sans chemin ?

Une liste de fichiers exécutables séparés par des points-virgules, classés par nom
Un répertoire unique contenant les programmes que le shell peut lancer
Une liste de commandes séparées par des espaces, que le shell exécute dans l’ordre
Une liste de répertoires séparés par des deux-points, dans lesquels le shell recherche la commande

Une liste de répertoires séparés par des deux-points, dans lesquels le shell recherche la commande

Explication

`PATH` contient des répertoires séparés par `:`, parcourus par le shell pour rechercher une commande sans chemin explicite. Un chemin unique ne décrit pas le contenu de cette variable.

28. Un raccourci nommé est défini pour représenter une commande plus longue dans le shell ; de quel type d’objet s’agit-il ?

Une commande interne
Un alias
Une fonction shell
Une commande externe

Un alias

Explication

Un alias est un raccourci de commande. Une fonction shell est définie par l’utilisateur, mais désigne une fonction plutôt qu’un simple alias.

29. Quel chemin désigne un emplacement indépendamment du répertoire courant ?

Un chemin interprété depuis le répertoire courant
Un chemin qui commence par `.`
Un chemin contenant un nom de répertoire personnel
Un chemin qui commence par `/`

Un chemin qui commence par `/`

Explication

Un chemin absolu commence par `/`, ce qui le rattache à la racine plutôt qu’au répertoire courant. Un chemin relatif, au contraire, est interprété depuis le répertoire courant.

30. Une tâche au premier plan doit être suspendue sans demander son interruption ; quelle action correspond à ce résultat ?

Appuyer sur Ctrl-C, ce qui envoie SIGINT
Appuyer sur Ctrl-Z, ce qui envoie SIGTSTP
Exécuter `fg`, ce qui envoie SIGTSTP
Exécuter `bg`, ce qui envoie SIGINT

Appuyer sur Ctrl-Z, ce qui envoie SIGTSTP

Explication

Ctrl-Z suspend la tâche courante en lui envoyant SIGTSTP, sans demander sa terminaison. Ctrl-C envoie SIGINT et demande l’interruption de la tâche, ce qui correspond à une autre action.

31. Depuis le répertoire courant, vous souhaitez en afficher le contenu sans préciser de chemin ; quelle commande choisissez-vous ?

rmdir
ls
pwd
cd

ls

Explication

Sans argument de chemin, ls affiche le contenu du répertoire courant. pwd en affiche le chemin, plutôt que la liste de ses éléments.

32. Quelle différence d’expansion observe-t-on entre `' $nom '` et `"$nom"` dans le shell, en faisant abstraction des espaces ajoutés ici pour la lisibilité ?

Les deux formes développent `$nom`, mais seules les apostrophes simples suppriment les espaces
Les apostrophes simples développent `$nom`, tandis que les guillemets doubles préservent les caractères littéraux
Les apostrophes simples inhibent l’expansion de `$nom`, tandis que les guillemets doubles la permettent
Les deux formes préservent `$nom`, mais les guillemets doubles exécutent la commande associée

Les apostrophes simples inhibent l’expansion de `$nom`, tandis que les guillemets doubles la permettent

Explication

Les apostrophes simples empêchent l’interprétation des caractères spéciaux, tandis que les guillemets doubles permettent notamment l’expansion des variables. L’idée que les deux formes développent la variable confond leurs effets.

33. Avant d’exécuter une commande contenant `rapport*`, que fait le shell si ce motif correspond à des noms existants ?

Il transmet le motif inchangé à la commande pour qu’elle le développe
Il transforme le motif en chemin absolu à partir de la racine
Il crée un fichier nommé `rapport*` dans le répertoire courant
Il remplace le motif par les noms correspondants

Il remplace le motif par les noms correspondants

Explication

L’expansion de chemin est effectuée par le shell avant l’exécution de la commande, qui reçoit les noms correspondant au motif. La commande ne reçoit donc pas nécessairement le motif littéral `rapport*`.

34. Une application doit recevoir une demande d’arrêt qui lui laisse la possibilité de se terminer proprement ; que fait `kill` sans option de signal ?

Il envoie SIGCONT, qui reprend le processus
Il envoie SIGTERM, qui demande un arrêt gracieux
Il envoie SIGKILL, qui force l’arrêt du processus
Il envoie SIGTSTP, qui suspend le processus

Il envoie SIGTERM, qui demande un arrêt gracieux

Explication

Par défaut, `kill` envoie SIGTERM, qui demande au processus de s’arrêter de manière gracieuse. SIGKILL est le distracteur le plus plausible, mais il force l’arrêt et ne permet pas une terminaison propre.

35. Qu’est-ce qu’un processus dans un système Unix ?

Un programme en cours d’exécution identifié par un PID
Un groupe de tâches en arrière-plan identifié par le nom du shell
Une commande saisie dans un shell et identifiée par son répertoire
Un programme enregistré sur disque et identifié par son nom de fichier

Un programme en cours d’exécution identifié par un PID

Explication

Un processus est un programme en cours d’exécution, auquel est associé un identifiant appelé PID. Un fichier de programme enregistré sur disque n’est pas, à lui seul, un processus en cours.

36. Un répertoire contient encore des fichiers et des sous-répertoires ; quelle commande permet de le supprimer avec son contenu ?

mkdir -p
cp -R
rm -r
rmdir

rm -r

Explication

rm -r supprime récursivement un répertoire et son contenu. rmdir ne supprime qu’un répertoire vide, et ne convient donc pas à ce cas.

37. Quels sont les trois canaux standard ouverts au démarrage d’un processus Unix, avec leurs numéros respectifs ?

L’entrée standard 2, la sortie standard 0 et la sortie d’erreur 1
L’entrée standard 1, la sortie standard 2 et la sortie d’erreur 0
L’entrée standard 0, la sortie standard 2 et la sortie d’erreur 1
L’entrée standard 0, la sortie standard 1 et la sortie d’erreur 2

L’entrée standard 0, la sortie standard 1 et la sortie d’erreur 2

Explication

Un processus Unix démarre avec `stdin` numéro 0, `stdout` numéro 1 et `stderr` numéro 2. La confusion la plus plausible consiste à intervertir les numéros de la sortie standard et de la sortie d’erreur.

38. À quelles catégories de personnes les permissions Linux distinguent-elles l’accès ?

L’administrateur, les utilisateurs connectés et les comptes invités
Le propriétaire, les sous-répertoires et les autres fichiers
Le compte système, le groupe secondaire et les périphériques
Le propriétaire, le groupe propriétaire et les autres utilisateurs

Le propriétaire, le groupe propriétaire et les autres utilisateurs

Explication

Les catégories de permissions sont le propriétaire (`u`), le groupe propriétaire (`g`) et les autres utilisateurs (`o`). Les comptes invités ou les périphériques ne remplacent pas ces trois catégories.

Révisez avec les flashcards

Mémorisez les réponses avec 93 flashcards sur Commandes Linux et environnement shell.

Qu’est-ce qu’une commande shell ?

Une suite de mots terminée par Entrée.

Quel rôle joue le premier mot d’une commande shell ?

Il en est le nom.

Quel rôle jouent les mots suivants dans une commande shell ?

Ce sont ses arguments.

Voir les flashcards →

Approfondir avec la fiche

Consultez la fiche de révision complète sur Commandes Linux et environnement shell.

Voir la fiche →

Cours similaires

Crée tes propres QCM

Importe ton cours et l'IA génère des QCM avec corrections en 30 secondes.

Générateur de QCM