11.7. Les fichiers de démarrage du shell bash

Le programme shell /bin/bash (maintenant dénommé « le shell ») utilise un ensemble de fichiers de démarrage pour aider à créer un environnement dans lequel tourner. Chaque fichier a une utilité spécifique et peut affecter les environnements de connexion et interactifs différemment. Les fichiers dans le répertoire /etc fournissent les paramètres globaux. Si un fichier équivalent existe dans le répertoire personnel, il peut écraser les paramètres globaux.

Un shell de connexion interactif est démarré après une tentative de connexion réussie, avec /bin/login, en lisant le fichier /etc/passwd. Un shell interactif de non-connexion est démarré par la ligne de commande (par exemple [prompt]$/bin/bash). Un shell de non-connexion est typiquement présent lorsqu'un script shell est lancé. Il n'est pas interactif car il parcoure un script et n'attend pas d'entrée utilisateur entre les commandes.

Pour plus d'informations, voir info bash sous la section Fichiers de démarrage de Bash et Shells interactifs, et Ficihers de démarrage de Bash dans CBLFS.

Les fichiers /etc/profile et ~/.bash_profile sont lus lorsque le shell est invoqué comme un shell de connexion interactif. Créez un fichier /etc/profile de base qui lira les informations de régionalisation dans /etc/locale.conf et chargera les fichiers d'autocomplétion de Bash qui se trouvent sur le système. Ce script permet aussi d'initialiser la variable d'environnement INPUTRC qui permet à Bash et Readline d'utiliser /etc/inputrc.

cat > /etc/profile << "EOF"
# Begin /etc/profile

source /etc/locale.conf

for f in /etc/bash_completion.d/*
do
  if [ -e ${f} ]; then source ${f}; fi
done
unset f

export INPUTRC=/etc/inputrc

# End /etc/profile
EOF