Onde colocar material customizado .bashrc, em .bash_local?

4

Acabei de atualizar para o 11.10, e pedi que me perguntasse onde está agora a maneira preferida de colocar .bashrc bits personalizados?

Eu tenho alguns aliases, algumas variáveis env e um script python virtualenvwrapper, por exemplo, que eu quero executar como parte do meu .bashrc . Eu tenho estes sincronizados em um script em todas as máquinas armazenadas no Dropbox.

Eu costumava colocá-los na parte inferior de .bashrc e, em seguida, eu os colocava em um arquivo chamado .bash_profile de origem, mas agora vejo que .bashrc não mais origina .bashrc_local ou eu personalizo isso?), e noto que ele origina .bash_aliases e .bash_completion .

Então eu decidi que não existe no mo para colocar o material em .bash_aliases , pois parece mais limpo ter minhas customizações em um arquivo separado para o padrão.

Eu me assustei com o .profile , pois ele já tem coisas nele.

Sei que o que estou fazendo funciona, mas parece um pouco intuitivo colocar essas coisas em um arquivo chamado aliases quando não são todos os aliases.

Este é o lugar correto para isso?

    
por Ludo 14.10.2011 / 13:28

2 respostas

3

Os scripts de inicialização são um pouco de labirinto, não são?

Eu acredito que basicamente funciona que .profile é executado para shells de login - isto é, o que você obteria se você logasse remotamente - e .bashrc é usado para shells que não são de login, supondo que você esteja usando o bash. .profile sources .bashrc , portanto, em geral, você colocaria itens que sempre são usados em .bashrc , como adições ao caminho padrão e outras configurações de ambiente. Eu acredito que a convenção geral em sistemas * nix e bash é fazer a maior parte da customização em .bashrc ; Eu não vi .bash_aliases nas distribuições Linux da família Red Hat ou nos sistemas Unix que usei. Não me lembro de ter visto um .bash_local .

A maneira como o .bash_aliases é originado parece um bom modelo, por isso pode ser mais fácil fazer suas personalizações em outro arquivo, adicionando isso ao final de .bashrc :

# Local customized path and environment settings, etc.
if [ -f ~/.bash_local ]; then
    . ~/.bash_local
fi

Pode ser útil consultar /etc/skel , em que os scripts de usuário padrão são copiados para os diretórios iniciais de novos usuários e em /etc/profile e /etc/bash.bashrc , que são padrões de todo o sistema.

Acho que a suposição subjacente a tudo isso é que o usuário pode fazer o que o usuário quiser com cópias pessoais de .profile , .bashrc , etc., portanto, nenhuma suposição é feita sobre o que está ou não nelas. .

    
por bgvaughan 14.10.2011 / 15:09
2

Eu suspeito que .bashrc_local é uma invenção sua. Eu também tenho algo semelhante, com uma expressão como esta em ~/.bashrc

if [[ -r ~/.bashrc_local ]]; then
    . ~/.bashrc_local
fi

mas eu coloquei neste arquivo apenas customização específica para a máquina em questão, e deixei a customização comum a todas as minhas máquinas em ~/.bashrc , sincronizadas de alguma forma.

    
por enzotib 14.10.2011 / 15:10

Tags