0% ont trouvé ce document utile (0 vote)
4 vues13 pages

Exposé Sur La Programmation Shell

Ce document présente un exposé sur la programmation Shell dans le cadre de l'administration des systèmes et réseaux Linux. Il aborde les fonctionnalités de base du Shell, les éléments syntaxiques du langage, les types d'interpréteurs, ainsi que des exemples pratiques d'utilisation. En conclusion, il souligne l'importance du Shell comme outil puissant et flexible pour les professionnels de l'informatique.

Transféré par

ploic71
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
4 vues13 pages

Exposé Sur La Programmation Shell

Ce document présente un exposé sur la programmation Shell dans le cadre de l'administration des systèmes et réseaux Linux. Il aborde les fonctionnalités de base du Shell, les éléments syntaxiques du langage, les types d'interpréteurs, ainsi que des exemples pratiques d'utilisation. En conclusion, il souligne l'importance du Shell comme outil puissant et flexible pour les professionnels de l'informatique.

Transféré par

ploic71
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

REPUBLIQUE DU CAMEROUN REPUBLIC OF CAMEROON

Paix-Travail-Patrie Peace-Work-Fatherland
******** ********
MINISTERE DE L’ENSEIGNEMENT MINISTRY OF HIGHER
SUPERIEUR EDUCATION
******** ********
INSTITUT UNIVERSITAIRE DES GRANDES THE UNIVERSITY INSTITUTE OF THE
ECOLES DES TROPIQUES TROPICS
******* ********

ADMINISTRATION DES SYSTEMES ET


RESEAUX LINUX

THEME: LA PROGRAMMATION SHELL

MEMBRES DU GROUPE:
 TCHINDA Arcel Borel
 NJOUMEMI Safia
 NKEMEGNI Edwin
 BOUAIKON Stephanie
 TCHOUHEUK Modeste
 NTOCKO Fabrice
 TCHAPGA Fairgal
 TESSE SIEWE

ANNEE ACADEMIQUE: 2025/2026


STRUCTURE DE L’Exposé

I. Introduction

II. Fonctionnalités de base

III. Eléments Syntaxique du Langage

IV. Typologie des Interpréteurs (Les types de Shell)

V. Exemples Divers

VI. Conclusion
I- Introduction

Dans l’univers des systèmes d’exploitation, la communication entre l’utilisateur et la machine


ne se limite pas aux interfaces graphique, c’est dans ce sens qu’il existe un outil
fondamentale, discret mais d’une puissance redoutable : le Shell
Le Shell est un programme informatique qui fait office d’interpréteur de commande. Il joue le
rôle d’intermédiaire entre l’utilisateur et le noyau (kernel) du système d’exploitation.
Concrètement, il reçoit les commandes saisies par l’utilisateur, les interprète puis les transmet
au système pour exécution.
Apparue dès la première version d’UNIX dans les années 1970, le Shell est devenu
incontournable dans l’administration du système, le développement logiciel
et l’automatisation des taches. Il offre à l’utilisateur un environnement de travail en ligne de
commande (CLI-COMMAND LINE INTERFACE) permettant d’exécuter les programmes,
de gérer des taches, de configurer le système et même d’écrire des scripts complexe.

II- Fonctionnalités de Base

Le Shell assure plusieurs fonctions essentielles dans un système d'exploitation :


• Exécution de commandes : Le Shell permet à l'utilisateur de lancer des
programmes et des commandes système directement depuis le terminal (ex : ls,
cd, cp, mv…).
• Gestion des fichiers et répertoires : Il offre la possibilité de créer, modifier,
déplacer, copier ou supprimer des fichiers et dossiers.
• Redirection des entrées/sorties : Le Shell peut rediriger les flux d'entrée
(stdin), de sortie (stdout) et d'erreur (stderr) vers des fichiers ou d'autres
programmes grâce aux opérateurs >, >>, < et |.
• Gestion des processus : Il permet de lancer des processus en arrière-plan, de
les surveiller, de les suspendre ou de les terminer.
• Écriture de scripts : Le Shell est également un véritable langage de
programmation permettant d'automatiser des tâches répétitives via des scripts
Shell (.sh).
• Gestion des variables d'environnement : Il manipule les variables système
(PATH, HOME, USER, etc.) qui configurent le comportement du système.
 La gestion des entrées sorties :
o > : Redirige la sortie vers un fichier (écrase le contenu)
o >> : Ajoute la sortie à la fin d’un fichier
o < : Utilise un fichier comme entrée de commande.
 L’Exécution en arriere plan : En ajoutant & a la fin d’une
commande, le Shell redonne la main a l’utilisateur pendant que le
processus travaille.
 Les substitutions : Capacité à remplacer une commande par son
résultat dans une ligne de code via les apostrophes inversées
(‘command’) ou $(command).

III. Éléments du Langage de programmation

Le langage Shell possède une syntaxe propre comprenant plusieurs éléments clés :

 Variables : Une variable est un nom symbolique associé à une valeur stockée en
mémoire. En Shell, on la déclare simplement en écrivant nom=valeur, sans espace
autour du signe égal. Pour lire sa valeur, on la préfixe du signe dollar : $nom ou mieux
${nom} pour éviter les ambiguïtés. La portée des variables est globale par défaut dans
un script. Pour limiter une variable à une fonction, on utilise le mot-clé local. Le Shell
fournit aussi des variables spéciales prédéfinies très utiles : $0 contient le nom du
script, $1, $2... les arguments, $# le nombre d'arguments, $@ tous les arguments sous
forme de liste, $? le code retour de la dernière commande, $$ le PID du processus en
cours, et $! le PID du dernier processus lancé en arrière-plan.

nom="Stéphanie"

age=21

 Structures de contrôle : Les structures de contrôle permettent de diriger le flux


d'exécution d'un script selon des conditions.
o La structure principale est if / elif / else / fi. La condition est évaluée entre
crochets simples [ ] (syntaxe POSIX) ou double [[ ]] (syntaxe Bash étendue,
recommandée). La structure se termine obligatoirement par fi.
if [[ $note -ge 16 ]]; then

echo "Très bien"

elif [[ $note -ge 14 ]]; then

echo "Bien"

elif [[ $note -ge 10 ]]; then

echo "Passable"

else

echo "Insuffisant"

fi

o La structure case / esac est l'équivalent du switch d'autres langages. Elle


permet de comparer une valeur à plusieurs motifs. Chaque motif se termine par
;;. On peut combiner plusieurs valeurs avec |, et utiliser le motif * comme cas
par défaut. Les motifs supportent les caractères génériques.
case $jour in

lundi|mardi|mercredi|jeudi|vendredi)
echo "Jour de travail" ;;

samedi|dimanche)

echo "Week-end" ;;
*)

echo "Jour inconnu" ;;

esac

 Boucles : Le Shell propose trois types de boucles.


o La boucle for est la plus polyvalente. Elle peut itérer sur une liste de valeurs
explicites, sur une plage numérique avec la syntaxe {debut..fin} ou
{debut..fin..pas}, sur les fichiers correspondant à un motif, ou encore avec une
syntaxe de style C avec initialisation, condition et incrément.
# Sur une liste explicite

for ville in Douala Yaoundé Bafoussam; do

echo "$ville"

done

# Sur une plage avec pas

for i in {0..20..5}; do echo $i; done # 0 5 10 15 20

# Style C

for ((i=0; i<5; i++)); do

echo $i

done
# Sur des fichiers .php

for f in *.php; do

echo "Traitement : $f"

done
o La boucle while s'exécute tant que la condition est vraie. Elle est idéale pour
les situations où le nombre d'itérations n'est pas connu à l'avance, comme la
lecture d'un fichier ligne par ligne ou l'attente d'un événement.
# Boucle while classique

compteur=1

while [[ $compteur -le 5 ]]; do

echo "Tour $compteur"

((compteur++))

done

# Lecture d'un fichier ligne par ligne

while IFS= read -r ligne; do

echo "$ligne"

done < mon_fichier.txt

o La boucle until est l'inverse du while : elle s'exécute tant que la condition est
fausse. Les instructions break et continue permettent respectivement
d'interrompre une boucle immédiatement ou de passer à l'itération suivante.
# Until : s'exécute tant que la condition est fausse

x=0

until [[ $x -ge 5 ]]; do

echo $x

((x++))

done

# break et continue

for i in {1..10}; do

[[ $i -eq 3 ]] && continue # saute le 3

[[ $i -eq 7 ]] && break # arrête au 7

echo $i

done # affiche : 1 2 4 5 6

 Fonctions : Les fonctions permettent de regrouper un ensemble d'instructions sous un


nom réutilisable. On les déclare avec la syntaxe nom_fonction() { ... }. Les arguments
sont accessibles via $1, $2, etc., exactement comme pour un script. Il est impératif
d'utiliser local pour toute variable interne afin d'éviter les conflits avec les variables
globales.
Une fonction peut retourner un code de retour (de 0 à 255) avec return, ou transmettre
une valeur en l'affichant avec echo et en capturant la sortie via $().

calculer() {

local a=$1

local b=$2

local operation=$3

local result

case $operation in

add) result=$((a + b)) ;;

sub) result=$((a - b)) ;;

mul) result=$((a * b)) ;;

div) result=$((a / b)) ;;

esac

echo $result # retourner une valeur via stdout

# Appel et récupération du résultat


res=$(calculer 10 3 add)

echo "Résultat : $res" # → 13

# Code de retour booléen

verifier_age() {

local age=$1

[[ $age -ge 18 ]] && return 0 || return 1

if verifier_age 20; then echo "Majeur"; fi


→ Règle d'or : toujours utiliser local pour les variables internes à une fonction.

 Opérateurs : Le Shell dispose de plusieurs catégories d'opérateurs.


o Les opérateurs arithmétiques (+, -, *, /, %, **) s'utilisent dans la syntaxe
$(( )). On dispose aussi des opérateurs d'affectation combinés comme +=, -
=, *=, et des opérateurs d'incrémentation ++ et --.
o Les opérateurs de comparaison numérique s'écrivent avec des mots : -eq
pour l'égalité, -ne pour la différence, -lt pour inférieur strict, -le pour
inférieur ou égal, -gt pour supérieur strict, et -ge pour supérieur ou égal.
Ces opérateurs s'utilisent à l'intérieur de crochets [ ] ou [[ ]].
o Pour les chaînes de caractères, on utilise == ou = pour l'égalité, != pour la
différence, -z pour vérifier qu'une chaîne est vide, et -n pour vérifier qu'elle
est non vide.
o Les opérateurs logiques && (ET), || (OU) et ! (NON) permettent de
combiner des conditions. Utilisés directement entre des commandes, &&
signifie «exécuter la commande suivante seulement si la précédente a
réussi», et || signifie «exécuter la suivante seulement si la précédente a
échoué».
o Les opérateurs sur les fichiers permettent de tester l'existence et les
propriétés d'un fichier ou répertoire : -e (existe), -f (fichier ordinaire), -d
(répertoire), -r (lisible), -w (modifiable), -x (exécutable), -s (non vide), -L
(lien symbolique), -nt (plus récent que), -ot (plus ancien que).
# Arithmétique

echo $((5 + 3)) # → 8

echo $((10 % 3)) # → 1

 Commentaires : Tout ce qui suit le caractère # est ignoré par l'interpréteur.


 Shebang (#!/bin/bash) : Ligne placée en début de script pour indiquer l'interpréteur
utiliser.

IV. Typologie des Interpréteurs (Les types de Shell)

Il existe plusieurs types de Shell, chacun ayant ses propres caractéristiques :


• Bourne Shell (sh) : Le premier Shell Unix créé par Stephen Bourne en 1977. Il
est la base de nombreux autres Shells.
• C Shell (csh) : Développé par Bill Joy, il introduit une syntaxe inspirée du
langage C et des améliorations comme l'historique des commandes.
• Korn Shell (ksh) : Combinaison de sh et csh, il apporte des fonctionnalités
avancées tout en maintenant la compatibilité avec sh.
• Bash (Bourne Again Shell) : Le Shell le plus répandu sur les systèmes Linux. Il
est compatible sh et intègre de nombreuses améliorations (auto-complétion,
historique, scripts puissants).
• Zsh (Z Shell) : Shell très configurable et puissant, populaire notamment grâce au
Framework Oh My Zsh. C'est le Shell par défaut sur MacOs.
• Fish Shell : Un Shell moderne et convivial, avec une auto-complétion intelligente
et une syntaxe claire, mais moins compatible avec les scripts sh traditionnels.

V. Exemples Divers

Voici quelques exemples pratiques illustrant l'utilisation du Shell :

Exemple 1 : Afficher un message

#!/bin/bash
echo "Bonjour, monde !"
Exemple 2 : Boucle for

#!/bin/bash
For i in 1 2 3 4 5; do
echo "Valeur : $i"
Done
Exemple 3 : Condition if/else

#!/bin/bash
age=18
If [ $age -ge 18 ]; then
echo "Majeur"
else
echo "Mineur"
fi

VI. Conclusion

Au terme de cet exposé, il ressort clairement que le Shell est bien plus qu'un simple outil de
saisie de commandes. Il constitue un environnement de travail complet, puissant et flexible,
indispensable pour tout professionnel de l'informatique.
Grâce à ses fonctionnalités de base, exécution de commandes, gestion des fichiers, redirection
des flux et automatisation .Le Shell permet d'optimiser considérablement le travail quotidien
d'un administrateur système ou d'un développeur. La diversité des interpréteurs (Bash, Zsh,
Ksh, etc.) témoigne de la richesse de cet écosystème et de sa capacité à s'adapter à des besoins
variés.
Les éléments syntaxiques du langage Shell — variables, conditions, boucles,
fonctions — font de lui un véritable langage de programmation, capable de prendre en charge
des tâches complexes d'automatisation et d'administration. Les exemples présentés ont permis
d'illustrer concrètement la facilité avec laquelle on peut écrire des scripts utiles et efficaces.
En définitive, maîtriser le Shell, c'est acquérir une compétence transversale
précieuse qui ouvre la voie à une meilleure compréhension des systèmes d'exploitation, au
développement de scripts robustes, et à une productivité accrue dans tout environnement
Unix/Linux.

Vous aimerez peut-être aussi