Reverse exec bash

7

Estou usando o Debian e hoje eu digitei:

exec bash

no meu terminal e de alguma forma o user@xxx mudou para bash-4.4 .

Como obtenho de volta o user@xxx ? Eu acho que é melhor para mim porque, por exemplo, mostra o caminho para a minha pasta atual, etc ...

    
por KronwarsCZ 06.04.2018 / 14:16

2 respostas

22
exec bash -l

Isto irá substituir a atual sessão do shell com um bash shell iniciado como um shell de login. Um shell de login lerá seu .bash_profile (ou .bash_login ou .profile , o que encontrar primeiro) e outros arquivos onde seu prompt pode ser definido.

Com exec bash , você substituiu a sessão atual do shell por um shell interativo. Isso lerá .bashrc do seu diretório pessoal. Se você não definir seu prompt lá, você receberá o prompt bash padrão.

Sem o exec , você teria conseguido apenas exit para voltar à sua antiga sessão de shell. Com o exec , a sessão antiga desapareceu.

Você também pode simplesmente sair do shell e iniciar um novo.

    
por 06.04.2018 / 14:19
0

O user@xxx é chamado de "prompt". É definido pela variável de ambiente PS1 . No bash, o padrão é bash-<version> , que é totalmente inútil, mas, em princípio, um arquivo de configuração do bash deve sempre configurá-lo para algo melhor.

Um caso comum em que você obteria isso é quando você acabou de criar um arquivo ~/.bashrc que não inclui /etc/profile . Sem esse arquivo, o bash estava voltando para /etc/profile e você estava obtendo a configuração padrão do seu sistema. Com um ~/.bashrc vazio ou minimalista, apenas sua própria configuração é carregada e você não obtém o benefício do que sua distro ou seu sysadmin colocou em /etc/profile .

Solução: adicione isso ao seu ~/.bashrc :

if [ -f /etc/profile ]; then
    . /etc/profile
fi

Como alternativa, defina seu prompt adicionando algo assim (após o snippet acima):

PS1="\u\h@\$ "

(Você pode personalizar o que aparece no prompt, torná-lo colorido e com ferramentas como link )

    
por 06.04.2018 / 18:32

Tags