2010-05-30 21:03:42 +0000 2010-05-30 21:03:42 +0000
90
90

¿Dónde encontrar el archivo .bashrc en Mac OS X Snow Leopard and Lion?

Quiero instalar rvm en mi máquina de Snow Leopard.

Dice que necesito añadir una línea a mi archivo .bashrc (estoy usando bash) pero ¿dónde está mi archivo .bashrc?

Respuestas (5)

79
79
79
2010-06-01 17:26:31 +0000

En cuanto al problema con .bashrc arriba:

En la mayoría de los sistemas, ~/.bashrc sólo se usa cuando se inicia un shell interactivo no-login. Sin embargo, cuando se inicia un nuevo shell, a menudo es un shell interactivo login. Ya que este es un shell login, el .bashrc es ignorado. Para mantener el entorno consistente entre los shells de no login y de login, debes obtener el .bashrc de tu .profile o de tu .bash_profile.

Mira el Manual de Referencia de Bash, sección 6. 2 Archivos de inicio de Bash

Invocado como un shell de inicio de sesión interactivo, o con –login

Cuando se invoca Bash como un shell de inicio de sesión interactivo, o como un shell no interactivo con la opción –login, primero lee y ejecuta comandos del archivo /etc/profile, si ese archivo existe. Después de leer ese archivo, busca ~/.bash_profile, ~/.bash_login, y ~/.profile, en ese orden, y lee y ejecuta comandos del primero que exista y sea legible.

Se invoca como una shell interactiva que no es de login

Cuando se inicia una shell interactiva que no es de login, Bash lee y ejecuta comandos de ~/. bashrc, si ese archivo existe.

Entonces, típicamente, su perfil ~/.bash_ contiene la línea

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

después (o antes) de cualquier inicialización específica de inicio de sesión.

En mi Mac (Leopardo en ejecución), no había ninguna línea a la fuente ~/.bashrc. Tuve que añadir esta funcionalidad por mi cuenta.

En algunos sistemas y otros sistemas operativos, .bashrc se obtiene del /etc/profile global o /etc/bash_profile, o se hace usando los archivos de plantilla de /etc/skel.

Para ser honesto, la distinción entre .bashrc y .bash_profile no es bien entendida por la comunidad. Cuando muchos desarrolladores dicen “Añade esto a tu .bashrc”, lo que realmente quieren decir es “Añade esto a tu .bash_profile”. Quieren que la funcionalidad sea agregada a tu shell login (que es .bash_profile), no a tu shell non-login. En realidad, no suele importar y colocar la configuración en .bashrc es aceptable.

61
61
61
2011-12-20 23:51:49 +0000

Así que resulta que en Mac OS X Snow Leopard, así como en Mac OS X Lion, el archivo que se carga se llama .profile, no .bashrc.

Lo que quieres hacer es crear un archivo en ~/.profile y llamarlo .profile (si no existe ya).

Pon la información que necesites cargar con cada instancia de bash allí (Gracias, thepurplepixel).

Un par de notas al margen:

  1. El punto delante del archivo lo marca como invisible para el Finder y el comando ls por defecto. Para listar los archivos invisibles usando el comando ls de Terminal, use el -a como un parámetro como tal: ls -a
  2. El símbolo ~ representa /Users/YourUserName donde YourUserName es el nombre corto de su nombre de usuario.

Edit: Chris Page señala (correctamente) que cualquier cosa que coloque en un archivo .profile se aplicará a cualquier shell que esté usando (es decir, zhs, bash, etc.). Si quieres que el contenido afecte sólo a la shell bash, coloca el contenido en un archivo .bash_profile en lugar de un archivo .profile.

4
4
4
2010-05-30 21:05:13 +0000

Tienes que hacer tu propio .bashrc. Simplemente puedes usar un editor de texto para hacer un archivo llamado .bashrc (sin extensión) con el contenido que quieras y guardarlo en tu directorio principal (/Users/YourUserName/).

3
3
3
2010-11-26 08:02:07 +0000

Encuentro que en mi OS 10.6.5 la configuración de bash está en “/etc/bashrc”. Creo que estas son las especificaciones de alto nivel para el shell.

Sin embargo, necesitas una cuenta de root para modificarlo. Las especificaciones locales por usuario “~/.bashrc” deberían comenzar con el siguiente fragmento, para leer y cargar la configuración del bash a nivel de sistema:

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

Normalmente añado alias en el bashrc a nivel de sistema para que todos los usuarios puedan acceder a ellos también. A menos que no quieran usar tus atajos y alias.

¡Buena suerte!

1
1
1
2010-06-01 18:18:27 +0000

Usa el archivo .profile para añadir cualquier cosa que añadirías a un archivo .bashrc de linux.

Por ejemplo

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"