Si vous passez beaucoup de temps sur la ligne de commande, il est probable que vous souhaitiez personnaliser votre environnement shell. Cela peut signifier créer des alias, ajouter un nouveau répertoire au $PATH
, ou modifier l'apparence de l'invite du shell.
Vous avez peut-être rencontré des tutoriels où ils disent de mettre votre configuration soit dans le .bashrc
, .bash_profile
ou un autre fichier de configuration lu et exécuté par le shell bash.
Dans cet article, nous parlerons des fichiers de démarrage de Bash et de la différence entre le .bashrc
et .bash_profile
fichiers.
Connexion interactive et Shell sans connexion
Lorsqu'il est appelé, Bash lit et exécute des commandes à partir d'un ensemble de fichiers de démarrage. Les fichiers lus dépendent du fait que le shell est appelé en tant que shell de connexion interactif ou sans connexion.
Un shell peut être interactif ou non interactif.
En termes simples, un shell interactif est un shell qui lit et écrit sur le terminal d'un utilisateur, tandis qu'un shell non interactif est un shell qui n'est pas associé à un terminal, comme lors de l'exécution d'un script.
Un shell interactif peut être un shell de connexion ou non.
Un shell de connexion est invoqué lorsqu'un utilisateur se connecte au terminal à distance via ssh ou localement, ou lorsque Bash est lancé avec le --login
option. Un shell interactif sans connexion est invoqué à partir du shell de connexion, comme lors de la saisie de bash
dans l'invite du shell ou lors de l'ouverture d'un nouvel onglet de terminal Gnome.
Fichiers de démarrage Bash #
Lorsqu'il est appelé en tant que shell de connexion interactif, Bash recherche le /etc/profile
fichier, et si le fichier existe, il exécute les commandes répertoriées dans le fichier. Ensuite, Bash recherche ~/.bash_profile
, ~/.bash_login
, et ~/.profile
fichiers, dans l'ordre indiqué, et exécute les commandes à partir du premier fichier lisible trouvé.
Lorsque Bash est appelé en tant que shell interactif sans connexion, il lit et exécute les commandes de ~/.bashrc
, si ce fichier existe et qu'il est lisible.
Différence entre .bashrc et .bash_profile #
.bash_profile
est lu et exécuté lorsque Bash est appelé en tant que shell de connexion interactif, tandis que .bashrc
est exécuté pour un shell interactif sans connexion.
Utilisez .bash_profile
pour exécuter des commandes qui ne doivent s'exécuter qu'une seule fois, comme la personnalisation du $PATH
variable d'environnement.
Mettez les commandes qui doivent s'exécuter à chaque fois que vous lancez un nouveau shell dans le .bashrc
dossier. Cela inclut vos alias et fonctions, les invites personnalisées, les personnalisations de l'historique, etc.
Typiquement, ~/.bash_profile
contient des lignes comme ci-dessous qui source le .bashrc
dossier. Cela signifie que chaque fois que vous vous connectez au terminal, les deux fichiers sont lus et exécutés.
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
La plupart des distributions Linux utilisent ~/.profile
au lieu de ~/.bash_profile
. Le ~/.profile
le fichier est lu par tous les shells, tandis que ~/.bash_profile
uniquement par Bash.
Si un fichier de démarrage n'est pas présent sur votre système, vous pouvez le créer.
Conclusion #
.bash_profile
et .bashrc
sont des fichiers contenant des commandes shell exécutées lorsque Bash est invoqué. .bash_profile
est lu et exécuté sur des shells de connexion interactifs, tandis que .bashrc
sur les shells sans connexion.
Consultez le manuel de Bash pour plus d'informations sur les fichiers de démarrage de Bash.
Si vous avez des questions ou des commentaires, n'hésitez pas à laisser un commentaire.