Suivant: Vous vous lancez Chapitre: Configurer votre environnement Avant: La variable d'environnement
Scripts d'initialisation En plus des shell-scripts que vous créez vous-même, il y a un certain nombre de scripts que le shell utilise pour certains usages. Les plus importants sont vos scripts d'initialisation, qui sont automatiquement exécutés par le shell lorsque vous vous logez sur le système.
Ce sont de simple shell-scripts, semblables à ceux décrits plus haut. Toutefois ils sont très utiles pour configurer votre environnement, en exécutant automatiquement des commandes lorsque vous arrivez sur le système. Par exemple, si vous utilisez toujours la commande mail pour vérifier votre courrier à ce moment là, vous pouvez placer cette commande dans votre script d'initialisation de manière à ce qu'elle soit automatiquement exécutée.
Bash et Tcsh distinguent tous deux ce que l'on appelle un login shell, et les autres invocations du shell. Un ``login shell'' est celui invoqué lorsque vous vous logez sur la machine; c'est généralement le seul que vous utilisiez, avec lequel vous dialoguez. Cependant, si vous appelez un shell depuis un autre programme, comme depuis vi, vous lancez une seconde instance du shell, qui n'est pas votre login shell. De plus, chaque fois que vous exécutez un script, vous lancez automatiquement un autre shell qui interprète ce fichier.
Les fichiers d'initialisation utilisés par Bash son: /etc/profile (configuré par l'administrateur du système, et exécuté par tous les shells Bourne lorsqu'un utilisateur se loge); $HOME/.bash_profile (exécuté par tous les login shells Bash); et $HOME/.bashrc (exécuté par tous les Bash qui ne sont pas login shell). Si .bash_profile n'existe pas, .profile est utilisé à la place.
Tcsh utilise les fichiers d'initialisation suivants: /etc/csh.login (exécuté par tous les C-shell lorsqu'un utilisateur se loge), $HOME/.tcshrc (exécuté par tous les login shells et toutes les autres instances de Tcsh), et $HOME/.login (exécuté au login, après .tcshrc). Si .tcshrc n'existe pas, .cshrc est utilisé à la place.
Pour bien maîtriser les fonctions et l'usage de ces fichiers, vous devez approfondir davantage vos connaissances du shell. La programmation shell est un sujet compliqué, dépassant largement du cadre de ce livre. Lisez les pages de manuel de bash et/ou tcsh pour en savoir un peu plus, et si les shell-scripts vous passionnent offrez-vous un ouvrage sur le sujet.