Atelier Systèmes d’Exploitation

Ce matériel couvre les bases de l’utilisation des systèmes d’exploitation via le shell Unix/Linux, destiné aux étudiants de première année de Licence en Informatique. Il propose des exercices pratiques pour maîtriser les commandes shell, la programmation shell de base et les expressions régulières.

D'après le document Atelier Systèmes d’Exploitation

Cet article a été rédigé automatiquement à partir du document source, puis vérifié avant publication.

Atelier Systèmes d’Exploitation

Document source

Atelier Systèmes d’Exploitation

Programming, Shell Scripting, Regular Expressions · PDF · 32 pages · 2017

Afficher l'aperçu du document

Consulter le document original →

Ce matériel couvre les bases de l’utilisation des systèmes d’exploitation via le shell Unix/Linux, destiné aux étudiants de première année de Licence en Informatique. Il propose des exercices pratiques pour maîtriser les commandes shell, la programmation shell de base et les expressions régulières.

Les commandes Shell

Cette section présente des exercices pratiques pour manipuler les fichiers et répertoires, ainsi que pour utiliser les commandes classiques du shell.

Exercice 1 : Gestion de fichiers et répertoires

  • Créer l’arborescence suivante dans votre répertoire personnel :
Exo-Revisions/
├── chapt2/
├── chapt3/
├── chapt4/
├── chapt2-script1.sh
├── chapt3-script1.sh
└── chapt4-script1.sh
  • Afficher les droits du fichier chapt2-script1.sh avec ls -l chapt2-script1.sh.
  • Renommer le fichier chapt4-script1.sh en chapt4-script1 avec mv chapt4-script1.sh chapt4-script1.
  • Supprimer le fichier chapt3-script1.sh avec rm chapt3-script1.sh.
  • Copier le fichier chapt2-script1.sh dans le répertoire chapt3 avec cp chapt2-script1.sh chapt3/.

Exercice 2 : Script affichant la date

Écrire un script shell script1.sh qui affiche la date du jour au format :

Bonjour, Aujourd’hui nous sommes
le dimanche 10 décembre 2017,
12:19:02 (UTC+0100)

Ce script utilise la commande date pour afficher la date et l'heure actuelles.

Exercice 3 : Création conditionnelle de répertoire

  • Créer un dossier Dir3 dans le répertoire courant avec mkdir Dir3.
  • Proposer une commande qui tente de créer un deuxième dossier Dir3 et affiche OK si la création réussit, sinon NOK.

Exemple de commande :

mkdir Dir3 2>/dev/null && echo OK || echo NOK

Exercice 4 : Manipulation de fichiers texte

  • Écrire la liste des fichiers et dossiers du répertoire courant dans un fichier nommé liste :
  • ls > liste
  • Ajouter à la fin du fichier liste la ligne suivante :
  • echo "Fin de Fichier !" >> liste
  • Copier le contenu du fichier liste dans un deuxième fichier en utilisant cat et la redirection :
  • cat liste > copie_liste

Exercice 5 : Recherche et comptage dans des fichiers système

  • Chercher la chaîne de caractères root dans le fichier /etc/passwd :
  • grep root /etc/passwd
  • Compter :
    • Le nombre de lignes dans /etc/passwd : wc -l /etc/passwd
    • Le nombre de mots dans /usr/share/dict/french : wc -w /usr/share/dict/french
    • Le nombre de caractères dans /proc/cpuinfo : wc -m /proc/cpuinfo
  • Afficher :
    • Les trois premières lignes de /etc/passwd : head -n 3 /etc/passwd
    • Les trois dernières lignes de /etc/passwd : tail -n 3 /etc/passwd
    • La cinquième ligne de /etc/passwd : sed -n 5p /etc/passwd

La programmation de base Shell

Cette partie aborde la création de scripts shell simples pour automatiser des tâches courantes et manipuler les arguments passés au script.

Exercice 1 : Informations sur le script et ses arguments

Écrire un script shell qui affiche :

  • Son nom ($0).
  • Le nombre de ses arguments ($#).
  • La liste de ses arguments ($@).
  • Son premier argument ($1).
  • Son dernier argument (en utilisant shift pour parcourir les arguments).

Exercice 2 : Comparaison de deux nombres

Écrire un script qui compare deux nombres n et m. Si le nombre de paramètres est différent de deux, afficher un message d’erreur.

Exercice 3 : Affichage d’une suite d’entiers

Écrire un script qui affiche les entiers de 1 à un entier n donné en paramètre.

Exercice 4 : Jeu de devinette

Écrire un script qui fait deviner à l’utilisateur un nombre compris entre 1 et 1000. L’utilisateur a droit à 10 essais.

Le nombre mystère est généré par :

nb_myst=$(($RANDOM % 1000 + 1))

Exercice 5 : Évaluation d’une moyenne sans if

Écrire un script dont l’unique paramètre est une moyenne. Le script affiche :

  • Mauvais si la moyenne est entre 0 et 4,
  • Passable entre 5 et 9,
  • Bien entre 10 et 14,
  • Très bien entre 15 et 19,
  • Parfait si la moyenne vaut 20,
  • Error?! autrement.

Vous ne pouvez pas utiliser if, mais case avec des expressions régulières.

Exercice 6 : Conversion en minuscules

Écrire un script qui passe tous ses arguments en minuscules. Il n’affiche rien s’il n’y a pas d’argument.

Exercice 7 : Conversion en majuscules

Écrire un script qui passe tous ses arguments en majuscules. Il n’affiche rien s’il n’y a pas d’argument.

Exercice 8 : Affichage du maximum

Écrire un script qui affiche le maximum de tous ses paramètres.

Exercice 9 : Comparaison de contenus de répertoires

Écrire un script qui affiche le répertoire qui possède le plus d’éléments entre deux répertoires dir1 et dir2.

Les expressions régulières

Cette section propose des exercices pour manipuler les expressions régulières dans le contexte de la recherche de mots dans un dictionnaire Unix.

Questions rapides

  • Rechercher les mots dont q n’est pas suivi de u.
  • Rechercher les mots formés exclusivement par deux consonnes.
  • Rechercher les mots de cinq lettres commençant par une voyelle et finissant par une voyelle.

Exercice : Aide aux mots croisés

En utilisant le fichier /usr/share/dict/french (dictionnaire français Unix), écrire un script qui demande à l’utilisateur de rentrer un mot incomplet sous la forme d’un mélange de lettres et de points .. Le script affiche tous les mots pouvant être obtenus en remplaçant chaque . par une lettre.

Glossaire des termes clés

  • Shell : Interface en ligne de commande permettant d’interagir avec le système d’exploitation.
  • Script shell : Fichier contenant une suite de commandes shell exécutables.
  • Argument : Valeur passée à un script ou une commande lors de son appel.
  • Commande ls : Liste les fichiers et dossiers d’un répertoire.
  • Commande mv : Renomme ou déplace un fichier ou un dossier.
  • Commande rm : Supprime un fichier ou un dossier.
  • Commande cp : Copie un fichier ou un dossier.
  • Commande date : Affiche la date et l’heure actuelles.
  • Commande grep : Recherche une chaîne de caractères dans un fichier.
  • Commande wc : Compte les lignes, mots ou caractères d’un fichier.
  • Commande head : Affiche les premières lignes d’un fichier.
  • Commande tail : Affiche les dernières lignes d’un fichier.
  • Commande sed : Éditeur de texte en ligne de commande, utilisé ici pour afficher une ligne spécifique.
  • Expression régulière : Motif utilisé pour rechercher ou manipuler du texte.
  • Variable spéciale $0 : Nom du script en cours d’exécution.
  • Variable spéciale $# : Nombre d’arguments passés au script.
  • Variable spéciale $@ : Liste des arguments passés au script.
  • Commande shift : Décale les paramètres positionnels d’un script.
  • Commande case : Structure conditionnelle basée sur des motifs (expressions régulières).
  • Variable spéciale $RANDOM : Génère un nombre aléatoire.

Points clés à retenir

  • Le shell permet de manipuler fichiers, répertoires et exécuter des scripts pour automatiser des tâches.
  • Les scripts shell utilisent des variables spéciales pour accéder aux arguments et au nom du script.
  • Les structures conditionnelles comme if et case permettent de contrôler le flux d’exécution.
  • Les expressions régulières sont essentielles pour rechercher et filtrer du texte efficacement.
  • La redirection (>, >>) et les pipes facilitent la gestion des entrées et sorties des commandes.
  • La manipulation des chaînes de caractères (majuscule/minuscule) peut être automatisée dans des scripts.
  • Les commandes classiques comme ls, grep, wc, head, tail sont indispensables pour l’administration système.

Partager

Commentaires

Aucun commentaire pour le moment. Posez la première question.

Les commentaires sont relus avant publication. Votre e-mail n'est jamais affiché.

← Toutes les révisions