/ 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


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.


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.


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


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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.