97 votes

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

Je veux installer rvm sur ma machine Snow Leopard.

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

84voto

Stefan Lasiewski Points 3050

En ce qui concerne le problème de .bashrc ci-dessus :

Sur la plupart des systèmes, ~/.bashrc n'est utilisé que lors du démarrage d'une interactive non-login Shell . Cependant, lorsque vous démarrez un nouveau Shell, c'est souvent un interactive connexion Shell . Puisqu'il s'agit d'un connexion Shell, les .bashrc est ignorée. Pour que l'environnement reste cohérent entre les shells d'ouverture et de fermeture de session, vous devez créer la source de l'option .bashrc de votre .profile ou votre .bash_profile .

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

Appelé comme une connexion interactive Shell, ou avec --login

Lorsque Bash est invoqué en tant qu'outil interactif login Shell, ou en tant que non interactif Shell non interactif avec l'option --login, il lit et exécute d'abord les commandes du le fichier /etc/profile, si ce fichier existe. existe. Après avoir lu ce fichier, il cherche ~/.bash_profile, ~/.bash_login, et ~/.profile, dans cet ordre. dans cet ordre, et lit et exécute les commandes de la première qui existe et qui est lisible.

Appelé comme un Shell interactif sans login

Lorsqu'un Shell interactif qui n'est pas un Shell de connexion est lancé, 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 (exécutant Leopard), il n'y avait pas de ligne vers la source ~/.bashrc . J'ai dû ajouter cette fonctionnalité par moi-même.

Sur certains systèmes et d'autres OS, .bashrc provient du réseau mondial de /etc/profile o /etc/bash_profile ou en utilisant les fichiers de modèle de /etc/skel .

Pour être honnête, la distinction entre .bashrc y .bash_profile n'est pas bien comprise par la communauté. Lorsque de nombreux développeurs disent "Ajoutez ceci à votre .bashrc", ce qu'ils veulent vraiment dire est "Ajoutez ceci à votre .bash_profile". Ils veulent que la fonctionnalité soit ajoutée à votre connexion Shell (qui est .bash_profile ), pas à votre non-login Shell. En réalité, cela n'a généralement pas d'importance et le fait de placer la configuration en .bashrc est acceptable.

65voto

Yuval Points 2228

Il s'avère donc que sur Mac OS X Snow Leopard ainsi que sur Mac OS X Lion, le fichier qui est chargé s'appelle .profile pas .bashrc .

Ce que vous voulez faire, c'est créer un fichier dans la section ~/.profile et l'appeler .profile (s'il n'existe pas déjà).

Mettez-y toutes les informations que vous devez charger avec chaque instance de bash (Merci, thepurplepixel).

Quelques remarques secondaires :

  1. Le point devant le fichier indique qu'il est invisible pour le Finder et la commande ls par défaut. la commande ls par défaut. Pour répertorier les fichiers invisibles à l'aide de la commande ls à partir du Terminal, utilisez la commande -a comme un paramètre en tant que tel : ls -a
  2. Le site ~ le symbole signifie /Users/YourUserName où YourUserName est le nom court de votre nom d'utilisateur.

Edit : Chris Page note (correctement) que ce que vous placez dans un fichier .profile s'appliquera à n'importe quel Shell que vous utilisez (i.e. zhs, bash, et cetera). Si vous voulez que le contenu n'affecte que la Shell bash, placez le contenu dans un fichier .bash_profile au lieu d'un fichier .profile fichier.

4voto

squircle Points 6625

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 souhaitez et enregistrez-le dans votre répertoire personnel ( /Users/YourUserName/ ).

3voto

Rosstified Points 2327

Je trouve que dans mon OS 10.6.5 les paramètres de 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" devraient commencer par le bout de phrase suivant, pour lire et charger les paramètres de bash au niveau du système :

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

Normalement, j'ajoute des alias dans le bashrc du niveau système afin que tous les utilisateurs puissent également y accéder. Sauf s'ils ne veulent pas utiliser vos raccourcis et alias.

Bonne chance !

1voto

fuenfundachtzig Points 185

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"

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X