Terminal: ¿Dónde está el archivo de inicio del shell?


Estoy siguiendo un tutorial llamado Comenzando un proyecto Django 1.4 de la manera Correcta, que da instrucciones sobre cómo usar virtualenv y virtualenvwrapper, entre otras cosas.

Hay una sección que dice:

Si está utilizando pip para instalar paquetes (y no puedo ver por qué no lo haría), puede obtener virtualenv y virtualenvwrapper simplemente instalando este último.

   $ pip install virtualenvwrapper

Después de que esté instalado, agregue las siguientes líneas a su shell archivo de inicio (.zshrc, .bashrc, .perfil, etc.).

   export WORKON_HOME=$HOME/.virtualenvs
   export PROJECT_HOME=$HOME/directory-you-do-development-in
   source /usr/local/bin/virtualenvwrapper.sh

Vuelva a cargar su archivo de inicio (por ejemplo, fuente .zshrc) y estás listo para ir.

Estoy ejecutando Mac OSX, y no conozco muy bien el Terminal. ¿Qué quiere decir exactamente el autor con shell's start-up file (.zshrc, .bashrc, .profile, etc)? ¿Dónde puedo encontrar este archivo, para que pueda agregar esas tres líneas?

También, ¿qué quiere decir con reload your start up file (e.g. source .zshrc)?

Agradecería una respuesta detallada, específica para OSX.

Author: chepner, 2013-02-27

4 answers

Probablemente estés usando bash así que solo agrega estas 3 líneas a ~/.bash_profile:

$ cat >> ~/.bash_profile
export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/directory-you-do-development-in
source /usr/local/bin/virtualenvwrapper.sh
^D

Donde ^D significa que escribe Control+D (EOF).

Entonces cierra la ventana de tu terminal y abre una nueva, o puedes "recargar" tu .bash_profile así:

$ source ~/.bash_profile
 31
Author: Paul R,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-07-26 17:38:27

Si usa bash, generalmente significa ~/.bash_profile.

En Terminal e iTerm los shells nuevos son shells de inicio de sesión por defecto, por lo que ~/.bashrc no se lee en absoluto. Si las instrucciones escritas para alguna otra plataforma le dicen que agregue algo a .bashrc, a menudo tiene que agregarlo a .bash_profile en su lugar.

Si ambos ~/.profile y ~/.bash_profile existen, solo se lee .bash_profile. .profile también es leído por otros shells, pero muchas de las cosas que agregarías a .bash_profile no funcionarían con ellos.

De / usr / share/doc/bash / bash.html:

Cuando bash se invoca como un shell de inicio de sesión interactivo, o como un shell no interactivo con la opción login login, primero lee y ejecuta comandos desde el 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 desde el primero que existe y es legible.

[...]

Cuando un shell interactivo que no es un shell de inicio de sesión es iniciado, bash lee y ejecuta comandos desde ~/.bashrc, si ese archivo existe.

 6
Author: user495470,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-05-01 15:35:03

Tengo Anaconda install, así que agrego estas 3 líneas a ~/.bash_profile

export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/Documents/Python
source /Users/Username/anaconda3/bin/virtualenvwrapper.sh 

Y luego recargar perfil por:

$ source ~/.bash_profile
 1
Author: Dmitry Lysenko,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-01-16 20:06:08

Utilizo un enfoque que creo que es fácil de mantener. También funciona bien si a veces usa sistemas Ubuntu, sin embargo, me aseguraré de abordar el requisito de OSX del OP en mi respuesta.

  1. Cree un archivo .aliases con su(s) alias (s) en su directorio personal, p. ej. ~/.aliases

  2. Ejecute este archivo desde su archivo .bashrc (esto se ejecuta cada vez para un nuevo proceso de shell) con source ~/.aliases. Esto es todo lo que realmente necesita hacer para Ubuntu por cierto.

  3. On OSX llama .bashrc desde tu archivo ~/.profile, es decir, tiene ~/.bash_profile contiene: source ~/.bashrc

 0
Author: Michael Durrant,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-10-06 00:51:36