QCM : Éléments du shell Bourne — 19 questions

Questions et réponses du QCM

1. Quelle association décrit correctement les trois unités standard d’un processus ?

stdin affiche les résultats normaux, stdout reçoit le clavier et stderr lit les fichiers
stdin affiche les erreurs, stdout reçoit les fichiers et stderr affiche les résultats normaux
stdin lit les fichiers, stdout affiche les erreurs et stderr reçoit l’entrée du clavier
stdin reçoit l’entrée du clavier, stdout affiche les résultats normaux et stderr affiche les erreurs

stdin reçoit l’entrée du clavier, stdout affiche les résultats normaux et stderr affiche les erreurs

Explication

stdin correspond à l’entrée standard, généralement le clavier, tandis que stdout et stderr servent respectivement aux résultats normaux et aux messages d’erreur. Confondre stdout et stderr inverse précisément ces deux types de sortie.

2. Que produit la substitution de commande `$(commande)` lorsqu’elle est utilisée dans une autre commande ?

Une chaîne issue de la sortie standard, où les retours à la ligne deviennent des espaces
Un fichier temporaire contenant les messages d’erreur de la commande exécutée
Une sortie standard conservant chaque retour à la ligne pour former plusieurs arguments
Un flux reliant la sortie standard de la commande à l’entrée standard d’une autre commande

Une chaîne issue de la sortie standard, où les retours à la ligne deviennent des espaces

Explication

La substitution récupère la sortie standard et remplace ses sauts de ligne par des espaces afin de l’utiliser comme paramètre ou comme commande. Le raccordement direct entre sortie et entrée correspond au pipe, tandis que la conservation des retours à la ligne ne décrit pas cette transformation.

3. Dans un modèle de fichiers, que représente le caractère ? lorsqu’il est placé au début du modèle ?

Un caractère choisi dans une liste écrite entre crochets
Un caractère qui doit appartenir à l’alphabet latin
Une chaîne quelconque pouvant contenir plusieurs caractères
Un caractère quelconque, sauf un slash ou un point

Un caractère quelconque, sauf un slash ou un point

Explication

Le caractère ? désigne un seul caractère quelconque, sauf un slash ou un point lorsqu’il se trouve au début du modèle. Une chaîne de longueur variable correspond au caractère *.

4. À quoi servent principalement les métacaractères du shell ?

Afficher les fichiers cachés et changer leurs permissions
Définir les utilisateurs autorisés à lancer chaque programme
Mémoriser les commandes précédentes et gérer leur historique
Construire des listes de noms et modifier l’interprétation des commandes

Construire des listes de noms et modifier l’interprétation des commandes

Explication

Les métacaractères servent à construire des listes de noms de fichiers et à modifier l’interprétation des commandes. La gestion des permissions, des utilisateurs ou de l’historique relève d’autres mécanismes du shell.

5. Que se passe-t-il lorsqu’une commande contient des métacaractères non protégés ?

Le shell les conserve dans la commande afin que celle-ci les affiche tels quels
La commande les interprète après avoir reçu la ligne saisie par l’utilisateur
Le shell les interprète, puis transmet le résultat obtenu à la commande
Le système d’exploitation les transforme avant que le shell ne traite la commande

Le shell les interprète, puis transmet le résultat obtenu à la commande

Explication

Le shell interprète les métacaractères avant l’exécution et transmet à la commande le résultat de cette interprétation. La commande ne reçoit donc pas nécessairement les métacaractères eux-mêmes, mais les éléments produits par le shell.

6. Que réalise la redirection commande < désignation_fichier ?

Elle transforme stdout en messages transmis par stderr
Elle ajoute stdout à la fin d’un fichier déjà existant
Elle connecte stdout de la commande à un fichier ouvert en écriture
Elle connecte stdin de la commande à un fichier ouvert en lecture

Elle connecte stdin de la commande à un fichier ouvert en lecture

Explication

L’opérateur < fait lire à la commande son entrée standard depuis le fichier indiqué. L’opérateur > concerne stdout, tandis que >> ajoute une sortie et >&2 la dirige vers stderr.

7. Dans une commande de la forme `commande1 | commande2`, que devient la sortie standard de `commande1` ?

Elle est envoyée vers la sortie d’erreur de `commande2`
Elle devient l’entrée standard de `commande2`
Elle est ajoutée à un fichier indiqué par `commande2`
Elle remplace les arguments écrits après `commande2`

Elle devient l’entrée standard de `commande2`

Explication

Le tube relie la sortie standard de la première commande à l’entrée standard de la seconde, ce qui permet d’enchaîner leur traitement. La substitution de commande constitue une autre opération : elle transforme une sortie en chaîne utilisable comme argument ou commande.

8. Dans un modèle de fichiers, quelle correspondance le caractère * peut-il représenter ?

Une suite de chiffres, dont la longueur doit être supérieure à zéro
Un caractère quelconque, avec une longueur maximale d’un symbole
Une chaîne quelconque, éventuellement vide, sans slash
Un nom commençant par un point, quelle que soit sa position

Une chaîne quelconque, éventuellement vide, sans slash

Explication

Le caractère * représente une chaîne quelconque, éventuellement vide, qui ne contient pas de slash et qui ne commence pas par un point lorsqu’il est placé au début du modèle. La correspondance avec un seul caractère décrit plutôt le rôle de ?.

9. Quel est le rôle des caractères génériques dans un modèle de fichiers ?

Remplacer chaque fichier correspondant par une copie temporaire
Construire une liste de noms correspondant au modèle indiqué
Séparer les noms de fichiers en plusieurs commandes distinctes
Empêcher le shell d’interpréter les caractères de la commande

Construire une liste de noms correspondant au modèle indiqué

Explication

Les caractères génériques construisent une liste de noms de fichiers correspondant à un modèle. Les guillemets ont au contraire pour effet général d’empêcher l’interprétation de ces caractères.

10. Que produit l’écriture d’un caractère $ devant le nom d’une variable du shell ?

Elle protège le caractère placé immédiatement après lui
Elle fournit la valeur de la variable qui le suit, sans espace
Elle transforme la variable en commande exécutée en arrière-plan
Elle empêche l’interprétation des métacaractères présents dans la variable

Elle fournit la valeur de la variable qui le suit, sans espace

Explication

Le caractère $ retourne la valeur de la variable qui le suit sans espace et possède aussi un rôle particulier pour les paramètres du shell. La protection du caractère suivant est assurée par l’antislash, non par $.

11. Quelle propriété caractérise une commande utilisée comme filtre ?

Elle peut lire des données par stdin et produire des résultats par stdout ou stderr
Elle affiche les paramètres fournis sans pouvoir traiter des données reçues en entrée
Elle transforme les fichiers en programmes exécutables avant de produire une sortie
Elle reçoit ses données par le clavier et les écrit directement dans un fichier nommé

Elle peut lire des données par stdin et produire des résultats par stdout ou stderr

Explication

Un filtre reçoit des données par stdin et fournit ses résultats ou messages par stdout et stderr. Une commande qui se limite à afficher ses paramètres ne décrit pas le fonctionnement général d’un filtre.

12. Que fait la redirection `commande 2> erreurs.txt` ?

Elle envoie la sortie d’erreur vers `erreurs.txt`, créé si nécessaire
Elle envoie la sortie standard vers `erreurs.txt`, créé si nécessaire
Elle ajoute la sortie d’erreur à la fin de `erreurs.txt`
Elle affiche la sortie d’erreur dans le terminal sans créer de fichier

Elle envoie la sortie d’erreur vers `erreurs.txt`, créé si nécessaire

Explication

Le descripteur `2` désigne la sortie d’erreur, et `2>` la connecte au fichier indiqué, qui peut être créé s’il n’existe pas. La redirection `>` sans `2` concerne la sortie standard, tandis que l’ajout en fin de fichier utilise `2>>`.

13. Quelle différence distingue les apostrophes des guillemets dans le shell ?

Les apostrophes séparent les commandes, tandis que les guillemets lancent les commandes en arrière-plan
Les apostrophes protègent le caractère suivant, tandis que les guillemets construisent une liste de fichiers
Les apostrophes neutralisent tous les métacaractères, tandis que les guillemets laissent actifs `, $ et \\
Les apostrophes activent les variables, tandis que les guillemets neutralisent les espaces et les métacaractères

Les apostrophes neutralisent tous les métacaractères, tandis que les guillemets laissent actifs `, $ et \\

Explication

Les apostrophes conservent les espaces et neutralisent tous les métacaractères, tandis que les guillemets conservent les espaces mais laissent actifs l’accent grave, $ et \\. Les autres propositions attribuent à ces délimiteurs des fonctions de séparation, de substitution ou de lancement qui ne correspondent pas à cette distinction.

14. Quelle redirection conserve le contenu actuel d’un fichier et ajoute la nouvelle sortie à sa fin ?

commande >> désignation_fichier
commande < désignation_fichier
commande > désignation_fichier
commande >&2 désignation_fichier

commande >> désignation_fichier

Explication

L’opérateur >> connecte stdout au fichier en ajoutant la sortie à la fin, avec création du fichier si nécessaire. L’opérateur > écrase au contraire le contenu déjà présent.

15. Que compte la commande `cat fich.txt | grep 'e' | grep '2' | wc -l` ?

Les lignes contenant le motif `e2` sous forme consécutive
Le nombre total de caractères `e` et `2` du fichier
Les noms de fichiers contenant un `e` ou un `2`
Les lignes contenant au moins un `e` et au moins un `2`

Les lignes contenant au moins un `e` et au moins un `2`

Explication

Les deux filtres successifs conservent les lignes qui satisfont les deux recherches, puis `wc -l` les dénombre. La commande ne filtre pas les noms produits par `ls` et ne compte ni les caractères ni la présence du motif consécutif.

16. Comment fournir une entrée interactive à une commande jusqu’à la fin du fichier ?

Écrire les données dans stdout puis terminer la commande avec Ctrl-C
Placer les données après un symbole > puis valider avec Entrée
Saisir les données au clavier puis signaler la fin avec Ctrl-D
Rediriger stdout vers un fichier puis fermer le terminal actif

Saisir les données au clavier puis signaler la fin avec Ctrl-D

Explication

Une commande peut lire une saisie au clavier jusqu’à ce que Ctrl-D signale la fin de fichier. Ctrl-C interrompt généralement une commande et ne sert pas à marquer la fin normale de l’entrée.

17. Quelle commande affiche le nombre de lignes de données qu’elle reçoit ?

echo
cat
grep
wc -l

wc -l

Explication

L’option -l de wc sert à compter les lignes et à en afficher le nombre. grep recherche une chaîne, cat recopie un contenu et echo affiche ses paramètres.

18. Que se passe-t-il avec la commande commande > désignation_fichier lorsque le fichier existe déjà ?

Son contenu est lu comme entrée standard de la commande
Sa nouvelle sortie est ajoutée après son contenu actuel
Sa sortie est affichée comme un message transmis par stderr
Son contenu est écrasé par la sortie de la commande

Son contenu est écrasé par la sortie de la commande

Explication

La redirection > relie stdout au fichier et remplace son contenu s’il existe, après création éventuelle du fichier. L’ajout en fin de fichier correspond à >>, et non à >.

19. Quelle différence décrit correctement les commandes `ls -l fichier.txt > informations.txt 2>&1` et `ls -l fichier.txt 2>&1 > informations.txt` ?

Dans la première, les erreurs vont au fichier et la sortie standard reste au terminal ; dans la seconde, les deux flux vont au fichier
Dans la première, les deux flux vont au fichier ; dans la seconde, les erreurs gardent la destination précédente de la sortie standard
Dans les deux commandes, les deux flux vont au fichier, car les redirections sont évaluées ensemble
Dans la première, les deux flux vont au terminal ; dans la seconde, seul le flux d’erreur va au fichier

Dans la première, les deux flux vont au fichier ; dans la seconde, les erreurs gardent la destination précédente de la sortie standard

Explication

Les redirections sont traitées dans l’ordre : dans la première commande, l’erreur est dupliquée vers la destination du fichier après la redirection de la sortie standard. Dans la seconde, `2>&1` reprend d’abord l’ancienne destination de la sortie standard, puis `>` ne modifie que cette dernière.

Révisez avec les flashcards

Mémorisez les réponses avec 39 flashcards sur Éléments du shell Bourne.

À quoi servent les métacaractères du shell ?

À construire des listes de noms de fichiers et modifier l’interprétation des commandes.

Quand le shell interprète-t-il les métacaractères ?

Avant d’exécuter la commande.

Que transmet le shell à la commande après interprétation des métacaractères ?

Les résultats de cette interprétation.

Voir les flashcards →

Approfondir avec la fiche

Consultez la fiche de révision complète sur Éléments du shell Bourne.

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