Reinicie completamente o Bash


18

Existe uma maneira de reiniciar completamente o Bash, recarregar .bashrce assim por diante .profile? Gostaria de garantir que minhas alterações funcionassem corretamente após a edição desses arquivos.

Respostas:


32

Faça com que ela se substitua por si mesma.

exec bash -l

Observe que isso não afetará coisas como as variáveis ​​exportadas ou cwd.


Bom, mas eu gosto especialmente de fazer isso, a fim de verificar e ver se o meu PATHestá sendo definido como eu quero ou a minha PS1, etc.
Naftuli Kay

11
Retire o exece você obtém um shell que origina os arquivos que você deseja. Então, exitquando você terminar de verificar.
Arcege 17/10/11

@TK: Quaisquer variáveis ​​que você atribuir terão precedência sobre as sobras do shell anterior.
Ignacio Vazquez-Abrams

Então, isso funcionará para alterar meu prompt do Bash? Ou seja, ele recarregará meu prompt do bash sempre que eu o executar?
Naftuli Kay

Contanto que você esteja configurando $PS1os arquivos de inicialização do bash, sim.
Ignacio Vazquez-Abrams

9

Sugiro com urgência que efetue login em uma janela / tela separada. Dessa forma, você ainda terá uma sessão de trabalho se algo der errado com suas alterações nos arquivos de inicialização. Além disso, você tem certeza de ter um ambiente limpo.

Razão: eu vi muitas pessoas se trancando em um sistema devido a um simples erro de digitação em seu .profile (ou algo assim).


+10, um shell limpo onde você pode alterar as edições é essencial.
Sardathrion - Restabelece Monica

Estou em um DE, então não deve ser tão ruim, Bauhaus sim, tenha cuidado.
Naftuli Kay 17/10/11

3

Se seu objetivo é simplesmente ler os arquivos modificados novamente, você não precisa reiniciá-lo. Você pode simplesmente obtê-lo.

source filename

ou

. filename # notice the dot

Observe que isso não fornecerá um "estado limpo" no sentido de não desabilitar nenhuma variável definida ou função definida ...


2
su -l yourOwnUserName

Irá abrir um novo shell para o yourOwnUserNameusuário com todas as configurações recarregadas. Isso é independente do shell, pois se refere às configurações do sistema, não ao seu shell específico. Ele também carrega algumas configurações em todo o sistema que bash -lnão são (como grupos de usuários).


nota importante: "um shell novo" aqui significa um shell dentro do shell existente, portanto, você está apenas aninhando conchas, não substituindo a original. A resposta aceita faz isso corretamente.
underscore_d
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.