Qual é a diferença entre .profile e .bash_profile e quando você configura quais? (Mac) [duplicado]

23

Possível duplicado:
diferença entre .bashrc e .bash_profile

Qual é a diferença entre .profilee .bash_profile, e quando você configura qual?

Ou seja, se eu configurar o .bash_profile, ainda preciso configurar .profile?

Imran
fonte

Respostas:

12

Supondo que bashseja seu shell padrão, as diferenças são descritas na 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.

Há mais detalhes na página do manual que aborda o modo de compatibilidade com shell POSIX, de onde .profilevem. Leia a seção da página de manual inteira para todos os detalhes.


fonte
no Ubuntu 18.04, abrir uma nova janela do Terminal não chama .profileapenas .bashrc:(
CpILL
5

Se você configurar .bash_profile, também não precisará configurar .profile.

Gosto de manter meus próprios aliases e comandos .profilepara que, se eu estragar alguma coisa, saiba que sempre posso excluir o .profilearquivo sem afetar o sistema em geral ou outros aplicativos que modificam .bash_profile(como MacPorts).

Para usar a .profile, pode ser necessário incluir a linha source ~/.profilena sua, .bash_profilepara que o .profilearquivo seja lido (consulte a resposta de Ned Deily).

speedofmac
fonte
3

.profile é executado pelo bash quando você obtém um processo shell normal - por exemplo, você abre uma ferramenta de terminal. .bash_profile é executado pelo bash para shells de login - então é quando você telnet / ssh em sua máquina remotamente, por exemplo. Por exemplo, se você ssh remotamente em uma máquina (digamos que você abra um X Terminal), será executado inicialmente .bash_profile. Se nesse XTerminal você digitar "xterm" e gerar outro X Terminal, o .profile será executado para a segunda instância do XTerminal. Os arquivos residem no seu diretório pessoal (~). Se não me engano, por padrão, ambos executam ~ / .bashrc, para que você possa editar isso para definir configurações / variáveis ​​comuns para shells de login e não-logon (por exemplo, configuração PATH, alguns apelidos / atalhos etc.).


fonte
no Ubuntu 18.04 abrindo uma nova janela do Terminal não chama .profile?
CpILL
1

para a configuração rápida e simples (onde você não quer complicar as coisas), basta configurar tudo no seu ~ / .profile. Somente quando você tiver alguns problemas (mas provavelmente nunca nunca) aprenderá mais sobre o .bash_login ou o .bash_profile;)

Também estou no OS X e nunca precisei de .bash_profile ou .bash_login e estou usando apenas .profile, mas sua milhagem pode variar ...

jm666
fonte