Copyright © 2002 - 2006 Ivan Kurzweg , Pascal Picard
Permission to use, copy, modify, and distribute this documentation for any purpose with or without fee is here by granted, provided that the above copyright notice and this permission notice appear in all copies.
Ce cours est largement inspiré du cours de Pascal Picard disponible sur https://seth.homeunix.net/corto
Table des matières
Résumé
Le shell est d'abord l'interpréteur de commande d'un système Unix™ mais c'est aussi un quasi langage de programmation interpreté autorisant la récursivité.
Historiquement le premier shell du système Unix™ est le Bourne-Shell (sh). Ce shell n'a cessé d'être amélioré et l'université de Berkeley qui a beaucoup contribué à la branche BSD d'Unix™ a développé le C-Shell (csh), un successeur de sh munit de fonctionnalités étendues par rapport à son ancêtre. Le C-Shell à son tour possède un successeur : TC-Shell (tcsh), ce dernier étend les fonctionnalités de son prédécesseur et apporte davantage de convivialité. Ces caractéristiques en font un équivalent au GNU Bourne-Again-Shell (GNU/bash).
Ces shells syntaxiquement orientés C restent les shells par défaut des flavors BSD et c'est pourquoi nous nous proposons, dans ce support, de les présenter principalement dans un contexte d'interactivité où ils sont plutôt efficaces.
Voici néanmoins un résumé des différentes familles de Shells :
sh ("Bourne shell", Steve Bourne) : shell historique (disponible sur tous les Unix)
csh ("C-shell", Bill Joy) : shell BSD (disponible sur tous les Unix)
ksh ("Korn shell") : shell normalisé POSIX (P1003.2) et ISO (HP, Solaris)
bash ("Bourne again shell" de Brian Fox et Chet Ramey) : Ksh du domaine public (installé sur toutes les machines Linux)
zsh ("Zero shell") : Ksh du domaine public (installé sur toutes les machines)
tcsh ("Toronto C-shell")
rc (Plan9, Tom Duff)