Chapitre 1
Système d’Exploitation
UNIX
Programmation Shell: Présentation
et Rappels
[Link]
Introduction: Le Shell
Le Shell a un double rôles:
• Interpréteur de commandes
• Langage de programmation
Un Shell est un programme exécuté par le système, c’est un
interpréteur de commandes qui:
Initialise l’environnement de l ’utilisateur
Affiche un prompt, lit et exécute les instructions tapées par
l’utilisateur
Quand une commande est tapée, le Shell :
• Interprète les variables les métacaractères
• Gère les redirections et les tubes («pipes»)
• Interprète la commande
• Exécute la commande
Introduction: Types de Shell
Introduction: Le Script Shell
Un script Shell est un ensemble de commandes dans un fichier
ayant éventuellement des paramètres.
nom de la commande = nom du fichier = script shell
Les paramètres d’un script Shell sont repérés par leur position
quand on exécute le script.
Les commandes sont regroupées par une syntaxe de langage de
commandes.
Plusieurs langages plusieurs syntaxes regroupées en 2 familles:
• les Bourne Shells (sh, ksh, bash)
• les C-Shells (csh, tcsh))
Introduction: Le Script Shell
Un script Shell est un fichier contenant un ensemble de commandes
exécutées séquentiellement.
Sous forme de fichier texte contenant les commandes.
Le script Shell ne peut être exécuté que par un interpréteur:
« /bin/bash» pour le bash.
Le langage de script Shell est un langage évolué offrant de nombreuses
possibilités:
Boucles, variables, tests avec if, création de fonctions,…
Dans quels cas utilise-t-on les scripts?
Pour effectuer un travail répétitif
Pour des tâches d’administration système
Pour installer des programmes
Au démarrage du système pour démarrer les services et applications
Création d’un script Shell
Etape 1:
Ouvrir un fichier texte et mettre en 1ère ligne le Shell choisi :
#!/bin/sh
Etape 2:
Écrire les commandes constituant le script Shell.
Exemple:
echo "Mon premier script shell!! "
Etape 3:
Rendre le script Shell exécutable :
$ chmod a+x nom_script_shell
Etape 4:
Exécuter le script:
$ ./nom_script_shell
Structure d’un script Shell
• Toutes les instructions et commandes sont regroupées au sein d'un
script.
• Lors de son exécution, chaque ligne sera lue une à une et exécutée.
• Une ligne peut se composer de commandes internes ou externes, de
commentaires ou être vide.
• Par convention les scripts Shell se terminent généralement (pas
obligatoirement) par «sh»:
«.sh» pour le Bourne Shell et le Bourne Again Shell,
« .ksh» pour le Korn Shell
« .csh» pour le C Shell.
Structure d’un script Shell
• Une ligne de commentaire commence toujours par le caractère « # ».
• Un commentaire peut être placé en fin d'une ligne comportant déjà des
commandes.
# La ligne suivante effectue un ls
ls # La ligne en question
• La première ligne a une importance particulière car elle permet de
préciser quel Shell va exécuter le script
#!/usr/bin/sh
#!/usr/bin/ksh
Dans le premier cas c'est un script Bourne, dans l'autre un script Korn.
Exécution d’un script Shell
Pour exécuter le script, il faut appeler l’interpréteur:
Possibilité de simplifier l’appel en script en ajoutant la ligne suivante
en tête du code su script: #!/bin/bash
L’appel est alors plus simple:
L’utilisateur courant doit posséder le droit «x» pour le fichier.
Exemple: Seul l’utilisateur «Emsi1» pourra exécuter le script:
Pour autoriser les membres du groupe «Emsi3IIR»:
Exécution d’un script Shell
Remarques:
Quand un script est lancé, un nouveau Shell « fils » est créé qui
va exécuter chacune des commandes. Si c'est une commande
interne, elle est directement exécutée par le nouveau Shell.
Si c'est une commande externe, dans le cas d'un binaire un
nouveau fils sera créé pour l'exécuter, dans le cas d'un script
Shell un nouveau Shell fils est lancé pour lire ce nouveau Shell
ligne par ligne.
Exemple d’un script Shell
Mon premier script Shell:
Le code du script
Rendre le script
exécutable
Résultat du Exécuter le
script script
TP1: Mon Premier Script
Shell