Personnalisation de bash




Personnalisation de l'entrée

Il faut distinguer deux cas de figure:

  1. shell interactif d'ouverture de session
  2. autre shell interactif

Il existe des shells non interactifs, mais ce n'est pas le lieu pour en parler.

Le premier cas se produit lorsque l'on ouvre une session. bash exécute, dans cet ordre:

Le premier fichier (configuration "system wide") sert à l'administrateur, qui va y placer des directives communes. Sa présence n'est pas obligatoire; si vous n'avez qu'un seul compte utilisateur sur votre machine, il n'est probablement pas utile. Quoique...

Chacun des trois autres fichiers permet à l'utilisateur de personnaliser son environnement. Seul est exécuté le premier trouvé dans le répertoire de l'utilisateur; l'existence de trois noms pour une même fonction a des raisons historiques.

Le deuxième cas se produit par exemple lorsqu'on lance xterm; alors, bash exécute, dans cet ordre:

On retrouve la distinction entre fichier "global" et fichier "local".




Personnalisation de la sortie

Lorsqu'on quitte un shell, le fichier ~/.bash_logout est exécuté, s'il existe. L'utilisateur peut y placer des commandes pour, par exemple, supprimer des fichiers temporaires.




Notes personnelles

Je déconseille totalement le livre Learning the bash Shell, publié par O'Reilly: les exemples donnés sont soit niais, soit complexes et sans intérêt. Il est vraisemblable que le concept de pédagogie ne fait pas partie de l'arsenal intellectuel de ses auteurs.

On trouve sur le web un document intitulé Advanced bash scripting guide: très volumineux (plus de 500 pages), exhaustif, beaucoup de choses intéressantes mais noyées dans un fatras d'acrobaties sans utilité pour le lecteur moyen (comme moi).