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


23

Posible duplicado:
diferencia entre .bashrc y .bash_profile

¿Cuál es la diferencia entre .profiley .bash_profile, y cuándo configuras cuál?

Es decir, si configuro el .bash_profile, ¿todavía necesito configurarlo .profile?

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.


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).


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.).


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 ...

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.