Resposta curta: tudo bem.
Existem muitos arquivos de usuário de inicialização porque um usuário pode decidir fazer login em uma conta de computador de várias maneiras diferentes, do console, com um shell interativo ou não interativo, com diferentes tipos de shells. Não é uma prerrogativa de todos os usuários, mas com a necessidade de manter uma compatibilidade com versões anteriores , acabou por complicar um pouco as coisas. : -)
-
Um diretório
profile.d
não deve estar em seu diretório home : o%/etc/profile.d
contém scripts com arquivos de inicialização específicos do aplicativo, que também são executados no tempo de inicialização por A concha. É um diretório válido para todos os usuários, por isso é criado sob o caminho/etc/
e não sob cada diretório pessoal do usuário. -
O arquivo
~/.bash_profile
é um dos arquivos de inicialização pessoal e, quando existe, é armazenado em cada home do usuário. Mas não é necessário que exista. Ele deve conter os comandos específicos do bash a serem executados ao iniciar um shell de login (~/.profile
também pode ser lido de diferentes shells, que geralmente entendem uma sintaxe diferente) do bash um).
Lendo mais na seção INVOCATION
de man bash
When bash is invoked as an interactive login shell (...) 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.
Portanto, se você tiver um arquivo ~/.bash_profile
, ele não será lido em ~/.profile
, se não for chamado (ou originado) em um dos outros arquivos.
Note que
When an interactive shell that is not a login shell is started, bash reads and executes commands from
/etc/bash.bashrc
and~/.bashrc
, if these files exist.
De alguma versão do Ubuntu 12 (e com certeza de 13.10) no .profile
é originado o ~/.bashrc
.
This can cause unexpected behavior when running login shells (such as when
ssh
into the machine for example) where the user would not expect to have~/.bashrc
sourced.
Referência:
- No Guia para iniciantes do Bash (não assim), a seção sobre os arquivos de inicialização do Shell
- Por que a fonte padrão ~ / .profile do Ubuntu ~ / .bashrc