.bashrc não executado ao abrir novo terminal

53

O código no .bashrc não é executado quando eu abro uma nova janela de terminal no Ubuntu 12.04. Eu notei isso ao criar um arquivo .bash_aliases. Os aliases não apareceram quando abri um novo terminal. No entanto, quando digito source .bashrc , os aliases aparecem.

.bashrc deve ser executado toda vez que eu abrir uma nova janela de terminal, certo?

Como faço isso acontecer?

    
por Selah 08.07.2012 / 19:45

5 respostas

94

Não é necessariamente executado; no topo do padrão .bashrc é este comentário:

# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples

Eu acredito que há uma opção para executar o terminal bash como um shell de login ou não. Com o Ubuntu, o gnome-terminal normalmente não é executado como um shell de login, então .bashrc deve ser executado diretamente.

Para shells de login (como os terminais virtuais), normalmente o arquivo ~/.profile é executado, a menos que você tenha ~/.bash_profile ou ~/.bash_login , mas eles não estão lá por padrão. Por padrão, o Ubuntu usa apenas .profile.

O padrão ~/.profile tem isso:

if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME/.bashrc" ]; then
        . "$HOME/.bashrc"
    fi
fi

Isso executará .bashrc, se estiver disponível - supondo que $ BASH_VERSION esteja presente em seu ambiente. Você pode verificar isso digitando o comando echo $BASH_VERSION , e ele deve exibir algumas informações sobre o número da versão - ele não deve ficar em branco.

    
por Marty Fried 08.07.2012 / 21:07
12

No meu caso, simplesmente as linhas .bashrc loader estavam faltando em .bash_profile

# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
    . "$HOME/.bashrc"
fi

Eu adicionei manualmente e funcionou com o meu login recente

    
por user3584014 06.05.2016 / 10:30
4

Se $BASH_VERSION não estiver definido, tente usar o comando chsh para definir seu shell como /bin/bash .

Eu tive um problema parecido com 12.04 LTS, e a nova conta de usuário tinha o shell padrão definido como /bin/sh , que era a causa do problema.

    
por evan_b 11.11.2013 / 06:53
4

.bash_profile contém configuração para o shell bash. Quando você abre um terminal, ele primeiro lê e executa comandos de ~/.bash_profile . Então você pode adicionar o seguinte em .bash_profile para configurar o shell de acordo com bashrc.

. ~/.bashrc
    
por SD. 10.01.2017 / 05:42
0

Em vez de ir até lá, basta ir em Edit -> Profile Preferences -> Title and Command -> "Run a custom command instead of my shell" e na caixa de comando Personalizada, escrever bash e fechá-lo. Da próxima vez que você abrir o terminal, ele também será executado automaticamente.

    
por Furqan Ali 18.12.2016 / 19:57

Tags