Como recarregar a
.bash_profile
partir da linha de comando ?
Posso fazer com que o shell reconheça as alterações .bash_profile
saindo e efetuando login novamente, mas gostaria de poder fazer isso sob demanda.
Como recarregar a
.bash_profile
partir da linha de comando ?
Posso fazer com que o shell reconheça as alterações .bash_profile
saindo e efetuando login novamente, mas gostaria de poder fazer isso sob demanda.
Respostas:
Basta digitar source ~/.bash_profile
Como alternativa, se você gosta de salvar as teclas digitadas, pode digitar . ~/.bash_profile
alias reload='source ~/.bash_profile && echo "File .bash_profile reloaded correctly" || echo "Syntax error, could not import the file"';
. ~/.bash_profile
Apenas verifique se você não tem nenhuma dependência do estado atual lá.
.
comando neste caso?
.
é simplesmente um apelido para o source
comando.
.
é mais antigo do que source
é.
source
é uma implementação específica do bash de.
.
e source
são literalmente a mesma coisa no bash. No link: " source
é sinônimo de ponto / período ' .
' no bash, mas não no POSIX sh, portanto, para obter compatibilidade máxima, use o período."
Basta digitar:
. ~/.bash_profile
No entanto, se você deseja que a fonte seja executada automaticamente quando o terminal iniciar, em vez de executá-lo toda vez que você abrir o terminal, poderá adicionar . ~/.bash_profile
ao ~/.bashrc
arquivo.
Nota:
Quando você abre um terminal, o terminal inicia o bash no modo interativo (sem login), o que significa que ele será originado ~/.bashrc
.
~/.bash_profile
é originado apenas pelo bash quando iniciado no modo de login interativo . Normalmente, isso é apenas quando você faz login no console ( Ctrl+ Alt+ F1.. F6) ou se conecta via ssh
.
Você também pode usar este comando para recarregar o ~ / .bash_profile para esse usuário. Certifique-se de usar o traço.
su - username
Gosto do fato de que depois de editar o arquivo, tudo o que você precisa fazer é digitar:
. !$
Isso origina o arquivo que você acabou de editar no histórico. Consulte O que é bang dollar na festança .
cd
. .bash_profile
cd
. Não há necessidade ~
.
cd
- você pode simplesmente recarregá-lo no diretório em que está:. ~/.bash_profile
Se você não se importa de perder o histórico do seu terminal shell atual, também pode fazer
bash -l
Isso danificaria seu shell e abriria outro processo filho do bash. O -l
parâmetro diz ao bash para ser executado como um shell de logon, isso é necessário porque .bash_profile não será executado como um shell que não é de logon, para obter mais informações sobre isso, leia aqui
Se você deseja substituir completamente o shell atual, também pode:
exec bash -l
O exemplo acima não bifurca seu shell atual, mas o substitui completamente; portanto, quando você digita, exit
ele termina completamente, em vez de deixá-lo no shell anterior.
Adicione alias bashs="source ~/.bash_profile"
ao seu arquivo bash. Então você pode ligar bashs
da próxima vez
reset
- mais fácil de lembrar
se o .bash_profile não existir, tente executar o seguinte comando:
. ~/.bashrc
ou
source ~/.bashrc
em vez de .bash_profile. Você pode encontrar mais informações sobre bashrc
Gostaria de postar uma resposta rápida que, enquanto estiver usando source ~/.bash_profile
ou as respostas mencionadas acima, funcione, uma coisa a mencionar é que isso só recarrega seu perfil bash na guia ou sessão atual que você está visualizando. Se você deseja recarregar seu perfil bash em todas as guias / shell, precisará inserir este comando manualmente em cada uma delas.
Se você usa o iTerm, pode usar CMD⌘+ Shift+ Ipara inserir um comando em todas as guias atuais . Para terminal, pode ser útil fazer referência a esse problema ;
você só precisa digitar . ~/.bash_profile
consulte: /superuser/46139/what-does-source-do
Eu uso o Debian e posso simplesmente digitar exec bash
para conseguir isso. Não sei dizer se funcionará em todas as outras distribuições.
. .bash_profile
dentro do diretório inicial do Mac fará o trabalho. O mesmo que a resposta dada acima por 7urkm3n.
alias reload!=". ~/.bash_profile"
ou se você quiser adicionar logs através de funções
function reload! () {
echo "Reloading bash profile...!"
source ~/.bash_profile
echo "Reloaded!!!"
}
. ~/. bash_profile
nemsource ~/.bash_profile
Estou executando o Sierra e trabalhei nisso por um tempo (tentando todas as soluções recomendadas). Fiquei confuso e, por fim, tentei reiniciar meu computador! Funcionou
minha conclusão é que, às vezes, é necessário um hard reset
alias BASHRELOAD=". ~/.bash_profile"
. Se você fizer isso com frequência, poderá simplesmente usar o alias comobr
.