Blog ENI : Toute la veille numérique !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
💥 Du 22 au 24 novembre : Accès 100% GRATUIT
à la Bibliothèque Numérique ENI. Je m'inscris !
  1. Livres et vidéos
  2. Programmation shell sous Unix/Linux
  3. Introduction
Extrait - Programmation shell sous Unix/Linux ksh, bash, norme POSIX (avec exercices corrigés) (7e édition)
Extraits du livre
Programmation shell sous Unix/Linux ksh, bash, norme POSIX (avec exercices corrigés) (7e édition)
2 avis
Revenir à la page d'achat du livre

Introduction

Définition du shell

Le shell est un terme générique désignant un programme qui a pour fonction d’assurer l’interface entre l’utilisateur et le système Unix. C’est un interpréteur de commandes.

Plusieurs shells sont disponibles sur les plates-formes Unix.

Caractéristiques d’un interpréteur de commandes

Les interpréteurs de commandes disponibles en environnement Unix ont en commun les fonctionnalités suivantes :

  • Ils permettent aux utilisateurs de lancer des commandes.

  • Ils proposent un jeu de caractères spéciaux permettant de déclencher des actions particulières.

  • Ils possèdent des commandes internes et des mots-clés parmi lesquels certains sont utilisés pour faire de la programmation (écriture de scripts shell).

  • Ils utilisent des fichiers d’initialisation permettant à un utilisateur de paramétrer son environnement de travail.

Chaque shell propose ses propres caractères spéciaux, commandes internes, mots-clés et fichiers de paramétrage. Heureusement, les interpréteurs les plus utilisés actuellement dérivent tous du shell Bourne et ont, par conséquent, un certain nombre de fonctionnalités en commun.

Interpréteurs de commandes (shells)

1. Historique

Le Bourne shell

Le shell qui est considéré comme le plus ancien est le Bourne shell. Il a été écrit dans les années 1970 par Steve Bourne aux laboratoires AT&T. Outre sa capacité à lancer des commandes, il offre des fonctionnalités de programmation. Le Bourne shell offrant moins de fonctionnalités que ses successeurs, il n’est plus guère utilisé. Certaines plates-formes l’ont d’ailleurs supprimé de leur système.

Le C-shell

Durant la même période, Bill Joy invente le C-shell (csh), incompatible avec le Bourne, mais qui offre des fonctionnalités supplémentaires telles que l’historique des commandes, le contrôle de tâches, ainsi que la possibilité de créer des alias de commandes. Ces trois aspects seront repris plus tard dans le Korn shell. Le C-shell, de par son incompatibilité avec le Bourne shell, sera peu utilisé dans le monde Unix.

Le Korn shell

En 1983, David Korn reprend le Bourne shell et l’enrichit. Ce nouvel interpréteur prendra le nom de Korn shell (ksh). Ce dernier sera de plus en plus employé et deviendra un standard de fait. Le ksh88 (version datant de 1988) est, avec le Bourne Again shell (voir ci-dessous), le shell le plus utilisé actuellement. 

En 1993, une nouvelle version du Korn shell voit le jour (ksh93). Celle-ci présente une compatibilité arrière avec le ksh88, à quelques exceptions près.

Le Bourne Again shell

La Free Software Foundation propose le Bourne Again shell (bash). Ce shell est l’interpréteur fourni en standard sur les systèmes Linux. Il est également disponible en standard ou en téléchargement sur les systèmes Unix. Les dernières versions du bash portent...

Shells abordés dans cet ouvrage

Ce livre détaille les fonctionnalités du Bourne Again shell et des Korn shell (ksh88 etksh93) et signale la compatibilité Bourne shell et POSIX.

Sauf spécification contraire, les fonctionnalités abordées sont compatibles avec ces shells (bash, ksh88, ksh93, Bourne). Lorsque ce n’est pas le cas, la liste des shells supportant la fonctionnalité est indiquée par un tableau ressemblant à celui-ci :

ksh

bash

ksh représente le ksh88 et le ksh93.

Les spécificités du Korn shell 93 et/ou du bash à partir de la version 4 sont mentionnées par les tableaux suivants :

ksh93

bash4

Il sera également indiqué la conformité à la norme POSIX pour les principales fonctionnalités ou commandes de cet ouvrage :

posix

Conventions d’écriture

Le symbole images/symbol.PNG représente un espace,
Le symbole images/FLECHE.png représente une tabulation.