¿Cuál es la diferencia entre .profile y .bash_profile, y cuándo se configura cuál? (Mac) [duplicado]

Respuestas:

12

Suponiendo que bashes su shell predeterminado, las diferencias se describen en la bashpágina de manual ( man bash):

   When bash is invoked as an interactive login shell, or as  a  non-interac-
   tive  shell  with the --login option, it first reads and executes commands
   from the file /etc/profile, if that file exists.  After reading that file,
   it  looks  for  ~/.bash_profile,  ~/.bash_login,  and  ~/.profile, in that
   order, and reads and executes commands from the first one that exists  and
   is readable.  The --noprofile option may be used when the shell is started
   to inhibit this behavior.

Hay más detalles en la página del manual que cubre el modo de compatibilidad de POSIX-shell, que es de donde .profileviene. Lea toda la sección de la página man para todos los detalles.


fuente
en Ubuntu 18.04 abrir una nueva ventana de Terminal no .profilesolo llama .bashrc:(
CpILL
5

Si configura .bash_profile, tampoco necesitará configurarlo .profile.

Me gusta mantener mis propios alias y comandos .profilepara que si estropeo algo, sé que siempre puedo eliminarlo .profilesin afectar el sistema en general u otras aplicaciones que modifiquen .bash_profile(como MacPorts).

Para usar a .profile, es posible que deba incluir la línea source ~/.profileen su .bash_profilepara que .profilese lea el archivo (consulte la respuesta de Ned Deily).

speedofmac
fuente
3

.profile se ejecuta mediante bash cuando obtiene un proceso de shell normal, por ejemplo, cuando abre una herramienta de terminal. .bash_profile es ejecutado por bash para shells de inicio de sesión, por lo que es cuando, por ejemplo, hace telnet / ssh en su máquina de forma remota. Por ejemplo, si ssh remotamente en una máquina (digamos que abre una Terminal X), inicialmente se ejecutará .bash_profile. Si en ese XTerminal escribe "xterm" y genera otro X Terminal, se ejecutará .profile para la segunda instancia de XTerminal. Los archivos residen en su directorio de inicio (~). Si no me equivoco de forma predeterminada, ambos ejecutan ~ / .bashrc para que pueda editarlo para configurar configuraciones / variables comunes para shells de inicio de sesión y no inicio de sesión (por ejemplo, establecer PATH, algunos alias / accesos directos, etc.).


fuente
en Ubuntu 18.04 abrir una nueva ventana de Terminal no llama .profile?
CpILL
1

para la configuración rápida y simple (donde no quieres complicar las cosas) simplemente configura todo en tu ~ / .profile. Solo cuando tenga algunos problemas (pero probablemente nunca lo hará), obtenga más información sobre .bash_login o .bash_profile;)

También estoy en OS X, y nunca necesité .bash_profile o .bash_login y solo uso .profile, pero su kilometraje puede variar ...

jm666
fuente