====== .bash_profile ====== {{tag>"Linux systeme"}} {{ :dummy.png?75x75|.bash_profile contient les commandes exécutées lorsque l'utilisateur se connecte à son compte. Il est généralement utilisé pour définir des variables d'environnement, des alias et des chemins d'accès.}} ===== Définition et exemples ===== ''~/.bash_profile'' est un fichier de configuration pour la //shell// ''Bash'', qui est utilisé sur les systèmes d'exploitation Linux. Il est situé dans le répertoire personnel de l'utilisateur et est exécuté lorsque l'utilisateur se connecte au système. Il peut être utilisé pour définir des variables d'environnement, des [[informatique:linux:commandes:alias|alias]] de commande, des fonctions personnalisées, et d'autres paramètres de configuration pour la session de l'utilisateur. **Équivalents** : [[.:profile]], [[.:bashrc]], [[.:bash_login]] **Ne pas confondre avec** : [[..:etc-profile]], [[..:etc-bashrc]] {{:informatique:linux:pasted:20220326-074256.png|exemple de contenu du fichier .bash_profile}} À moins d'avoir la présence de l'indicateur **—noprofile**, un **shell de connexion** Bash lira et exécutera les commandes trouvées dans certains **fichiers d'initialisation**. Il est important de noter que certains système d'exploitation utilisent ''.bashrc'' pour les fichiers d'initialisation du //shell// d'utilisateur, il est donc important de vérifier quel fichier utilise votre système d'exploitation. Quelques exemples d'utilisation : * [[informatique:linux:system:variables#path|Modifier le PATH]] * [[journal_geek:2023:20230113-afficher-le-nombre-de-mise-a-jour-avec-dnf-a-l-ouverture-de-session|Afficher le nombre de mise à jour en attente avec DNF]] * [[journal_geek:2023:20230113-afficher-le-nombre-de-mise-a-jour-avec-yum-a-l-ouverture-de-session|Afficher le nombre de mise à jour en attente avec YMU]] ===== Ordre d’exécution des fichiers d'initialisation ===== Sous Unix-like, comme Linux et macOS, l'ordre d'exécution des fichiers d'initialisation pour la shell //Bash// est généralement le suivant: 1. ''/etc/profile'' : Ce fichier contient des paramètres de configuration généraux pour tous les utilisateurs du système. 2. (''/etc/bashrc'') : contient les commandes et les paramètres de configuration qui doivent être exécutés pour tous les utilisateurs du système. 3. (''/etc/profile.d/*.sh'') : contient des fichiers shell (.sh) qui sont exécutés au démarrage de la session pour tous les utilisateurs du système. 4. ''~/.bash_profile'', ''~/.bash_login'', ou ''~/.profile'': Ces fichiers contiennent des paramètres de configuration spécifiques à l'utilisateur et sont exécutés dans cet ordre. Le premier fichier qui existe dans ce groupe sera utilisé. 5. (''~/.bashrc'') : Ce fichier contient des paramètres de configuration pour chaque session de l'utilisateur. Le fichier ''/etc/profile'' va normalement se sourcer dans ''/etc/bashrc'', en lisant et en exécutant les commandes qui s'y trouvent, puis recherche dans ''/etc/profile.d'' tous les fichiers avec une extension ''.sh'' à lire et à exécuter. De plus, le fichier ''~/.bash_profile'' se sourcera normalement dans le fichier ''~/.bashrc''. ''/etc/bashrc'' et ''~/.bashrc'' ont tous deux des vérifications pour éviter le double sourçage. ===== Ordre d’exécution des fichiers en sortie de shell ===== Lorsque l'utilisateur **quitte le shell de connexion**, ou si le script appelle la sortie intégrée dans le cas d'un shell de connexion non interactif, **Bash** lit et exécute les commandes trouvées dans ''~/.bash_logout'' suivi de ''/etc/bash_logout'' s'il existe. 1. ''~/.bash_logout'' 2. ''/etc/bash_logout''