Les Shell

Les principaux interpréteurs de commande sous GNU/Linux sont les suivants :

bash: Bourne Again Shell

Il est conforme POSIX et compatible avec le shell Bourne.

csh: C Shell

Utilisant une syntaxe plus près du language C, il est compatible avec le shell Bourne. Il possède un historique des commandes.

ksh: Korn Shell

Il est compatible avec le Bourne shell et inclut également un grand nombre de fonctionnalités du C shell.
Il possède un historique des commandes et surtout permet d'utiliser un language de script avancé.

sh: Bourne Shell

Bourne est le shell original du nom de son inventeur.

tcsh: C Shell (amélioré)

Inspiré du C Shell, il fut le shell par défaut sur les systèmes BSD.

zsh: Z Shell

Le plus récent. Compatible avec le shell Bourne.

Les substituts aux login shells :

Chaque utilisateur du système n'a pas forcément besoin ni le droit d'utiliser un interpréteur de commandes.
L'information du fichier /etc/passwd dans lequel le shell de chaque utilisateur est défini dans la dernière colonne peut être renseignée avec une commande particulière unique, voir même, un script "maison".

Voici donc quelques exemples rencontrés.

  • /sbin/nologin
  • C'est le cas pour les utilisateurs des processus internes qui ne doivent jamais obtenir un shell.

  • /usr/bin/passwd
  • Voila un exemple intéréssant, le login shell dans ce cas n'est qu'une simple commande.
    Ici, l'utilisateur s'authentifiant sur la machine n'a que la possibilité de pouvoir changer son mot de passe.
    Ce cas de figure est utile par exemple pour un serveur FTP utilisant les comptes Unix.

    Attention cependant, il faudra veiller à rajouter dans le fichier /etc/shells la commande ou le script en question sans quoi le mécanisme ne fonctionnera pas.