Question Où trouver le fichier .bashrc sur Mac OS X Snow Leopard et Lion?


Je veux installer rvm sur ma machine Snow Leopard.

Il dit que je dois ajouter une ligne à mon .bashrc fichier (j'utilise bash) mais où est mon .bashrc fichier?


83
2018-05-30 21:03


origine


Vous devriez mettre votre solution dans une réponse et l'accepter (vous devrez attendre un jour ou deux avant que SU vous le permette). De cette façon, les personnes ayant le même problème peuvent voir la question. - Nifle
Sa solution n'est pas différente de la réponse la plus votée .. - David Cowden
Juste pour être sûr que ce n’est pas un problème de "Linux = .bashrc vs Mac OS =. (Bash_) profile" les fichiers de démarrage du shell fonctionnent de la même manière sous Linux et Mac et le fichier .bashrc est le plus approprié pour Session paramètres spécifiques. vous utilisez par exemple tmux ou screen, il se peut que vous n'ayez pas de session de connexion mais que vous souhaitiez toujours vos alias. La raison pour laquelle Mac se sent différent est que la plupart des distributions Linux envoient des scripts de profil système ou des profils squelettes qui délèguent déjà (source) bashrc. - eckes


Réponses:


En ce qui concerne le problème avec .bashrc au dessus:

Sur la plupart des systèmes, ~/.bashrc est utilisé uniquement lors du démarrage d'un interactif non-login coquille. Cependant, lorsque vous démarrez un nouveau shell, il est souvent un interactif s'identifier coquille. Puisque c'est un s'identifier shell, le .bashrc est ignoré. Pour que l’environnement reste cohérent entre les shells de non-connexion et de connexion, vous devez .bashrc de ton .profile ou votre .bash_profile.

Voir le manuel de référence Bash, section 6.2 Fichiers de démarrage Bash

Invoqué en tant que shell de connexion interactif,   ou avec --login

Lorsque Bash est appelé en tant que interactif   login shell, ou en tant que non-interactif   shell avec l'option --login, il   lit et exécute d'abord les commandes de   le fichier / etc / profile, si ce fichier   existe Après avoir lu ce fichier, il   cherche ~ / .bash_profile,   ~ / .bash_login, et ~ / .profile, dans cette   ordre, et lit et exécute des commandes   du premier qui existe et est   lisible.

Invoqué en tant que shell interactif non connecté

Lorsqu'un shell interactif qui n'est pas un shell de connexion est démarré, Bash lit et exécute   commandes de ~ / .bashrc, si ce fichier existe.

Donc, typiquement, votre ~ / .bash_profile   contient la ligne

   if [ -f ~/.bashrc ]; then . ~/.bashrc; fi

après (ou avant) toute initialisation spécifique à la connexion.

Sur mon Mac (Running Leopard), il n'y avait pas de ligne à générer ~/.bashrc. J'ai dû ajouter cette fonctionnalité par moi-même.

Sur certains systèmes et autres systèmes d'exploitation, .bashrc provient du monde entier /etc/profile ou /etc/bash_profile , ou est fait en utilisant les fichiers de modèle de /etc/skel.

Pour être honnête, la distinction entre .bashrc et .bash_profile n'est pas bien compris par la communauté. Quand beaucoup de développeurs disent "Ajoutez ceci à votre .bashrc", ce qu'ils veulent vraiment dire c'est "Ajoutez ceci à votre .bash_profile". Ils veulent que la fonctionnalité soit ajoutée à votre s'identifier shell (qui est .bash_profile), pas à votre non-login coquille. En réalité, cela n’a pas d’importance et place la configuration dans .bashrc est acceptable.


74
2018-06-01 17:26



Ce lien donne un bon aperçu des types de shell et du chargement des fichiers de démarrage - hacktux.com/bash/bashrc/bash_profile - studgeek
Qu'entend-on par "source" ici? - elgrego
@elgrego, voici une bonne description: Lorsqu'un fichier est généré (en tapant le nom de fichier source ou le nom de fichier sur la ligne de commande), les lignes de code du fichier sont exécutées comme si elles étaient imprimées sur la ligne de commande. Voir tldp.org/HOWTO/Bash-Prompt-HOWTO/x237.html - Stefan Lasiewski


Ainsi, sur Mac OS X Snow Leopard et Mac OS X Lion, le fichier chargé s'appelle .profile, ne pas .bashrc.

Qu'est-ce que vous voulez faire est de créer un fichier dans ~/.profile et appelez-le .profile (s'il n'existe pas déjà).

Mettez toutes les informations dont vous avez besoin pour charger avec chaque instance de bash là-bas (Merci, thepurplepixel).

Quelques notes secondaires:

  1. La période devant le fichier le marque comme invisible pour le Finder et la commande ls par défaut. Pour répertorier les fichiers invisibles à l'aide du ls commande à partir du terminal, utilisez le -a en tant que paramètre en tant que tel: ls -a
  2. le ~ symbole signifie /Users/YourUserName où YourUserName est le nom abrégé de votre nom d'utilisateur.

Edit: Chris Page note (correctement) que tout ce que vous placez dans un fichier .profile s'appliquera à n'importe quel shell que vous utilisez (c'est-à-dire zhs, bash, et cetera). Si vous voulez que le contenu n'affecte que le shell bash, placez le contenu dans un .bash_profilefichier au lieu d'un .profile fichier.


56
2017-12-20 23:51



Votre question a été répondue [correctement] le 1er juin 2010 - un jour après que vous l'ayez demandé. Plus d'un an plus tard, vous revenez et fournissez exactement la même réponse et acceptez votre propre réponse ... - David Cowden
En fait, sa réponse ajoute plus de détails que la réponse donnée le 1er juin 2010. Il aborde spécifiquement le problème sous Mac OS X, que j'ai trouvé utile. - webworm
Notez que si un .bash_profile existe déjà dans votre répertoire personnel, puis .profile le fichier ne sera pas lu! - Phani
J'ai une nouvelle installation de Mac Os El Capitan. Il n'y a pas profil fichier. Il suffit de créer un fichier .profile et cela fonctionne. J'ai personnellement renommé mon .bashrc en .profile. - Nicolas Thery


Vous devez faire votre propre .bashrc. Vous pouvez simplement utiliser un éditeur de texte pour créer un fichier appelé .bashrc (sans extension) avec le contenu que vous voulez et enregistrez-le dans votre répertoire personnel (/Users/YourUserName/).


4
2018-05-30 21:05



En fait, cela n'a pas fonctionné, mais vous m'avez envoyé dans la bonne direction en me disant de créer mon propre fichier. Le fichier qui fonctionnait sur une configuration Snow Leopard était .profile, pas .bashrc (qui, pour une raison quelconque, n'est pas chargé dans ce système d'exploitation). Je posterai des instructions détaillées dans la question. Merci! - Yuval
@Yuval: Par défaut, un .bashrc va travailler, mais seulement s'il n'y a pas .profile. j'imagine ~/.profile existe par défaut, cependant. Heureux d'avoir pu aider! (Et vous devriez mettre votre solution dans une réponse et l'accepter pour les futurs lecteurs de cette question). - squircle
Je pense que ton commentaire sur seulement s'il n'y a pas de .profile est incorrect. .bashrc fonctionnera dans un shell interactif sans connexion, ou s'il provient de .profile (.bash_profile est probablement un meilleur endroit, car .profile est pour le shell Bourne). .profile est utilisé lors d'un shell interactif sans connexion. - Stefan Lasiewski
@Stefan Cela semble correct, alors. Je ne suis pas un expert :) - squircle
Personne n'est ;). Ce genre de choses (.bashrc vs .profile vs. .bash_profile vs. .bash_login vs shell de connexion interactif vs shell interactif non connecté vs shell non interactif) est déroutant, et il est cassé et remplacé par de nombreux Unix et scripts shell. - Stefan Lasiewski


Je trouve que dans mon OS 10.6.5 les paramètres bash sont dans "/ etc / bashrc". Je pense que ce sont les spécifications de toplevel pour shell.

Cependant, vous avez besoin d'un compte root pour le modifier. Les spécifications locales par utilisateur "~ / .bashrc" doivent commencer par l'extrait de code suivant, pour lire et charger les paramètres bash de niveau système:

if [ -r /etc/bashrc ]; then
    . /etc/bashrc 
fi

J'ajoute normalement des alias au niveau système bashrc pour que tous les utilisateurs puissent y accéder également. Sauf s'ils ne veulent pas utiliser vos raccourcis et alias.

Bonne chance!


3
2017-11-26 08:02



/ etc / profile (exécuté par les shells de connexion) est un script de démarrage global bash qui s'applique à tous les utilisateurs et fournit des comportements par défaut pour les shells de connexion. Il exécute à son tour / etc / bashrc, qui contient des personnalisations qui s'appliquent à la fois aux shells de connexion et aux autres. De même, les utilisateurs individuels doivent créer un fichier ~ / .bash_profile qui exécute ~ / .bashrc, où la plupart des personnalisations doivent être exécutées, et ~ / .bashrc doit exécuter / etc / bashrc pour hériter des comportements par défaut pour les shells non connectés. - Chris Page
Pour les utilisateurs individuels, il est préférable d'ajouter ces personnalisations à votre répertoire personnel à ~/.bashrc , ne pas /etc/bashrc. /etc/bashrc sont les paramètres globaux pour tous les utilisateurs de votre système, ce qui n'est probablement pas ce que vous voulez. En outre, Apple pourrait venir et changer /etc/bashrc périodiquement, ce qui pourrait faire disparaître vos personnalisations. - Stefan Lasiewski


Utilisez le fichier .profile pour ajouter tout ce que vous ajouteriez à un fichier linux .bashrc.

Par exemple

PATH=/System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/:/opt/local/bin:/opt/depot_tools/:~/bin:$PATH
alias t='/Users/<username>/.todo/todo.sh'
alias punch='python /Users/<username>/.todo/Punch.py'
alias clock='cat </dev/tcp/time.nist.gov/13'
alias sudotext="sudo /Applications/TextEdit.app/Contents/MacOS/TextEdit" 

1
2018-06-01 18:18



Je vous recommande d'utiliser ~ / .bash_profile (au lieu de ~ / .profile) sauf si vous êtes certain que vous souhaitez que vos personnalisations prennent effet dans d'autres shells et qu'elles soient compatibles. - Chris Page
Juste pour être sûr que ce n’est pas un problème de "Linux = .bashrc vs Mac OS =. (Bash_) profile" les fichiers de démarrage du shell fonctionnent de la même manière sous Linux et Mac et le fichier .bashrc est le plus approprié pour Session paramètres spécifiques. vous utilisez par exemple tmux ou screen, il se peut que vous n'ayez pas de session de connexion mais que vous souhaitiez toujours vos alias. La raison pour laquelle Mac se sent différent est que la plupart des distributions Linux envoient des scripts de profil système ou des profils squelettes qui délèguent déjà (source) bashrc. - eckes