Estou basicamente colocando todas as minhas configurações no meu .bashrc e quando eu estava usando o zsh estava tudo no meu .zshrc.
O instalador do Rust acabou de me informar que adicionou a nova instalação ao meu PATH modificando .profile.
Quando as coisas devem entrar ~/.profile
?
Ele está apenas fazendo isso porque não sabe qual shell estou usando ou todas as configurações gerais devem estar em .profile?
.profile
é lido por cada shell de login,.xxxrc
é lido por cada shell interativo após a leitura.profile
.Você precisa decidir-se dependendo do que você gostaria de adicionar.
Uma boa idéia é colocar tudo o que define as variáveis de ambiente exportadas e, assim, propaga para sub shells em .profile.
Coisas que não são propagadas devem estar em .bashrc ou em qualquer outro lugar que seu shell examine. Isto é, por exemplo, alias e definições de função.
O Bash tem uma lógica bastante complicada em quais scripts ele executa e quando.
Mas basicamente se resume a:
ulimit
s), geralmente precisará defini-las apenas uma vez em cada login, portanto, seria mais eficiente colocá-las em.profile
vez de.bashrc
.PATH
com uma construção comoPATH=$PATH:/some/directory
), colocar essa configuração.bashrc
faria com que essa adição acontecesse uma segunda vez sempre que você iniciasse outro processo de shell, o que seria bobo e desperdício. Por exemplo, se você definirPATH=$PATH:/some/directory
em.bashrc
, ele funcionará bem em seu shell principal. Mas quando você inicia um editor e usa sua funcionalidade de escape do shell, pode descobrir que seu PATH agora tem um valor como...:/some/directory:/some/directory
. Cada camada de shells filho adicionaria o diretório ao PATH outra vez. As configurações aditivas e herdáveis geralmente são mais bem colocadas em arquivos.profile
..bashrc
. Se você os definiu em.profile
, poderá encontrá-los não disponíveis em shells iniciados usando a funcionalidade de escape do shell em vários aplicativos. (Isso também significa que você provavelmente desejará adicionar um comando para originar o seu.bashrc
no final do seu.profile
para que o shell de login principal da sessão também obtenha essas definições, a menos que o padrão/etc/profile
ou padrão da sua distribuição.profile
já forneça essa funcionalidade.)Com a interface gráfica do usuário, há mais uma complicação. A sessão da GUI geralmente irá fornecer o conteúdo
.profile
ou equivalente no login (porque o respectivo script de inicialização da sessão é executado como um shell de login), portanto, quaisquer configurações herdáveis feitas lá geralmente serão herdadas pelo ambiente de desktop e, por sua vez, qualquer aplicativo que é iniciado usando ícones ou menus da área de trabalho.Quaisquer janelas de terminal dentro de uma sessão X11 GUI podem ser configuradas de duas maneiras:
.profile
ou equivalente quando aberta..bashrc
ou equivalentes. As configurações herdáveis são herdadas da sessão de login da GUI principal, por meio de processos do ambiente de desktop/gerenciador de janelas.