/ etc / profile vs ~ / .profile

13

Eu corro o ubuntu 12.04.1 LTS. E não consigo obter qual é o pedido / prioridade para carregar arquivos de perfil. Quando inicio o sistema e efetuo login usando a GUI, qual arquivo está carregado? E porque? E se executar o shell de login? Será o mesmo? Na verdade, agora não consigo entender por que o meu ~/.profilenão carrega quando o sistema é iniciado, porque aqui vejo:

https://help.ubuntu.com/community/EnvironmentVariables

sunprophit
fonte
Como você está testando se ~ / .profile está carregado?
Andrea Corbellini
Há variável de ambiente atualizada em ~ / .profile
sunprophit

Respostas:

3

Você pode definir uma variável em cada arquivo:

ORDER=${ORDER}+"/etc/profile"

respectivamente

ORDER=${ORDER}+"~/.profile"

e realizar uma

echo ${ORDER}

ver, o que estava envolvido e em que ordem. Claro que isso não lhe dirá se houve scripts diferentes que você perdeu.

Portanto, se você vir uma fonte mencionada, leia esse script para ver se um script origina outro e inclua-o também.

/etc/bash.bashrc e ~ / .bashrc e ~ / .bash_login vêm à mente, assim como itens de / etc / default.

Usuário desconhecido
fonte
Hm, $ ORDER está vazio, o que significa que nenhum deles está carregado?
sunprophit
Não sei por que $ ORDER estava vazio, talvez por causa de algum erro de sintaxe. Eu não sei muito sobre diferenças de traço e festança. Embora eu vá marcar a resposta como correta, porque ajudou a chegar onde está o problema.
sunprophit
7

Tudo depende de qual usuário você está tentando fazer login. O /etc/profilearquivo global é carregado para cada usuário , enquanto o arquivo é carregado ~/.profileapenas para o usuário.

~aponta para o diretório inicial do usuário atual. Portanto, se você o inserir /home/user-a/.profilee efetuar login como user-a, o arquivo global e o arquivo específico do usuário serão carregados (nessa ordem), enquanto que se você fizer o login user-bsem um .profilearquivo, ele carregará apenas o global.

gertvdijk
fonte
No perfil do usuário atual (~ / .profile), há parte que deve atualizar as variáveis ​​de ambiente. Quero dizer, não está em outro perfil. É o perfil deste usuário. Mas tentei a solução @user_unknown para testar o carregamento de perfis e parece que nenhum deles está carregado.
sunprophit
0

Ambos devem ser carregados e ~ / .profile deve ser carregado por último (o que significa que ele tem prioridade).

dobey
fonte
Então não tenho certeza do que está acontecendo. Se eu executá-lo explicitamente no terminal, ele carrega. Pode haver um problema durante o login e o resultado ~ / .profile não carrega, mas no terminal não há esses problemas. Posso verificar se o sistema tentou carregá-lo?
sunprophit
0

É minha culpa. Havia [[some_test]] no meu ~ / .profile e ele funciona bem no bash, mas acho que o dash executa alguns comandos pre_session_creation / post_session_creation no início da sessão e o dash não sabe [[keyword. Então, tudo foi carregado, mas parou com o erro.

sunprophit
fonte