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.

Document source
Programming, Shell Scripting, Regular Expressions · PDF · 32 pages · 2017
Afficher l'aperçu du document
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.shavecls -l chapt2-script1.sh. - Renommer le fichier
chapt4-script1.shenchapt4-script1avecmv chapt4-script1.sh chapt4-script1. - Supprimer le fichier
chapt3-script1.shavecrm chapt3-script1.sh. - Copier le fichier
chapt2-script1.shdans le répertoirechapt3aveccp 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
Dir3dans le répertoire courant avecmkdir Dir3. - Proposer une commande qui tente de créer un deuxième dossier
Dir3et afficheOKsi la création réussit, sinonNOK.
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
liste la ligne suivante :echo "Fin de Fichier !" >> liste
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
rootdans le fichier/etc/passwd:
grep root /etc/passwd
- 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
- 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
shiftpour 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
qn’est pas suivi deu. - 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
ifetcasepermettent 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,tailsont indispensables pour l’administration système.
Commentaires
Aucun commentaire pour le moment. Posez la première question.