Blog ENI : Toute la veille numérique !
En raison d'une opération de maintenance, le site Editions ENI sera inaccessible le mardi 10 décembre, en début de journée. Nous vous invitons à anticiper vos achats. Nous nous excusons pour la gêne occasionnée
En raison d'une opération de maintenance, le site Editions ENI sera inaccessible le mardi 10 décembre, en début de journée. Nous vous invitons à anticiper vos achats. Nous nous excusons pour la gêne occasionnée
  1. Livres et vidéos
  2. Linux
  3. Énoncé 7 : Shell Bash
Extrait - Linux Entraînez-vous sur les commandes de base : Exercices et corrigés (5e édition)
Extraits du livre
Linux Entraînez-vous sur les commandes de base : Exercices et corrigés (5e édition)
1 avis
Revenir à la page d'achat du livre

Énoncé 7 : Shell Bash

Introduction

Durée

2 heures 15

Mots-clés

Shell, Bash, métacaractères, caractères génériques, caractères de citation, variable, redirection, tube, alias, exécution de commandes, substitution de commandes.

Objectif

À l’issue de ce chapitre, vous comprendrez mieux le fonctionnement de la ligne de commandes et augmenterez votre productivité en employant le shell Bash comme interpréteur de commandes.

Ces exercices correspondent au chapitre 9 "Shell Bash" du livre "Linux - Principes de base de l’utilisation du système 8e édition" dans la collection Ressources Informatiques aux Éditions ENI.

Matériel à prévoir

Ces exercices peuvent être réalisés sur n’importe quelle distribution Linux où le lecteur possède un compte utilisateur valide ; le compte utilisateur tux est utilisé en correction des énoncés.

Prérequis

Pour valider les prérequis nécessaires, avant d’aborder le TP, répondez aux questions ci-après :

1.

Pourquoi le terme "interpréteur de commandes" est-il associé au shell Bash sous Linux ?

2.

Citez les métacaratères du shell.

3.

Citez les caractères génériques.

4.

Citez les caractères utilisés dans les substitutions de variables et de commandes.

5.

Citez les caractères de citation.

6.

Quels sont les descripteurs de fichiers associés par défaut à tout processus s’exécutant sur un système Linux ?

Énoncé 7.1 Variables

Durée estimative : 30 minutes

1.

Connectez-vous sur la troisième console virtuelle texte (tty3) en tant qu’utilisateur tux.

2.

Listez toutes les variables définies dans votre environnement shell.

3.

Affectez la chaîne de caractères "abc" à la variable var1, puis affichez de nouveau la liste des variables définies dans l’environnement shell.

4.

Affichez le contenu de la variable var1.

5.

Affichez le contenu de la variable var2. Cela génère-t-il une erreur ?

6.

Affichez le contenu de la variable HOME. Que représente cette variable ?

7.

Modifiez la valeur de la variable HOME par "/tmp", puis exécutez la commande cd et affichez votre répertoire de travail.

8.

Modifiez la valeur de la variable LANG par "C", puis consultez la page du manuel électronique concernant la commande bash. Dans quelle langue est affichée la page du manuel ?

9.

Recherchez dans la page du manuel précédemment ouverte la section "PROMPTING" et modifiez votre prompt de façon à afficher la date et le nom de la machine.

10.

Déconnectez-vous et reconnectez-vous sur la troisième console virtuelle texte (tty3) en tant qu’utilisateur tux, puis vérifiez les valeurs des variables précédemment modifiées.

11.

Affectez la chaîne de caractères...

Énoncé 7.2 Caractères génériques, caractères d’expansion

Durée estimative : 20 minutes

1.

Allez dans le répertoire /etc.

2.

Listez tous les fichiers dont le nom commence par la lettre "r". Le résultat de la commande est-il bien celui attendu ?

3.

Listez de nouveau tous les fichiers dont le nom commence par la lettre "r" sans afficher le contenu des répertoires correspondants.

4.

Affichez tous les fichiers dont le nom contient la chaîne de caractères "rc".

5.

Affichez tous les fichiers dont le nom comporte trois caractères.

6.

Affichez tous les fichiers dont le nom commence par la chaîne de caractères "rc" suivie d’un caractère quelconque et se terminant par la chaîne de caractères ".d".

7.

Affichez les fichiers dont les noms sont rc2.d, rc3.d et rc4.d.

8.

Affichez tous les fichiers dont le nom ne commence pas par les lettres "a", "b" et "c".

9.

Affichez tous les fichiers dont le nom commence par une lettre majuscule.

10.

Listez tous les fichiers dont le nom se termine par la chaîne de caractères "conf" ou "config".

11.

Listez tous les fichiers dont le nom :

  • commence par une minuscule,

  • suivie d’un nombre quelconque de caractères,

  • suivis de la lettre "a" puis obligatoirement d’un autre caractère...

Énoncé 7.3 Caractères de citation

Durée estimative : 5 minutes

1.

Exécutez les commandes suivantes et expliquez leurs résultats :

  • echo a b

  • echo a   b

  • echo "a   b"

  • echo ’a   b’

  • echo a\ \ \ b

Combien y a-t-il d’arguments pour chacune de ces commandes ?

2.

Allez dans le répertoire / et tapez la commande echo *. Quel est son résultat ? Pourquoi ?

3.

Comment afficher littéralement la chaîne de caractères "le caractère * est un caractère générique" ?

4.

Comment afficher littéralement la chaîne de caractères "la variable référencée par $var3" ?

Indices

1.

Saisissez le nombre exact d’espaces indiqués dans l’énoncé.

3.

Utilisez les caractères de citation.

4.

Utilisez les caractères de citation ou \.

Énoncé 7.4 Redirections et tubes

Durée estimative : 40 minutes

1.

Exécutez la commande cat sans arguments, puis tapez quelques mots et terminez-la normalement. Que constatez-vous ?

2.

Exécutez la commande wc sans arguments, puis tapez quelques mots et terminez-la normalement. Que constatez-vous ?

3.

Utilisez la commande cat pour afficher le contenu du fichier /etc/hosts de deux manières : en passant le nom du fichier en argument, puis en utilisant une redirection.

4.

Utilisez la commande wc pour compter le nombre de lignes du fichier /etc/passwd de deux manières : en passant le nom du fichier en argument, puis en utilisant une redirection. Que constatez-vous ?

5.

Utilisez la commande cat pour écrire quelques mots dans le fichier /tmp/ficcat.

6.

Utilisez la commande cat sans argument pour copier le fichier /tmp/ficcat en /tmp/ficcat2.

7.

Utilisez la commande cat pour ajouter quelques mots au fichier /tmp/ficcat existant.

8.

Utilisez la commande cat pour concaténer le contenu des fichiers /tmp/ficcat et /etc/hosts dans le fichier /tmp/ficcat3.

9.

Allez dans le répertoire /etc et redirigez la sortie de la commande ls dans le fichier /tmp/ls.out. Que contient ce fichier ?

10.

Utilisez la commande wc sans argument pour compter le nombre de lignes contenues dans le fichier /tmp/ls.out.

11.

Combien y a-t-il de fichiers dans le répertoire /etc ? Supprimez...

Énoncé 7.5 Alias

Durée estimative : 15 minutes

1.

Dressez la liste des alias définis dans votre environnement shell.

2.

Si l’alias ls=’ls --color=tty’ n’est pas défini, créez-le.

3.

Utilisez la commande ls pour afficher le contenu du répertoire /etc. Que signifient les couleurs affichées ?

4.

Forcez l’exécution de la commande ls sans utiliser l’alias précédemment défini.

5.

Définissez l’alias cd.. permettant d’aller dans le répertoire parent (comme sous DOS).

6.

Supprimez l’alias cd.. créé précédemment.

Indices

1.

Utilisez la commande alias.

2.

Utilisez la commande alias.

4.

Préfixez la commande du caractère \ ou employez la commande command.

6.

Utilisez la commande unalias.

Énoncé 7.6 Exécution et substitution de commandes

Durée estimative : 15 minutes

1.

Déterminez la nature (alias, commande interne du shell, commande externe du shell) des commandes cd, vi et find.

2.

Déterminez rapidement l’emplacement des commandes grep, ls et fdisk sur le système de fichiers.

3.

Comptez le nombre de processus s’exécutant actuellement sur votre système.

4.

Affichez la chaîne de caractères "il y a actuellement N processus" où N est le résultat de la commande précédente.

5.

Définissez l’alias nbps qui retourne la chaîne de caractères précédente.

Indices

1.

Utilisez la commande type.

2.

Utilisez la commande whereis.

3.

Utilisez l’option --no-heading de la commande ps qui permettra d’enlever la ligne d’en-tête en résultat de la commande, puis comptez le nombre de lignes retournées.

4.

Utilisez la substitution de commandes avec la syntaxe $() ou la syntaxe ``.

Énoncé 7.7 Options du shell Bash

Durée estimative : 10 minutes

1.

Listez les options de votre shell.

2.

Affectez la chaîne de caractères "DEBOGAGE>>> " à la variable PS4.

3.

Activez l’option du shell xtrace.

4.

Tapez la commande cd /etc ; ls -d X*. Que constatez-vous ?

5.

Désactivez l’option xtrace.

Indice

1.

Utilisez la commande set avec l’option adéquate.