2

I added the following line to the end of my ~/.bashrc (This is on a Linode box) and logged out of my ssh session.

source ~/.profile

Now when I log in, the shell is unresponsive. I never get to the prompt and entering commands does nothing.

If I Ctrl-c then it closes the ssh connection. Ctrl-z does nothing either. I can't get access to the ~/.profile to try and see what the issue is.

How can I get the prompt back?

Napster_X
  • 3,333
  • 16
  • 20
duckyfuzz
  • 149
  • 7

2 Answers2

2

To get your shell back, just use this procedure.

Hope you remember the contents of .bashrc what were earlier there. It should be something like this:

# .bashrc

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

Put them into a file with the same name, .bashrc, on the machine from where you can access your Linode machine.

Now use this command:

 # scp .bashrc server:.

This will replace your modified .bashrc with this default one and you should be able to get your shell back.

Please let me know in case you face any issues with this.

Napster_X
  • 3,333
  • 16
  • 20
  • Yeah I was thinking of going this route but just wanted to check that there wasn't an obviously better way. Luckily there weren't many modifications and I found a [default bashrc](https://gist.github.com/leesmith/3057379). – duckyfuzz Mar 26 '13 at 04:38
  • Great. Glad to help. – Napster_X Mar 26 '13 at 06:54
  • using similar mechanism, you could first scp FROM the machine to another one, and thus have its real content, take out the offendign line, and scp it back on the machine. – Olivier Dulac Mar 26 '13 at 13:39
2

People already have asked you how to fix this. But why this has happened to you?

In Debian/Ubuntu, there's this piece of code in ~/.profile:

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

So, by default, ~/.profile is including ~/.bashrc. If you tell ~/.bashrc to include ~/.profile, you are creating an infinite loop.

Carlos Campderrós
  • 763
  • 2
  • 6
  • 17