GNU/Linux >> Tutoriels Linux >  >> Linux

.bashrc contre .bash_profile

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.


Linux
  1. Comprendre la signification de `$_` ?

  2. Comment changer le shell Cron (sh en bash) ?

  3. Fonctions dans les variables shell ?

  4. Qu'est-ce que . Commande ~/.bashrc Faire ? ?

  5. Régénérer .bashrc à partir du shell actuel ?

Shell Scripting Partie V :Fonctions dans Bash

Comment installer Linux Bash Shell sur Windows 10

Quel shell dois-je utiliser - Tcsh Vs Bash ??

Comment comparer des chaînes dans les scripts shell bash

Installation de Fish Shell sur Ubuntu sous Windows 10

Synchronisation du profil bash entre ordinateurs