Il existe plusieurs types de shells, les plus connus depuis Unix ayant une version améliorée sous Linux. Le fichier /etc/shells
contient une liste de tous les shells disponibles :
/bin/ash /bin/bash /bin/bash1 /bin/csh /bin/false /bin/passwd /bin/sh /bin/tcsh /usr/bin/csh /usr/bin/ksh /usr/bin/tcsh /usr/bin/zsh
Les plus connus sont bash (version améliorée du shell Bourne sous Unix), ksh (version améliorée du shell Korn sous Unix) et tcsh (version améliorée du shell C sous Unix). La commande help
affiche la liste des commandes internes du shell. Par défaut, c'est le shell Bash qui est installé avec Linux. C'est aussi le plus puissant et le plus utilisé, c'est pourquoi c'est celui-ci qui sera utilisé dans les sections suivantes.
L'initialisation du shell bash, à son ouverture, se fait à l'aide de plusieurs scripts, qui représentent autant de possibilités de le personnaliser. Dans l'ordre, les fichiers suivants sont lus et exécutés :
/etc/profile
, s'il existe.
$HOME/.bash_profile
, s'il existe
$HOME/.bash_login
, s'il existe.
$HOME/.profile
, s'il existe, et si le fichier $HOME/.bash_profile
n'existe pas. Dans ce cas, le fichier .bashrc
n'est pas pris en considération, même s'il existe.
/etc/bashrc
.
.bashrc
, s'il existe.
Dans le cas où bash est invoqué en tant que shell, il n'exécute que les fichiers /etc/profile
et $HOME/.profile
s'ils existent.
Pour personnaliser le shell, il faut donc modifier les fichiers $HOME/.bash_profile
et/ou $HOME/.bashrc
.