mercredi 14 octobre 2009
L'utilisation du shell est un incontournable sous Linux. Il en existe plusieurs types dont voici un bref historique :
- sh (Bourne Shell) : créé par Stephen R. Bourne en 1977
- csh (C Shell) : créé par Bill Joy en 1979
- tcsh (C Shell amélioré) : créé par Ken Greer en 1979
- ksh (Korn Shell) : créé par David Korn en 1982
- bash (Bourne again shell) : créé par Brian Fox en 1987
- zsh (Z Shell) : créé par Paul Falstad en 1990
cat /etc/shells
Lorsqu'on est dans un terminal, le prompt sera généralement $ ou %. Cependant, plusieurs shells utilisent le même prompt (caractère en début de ligne). Comment savoir quel shell est en cours d'utilisation ?
echo $SHELL
Ceci est récupéré des variables d'environnement du terminal. On peut les faire afficher en entrant :
export
Résultat:
declare -x SHELL="/bin/bash"
Pour passer d'un type de shell à un autre, il suffit d'entrer le nom du shell : bash pour le Bourne Again Shell ou sh (pour le Bourne Shell). Remarquez que le prompt (invite) changera.
Intéressant.
Je ne suis pas un utilisateur expérimenté sous Linux, j'utilise le shell par défaut.
La question que je me pose : Quel est l'intérêt de changer de Shell ?
Y en a-t-il qui sont meilleurs que d'autres ? (Je suppose que oui, sinon les types ne se seraient pas amusés à écrire de nouveaux shells)
Le bash est adapté pour la plupart des utilisateurs. Certains shells sont dérivés du Bourne Shell et incluent des fonctionnalités supplémentaires (support unicode, regex, etc).
Wikipedia présente une comparaison des shells assez intéressante sous forme de tableau (voir les premières colonnes).