J'ai lu tellement de suggestions à propos de ne pas placer vos commandes de personnalisation dans le fichier ".profile". Créez plutôt un .bash_profile pour vous-même et ajoutez votre alias, etc.
Mais, lorsque j'ouvre le nouveau terminal, s'il n'y a que .bash_profile, OS X n'exporte/ne source pas les commandes qui y sont mentionnées. Je dois rechercher manuellement le .bash_profile.
Si je crée un fichier .profile, à l'ouverture d'un nouveau terminal, toutes mes commandes en .profile sont exécutées et seront facilement disponibles.
Pourriez-vous s'il vous plaît m'aider à comprendre comment cela fonctionne? Aussi, quand utiliser les fichiers .bashrc/.profile/.bash_profile.
Merci!
Selon la page de manuel fournie avec OS X:
... il recherche
~/.bash_profile
,~/.bash_login
, et~/.profile
, dans cet ordre, et lit et exécute les commandes du premier qui existe et est lisible. L'option--noprofile
peut être utilisée lorsque le shell est démarré pour empêcher ce comportement.
Il ne doit lire ~/.profile
Qu'en dernier recours si ni ~/.bash_profile
Ni ~/.bash_login
Ne sont lisibles.
Sur tous mes systèmes OS X, mon ~/.bash_profile
Est réglé sur:
if [ -f ~/.bashrc ]; then
source ~/.bashrc
fi
Il est fortement recommandé de le faire sur OS X afin que bash puisse lire votre fichier ~/.bashrc
Comme vous vous y attendez.
Il est également possible que votre shell de terminal utilise par défaut sh au lieu de bash. Vous pouvez d'abord vérifier cela:
$ echo $Shell
/bin/tcsh
Pour changer cela en bash, vous pouvez aller dans votre Terminal -> Préférences -> onglet Démarrage, et changer "Shell ouvre avec:" de "Shell de connexion par défaut" en Commande et valeur "/ bin/bash".
Vous pouvez également modifier votre shell par défaut en exécutant la commande suivante à l'invite de commandes:
chsh -s bin/bash
Après avoir effectué l'une de ces opérations, ouvrez une nouvelle fenêtre Shell, et votre .bash_profile devrait provenir.
Il convient de mentionner que bash recherchera d'abord un /etc/profile
file, comme indiqué dans les pages de manuel de Bash.
Quand bash est invoqué en tant que shell de connexion interactif, ou en tant que shell non interactif avec l'option --login, il lit et exécute d'abord les commandes du fichier/etc/profile, si ce fichier existe . Après avoir lu ce fichier, il recherche ~/.bash_profile, ~/.bash_login et ~/.profile, dans cet ordre, et lit et exécute les commandes du premier qui existe et est lisible. L'option --noprofile peut être utilisée lorsque le shell est démarré pour inhiber ce comportement.