Eu fiz algumas leituras sobre inicialização do Linux, etc. e notei que no meu diretório pessoal não há uma pasta profile.d
:
/home/user/profile.d/ # Doesn't exists
e nem um arquivo .bash_profile
:
/home/user/.bash_profile # Doesn't exists
existe uma razão para isso?
Ubuntu 15.04, gnomo
Responder1
Resposta curta:está tudo bem, então.
Existem muitos arquivos de usuário de inicialização porque um usuário pode decidir fazer login em uma conta de computador de muitas maneiras diferentes, desde o 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 umcompatibilidade com versões anterioresacabou de complicarum poucoas coisas. :-)
Um diretório
profile.d
não deveria estar no seu diretório inicial:
/etc/profile.d
contém scripts com arquivos de inicialização específicos do aplicativo, que também são executados no momento da inicialização pelo shell. É um diretório válido para todos os usuários, para isso é criado no/etc/
caminho e não no diretório inicial de cada usuário.O arquivo
~/.bash_profile
é um dos arquivos pessoais de inicialização e quando existe é armazenado na home de cada 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 em diferentes shells, que geralmente entendem uma sintaxe diferente da do bash).
Lendo mais na INVOCATION
seção deman bash
Quando o bash é invocado como um shell de login interativo (...)ele primeiro lê e executa comandos do arquivo
/etc/profile
, se esse arquivo existir.
Depois de ler esse arquivo, ele procura~/.bash_profile
,~/.bash_login
, e~/.profile
,naquela ordem,e lê e executa comandos do primeiro que existe e é legível.
Portanto, se você tiver um ~/.bash_profile
arquivo, ele não será lido ~/.profile
, se não for chamado (ou originado) em um dos outros arquivos.
Observe que
Quando um shell interativo que não é um shell de login é iniciado, bash lê e executa comandos de
/etc/bash.bashrc
e~/.bashrc
, se esses arquivos existirem.
De alguma versão do Ubuntu 12 (e com certeza a partir de 13.10) .profile
é originado o arquivo ~/.bashrc
.
Isso pode causar um comportamento inesperado ao executar shells de login (como quando
ssh
estiver na máquina, por exemplo) onde o usuário não esperaria ter~/.bashrc
origem.
Referência:
- No Bash (not so) Beginner Guide, a seção sobre oArquivos de inicialização do shell
- Por que o padrão ~/.profile source ~/.bashrc do Ubuntu?