Por que o .profile não é fornecido ao abrir um terminal?

36

Acabei de instalar o Ubuntu 14.04.1 LTS.

De acordo com .profile,

# ~/.profile: executed by the command interpreter for login shells. 
# This file is not read by bash, if ~/.bash_profile or ~/.bash_login exists.

Não há ~ / .bash_profile ou ~ / .bash_login.

Parece não ter origem em .profile ao abrir um terminal.

  1. Por que não gera .profile ao abrir um terminal?
  2. Por que o .profile existe se não é fornecido?
  3. Como sei / controle o que é adquirido quando um novo terminal é aberto?
  4. Quando um novo terminal é aberto, ele faz um "login"?
  5. Onde é um bom lugar para adicionar $ HOME / bin ao meu caminho? .bashrc? Isso causará um problema porque .profile tem o mesmo código?
B Seven
fonte

Respostas:

34
  1. Como os terminais geralmente não executam shells de login por padrão. Eles também costumam ter opções para executar shells de login, que são de origem .profile.
  2. Controlar o comportamento dos shells de login.
  3. Depende do shell. Para bash, consulte o conjunto de arquivos de inicialização .
  4. Não em algum sentido (atualizando registros de login, por exemplo).
  5. Se você tem uma pasta chamada binno $HOME, o padrão .profilepara o Ubuntu faz adicioná-lo ao seu PATH. Como .profileé originário do logon (mesmo com um logon da GUI), ele deve fazer parte dos PATHshells de não logon iniciados após um novo logon. Não está errado se um diretório aparecer duas vezes PATH, consulte esta pergunta de U&L para obter detalhes.
muru
fonte
3
OK, agora faz sentido. É necessário fazer login novamente na GUI para ver as alterações no .profile.
B Seven
1
@BSeven, você sempre pode obtê-lo manualmente para cada shell da linha de comando: . .profileou source .profile.
Muru
. .profileé legal e eu nunca vi isso antes. Não foi possível encontrar muitas informações sobre o comando período. Você pode fornecer uma referência e links para outros atalhos úteis? Obrigado!
B Seven
1
@BSeven de comandos shell como .ou source, você pode usar help: help ., por exemplo. Em geral, consulte o Guia do Iniciante do TLDP Bash, Capítulo 3 . O Guia do Iniciante do Bash é um pouco datado em alguns lugares, mas bom para um ponto de partida. Ou veja outros links em uma das minhas outras respostas .
Muru
8

Eu descobri que tinha que editar o perfil padrão. No terminal, clique em Preferências> Perfis> Editar> Comando> Executar comando como shell de login

Posteriormente, novos terminais forneceriam o script .profile .

insira a descrição da imagem aqui

Billious
fonte
1
IIUC, isso é um hack, porque normalmente o .profile deve ter sido originado antes de iniciar o terminal da GUI e é redundante obtê-lo novamente cada vez que você gera uma janela do terminal.
Mu Mind