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 zsh](https://scriptingosx.com/2019/06/moving-to-zsh-part-2-configuration-files/)
Fichiers de configurations de bash
Plusieurs fichiers sont lus lors de l'exécution du shell :
- au login sur une nouvelle machine :
- exécution du fichier
/etc/profile
- si un fichier
.bash_profile
existe dans votre home alors il est exécuté - sinon si un fichier
.bash_login
existe dans votre home alors il est exécuté - sinon si un fichier
.profile
existe dans votre home alors il est exécuté
- exécution du fichier
- pour des exécutions non login (c'est à dire pour des enfants du shell bash de login) :
- lecture du fichier
.bashrc
de votre home
- Le fichier
.profile
est un standard POSIX préférez ce fichier aux autres pour mettre votre configuration de login. - le fichier
.bashrc
n'est pas au login, il est d'usage de le lire à la fin du.profile
Que fait le fichier /etc/profile
avec les fichiers du dossier /etc/profile.d
?
solution
solution
Il va les exécuter un à un.
Que mettre dans les fichiers de conf
- on place dans le
.profile
les éléments qui sont transmis aux enfants donc essentiellement les variables d'environnements, en particulier la gestion du$PATH
. - le fichier
.bashrc
contient tous les éléments qui ne sont pas transmis aux shell enfants, comme les alias ou les définitions de fonctions,
.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é
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..
pourcd ..
cd...
pourcd ../..
.
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 :