Vous êtes sur la page 1sur 12

Chapitre 1

Système d’Exploitation
UNIX
Programmation Shell: Présentation
et Rappels

A.ROUDANE
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

Vous aimerez peut-être aussi