Fichiers de configuration

Lorsqu'un shell est crée il va lire ses fichiers de configuration qui permettent de le personnaliser.

On va ici se concentrer sur les fichiers de configuration de bash. Chaque shell va avoir sa façon de faire, faites-y attention si vous changez de shell où êtes sous mac qui par défaut a le shell zsh.

Fichiers de configurations de bash

Plusieurs fichiers sont lus lors de l'exécution du shell :

  1. au login sur une nouvelle machine :
    1. exécution du fichier /etc/profile
    2. si un fichier .bash_profile existe dans votre home alors il est exécuté
    3. sinon si un fichier .bash_login existe dans votre home alors il est exécuté
    4. sinon si un fichier .profile existe dans votre home alors il est exécuté
  2. pour des exécutions non login (c'est à dire pour des enfants du shell bash de login) :
  3. lecture du fichier .bashrc de votre home

Que fait le fichier /etc/profile avec les fichiers du dossier /etc/profile.d ?

solution

Il va les exécuter un à un.

Que mettre dans les fichiers de conf

.profile minimal

Ci-après un fichier .profile minimal :

if [ -r ~/.bashrc ]; then
    . ~/.bashrc
fi

export PATH=~/.local/bin:${PATH}

Les 3 premières lignes vérifient que le fichier .bashrc existe avant de l'exécuter dans le même shell.

Puis il ajoute une commande au path en définissant et créant la variable d'environnement PATH.

.bashrc minimal

export MAILDIR=~/Maildir

alias ll="ls -la"

Qui définie une variable d'environnement puis un alias.

Créons quelques alias :

Le fichier .bashrc crée un alias ll. À quoi cela correspond-t-il ?

corrigé

à Chaque fois que l'on va taper la commande ll, le shell la remplacera par ls -la.

Créez dans un shell les deux alias suivant :

  • cd.. pour cd ..
  • cd... pour cd ../...

Fichiers de configurations des applications

Les application vont eux aussi avec des fichiers de configurations. La plupart des applications vont créer un dossier à leur nom dans votre $HOME/.config

Si vous avez des exécutables à vous, rangez les dans : $HOME/.local/bin, et n'oubliez pas d'ajouter ce dossier à votre PATH (comme on l'a fait dans l'exemple du .profile).

L'organisation des ses fichiers de préférence, appelés les dotfiles est un réel sujet. La plupart d'entre nous ont un projet github contenant nos fichiers de conf pour pouvoir les déplacer facilement d'une machine à l'autre :