Adicionado linha para bashrc, agora bash não está respondendo

2

Eu adicionei a seguinte linha ao final do meu ~/.bashrc (Isso está em uma caixa Linode) e desconectei da minha sessão ssh.

source ~/.profile

Agora, quando eu fizer login, o shell não responde. Eu nunca chego ao prompt e entrar com comandos não faz nada.

Se eu Ctrl-c, fecha a conexão ssh. Ctrl-z também não faz nada. Não consigo acessar o ~/.profile para tentar ver qual é o problema.

Como posso obter o aviso de volta?

    
por duckyfuzz 26.03.2013 / 04:54

2 respostas

2

Para recuperar seu shell, use este procedimento.

Espero que você se lembre do conteúdo do .bashrc que estava lá anteriormente. Deve ser algo assim:

# .bashrc

# Source global definitions
    if [ -f /etc/bashrc ]; then
        . /etc/bashrc
    fi

Coloque-os em um arquivo com o mesmo nome, .bashrc, na máquina de onde você pode acessar sua máquina Linode.

Agora use este comando:

 # scp .bashrc server:.

Isto irá substituir o seu .bashrc modificado por este padrão e você deverá ser capaz de recuperar o seu shell.

Por favor, deixe-me saber no caso de você enfrentar quaisquer problemas com isso.

    
por 26.03.2013 / 05:33
2

As pessoas já perguntaram como corrigir isso. Mas por que isso aconteceu com você?

No Debian / Ubuntu, há esse trecho de código em ~/.profile :

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

Portanto, por padrão, ~/.profile está incluindo ~/.bashrc . Se você disser ~/.bashrc para incluir ~/.profile , estará criando um loop infinito.

    
por 26.03.2013 / 09:24