web-dev-qa-db-fra.com

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

Je veux installer rvm sur ma machine Snow Leopard.

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

86
Yuval

Il s’avère donc que sous Mac OS X Snow Leopard et Mac OS X Lion, le fichier chargé s’appelle .profile et non .bashrc.

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

Mettez toutes les informations que vous avez besoin de charger avec chaque instance de bash (Merci, thepurplepixel).

Quelques notes en marge:

  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 de la commande ls depuis Terminal, utilisez le -a en tant que paramètre: 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 à tout Shell utilisé (par exemple, zhs, bash, etc.). Si vous souhaitez que le contenu affecte uniquement le shell bash, placez-le dans un fichier .bash_profile au lieu d'un fichier .profile.

58
Yuval

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

Sur la plupart des systèmes, ~/.bashrc n'est utilisé que lors du démarrage d'un interactif non-login Shell. Cependant, lorsque vous démarrez un nouveau shell, il s'agit souvent d'un interactif login Shell. Puisqu'il s'agit d'un login Shell, le .bashrc est ignoré. Pour préserver la cohérence de l'environnement entre les shells de connexion et de connexion, vous devez source le .bashrc à partir de votre .profile ou de votre .bash_profile.

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

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

Lorsque Bash est appelé en tant que shell de connexion interactif ou 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, puis lit et exécute les commandes à partir de la première existant et lisible.

Appelé en tant que shell interactif sans connexion

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

Donc, généralement, 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 vers le code source ~/.bashrc. Je devais ajouter cette fonctionnalité moi-même.

Sur certains systèmes et autres systèmes d’exploitation, .bashrc provient du /etc/profile ou du /etc/bash_profile global ou est créé à l’aide des fichiers de modèle de /etc/skel.

Pour être honnête, la communauté ne comprend pas bien la distinction entre .bashrc et .bash_profile. Lorsque de nombreux développeurs disent "Ajouter ceci à votre fichier .bashrc", ils veulent dire en réalité "Ajouter ceci à votre fichier .bash_profile". Ils veulent que la fonctionnalité soit ajoutée à votre login Shell (qui est .bash_profile), pas à votre non-login Shell. En réalité, peu importe, placer une configuration dans .bashrc est acceptable.

78
Stefan Lasiewski

Vous devez créer votre propre .bashrc. Vous pouvez simplement utiliser un éditeur de texte pour créer un fichier appelé .bashrc (sans extension) avec le contenu souhaité et l'enregistrer dans votre répertoire personnel (/Users/YourUserName/).

4
squircle

Je trouve que dans mon OS 10.6.5, les paramètres bash se trouvent dans "/ etc/bashrc". Je pense que ce sont les spécifications de niveau supérieur pour Shell.

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

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

J'ajoute normalement des alias dans le répertoire système bashrc afin que tous les utilisateurs puissent également y accéder. À moins qu'ils ne souhaitent pas utiliser vos raccourcis et vos alias.

Bonne chance!

3
geekborj

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
Sable