Macos – How to reset Bash on Mac OSX, .bash_profile corrupted and bash no longer works


I am on a MacBook Pro, running the latest version of Mountain Lion.

I really need some help, I have managed some how to damage my .bash_profile (I think) so that every time I open up the terminal I get the error listed below.

-bash: export: `/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/go/bin': not a valid identifier
-bash: export: `/Users/rob/Applications/sbt/bin:': not a valid identifier
env: bash: No such file or directory
env: bash: No such file or directory
env: bash: No such file or directory
env: bash: No such file or directory
env: bash: No such file or directory
-bash: tar: command not found
-bash: grep: command not found
-bash: cat: command not found
-bash: find: command not found

I am not sure what has happened, I have no sudo, cd or any normal commands. The only way I have been able to get to any of the main directories is through the go to folder command in finder and try to find the file to no avail.

To top it all off I think I created a file that might be causing the issue, I wanted to edit the .bash_profile so I typed

sudo nano ./bash_profile

This open a new file in nano which I think was then saved. After this I opened the real .bash_profile to add in the path for node.js.

If I can get to the .bash_profile I think I can get it back on track but I can't find it, should I reinstall bash? If so how would I do that on a mac, I tried using

brew install bash

to which I get

-bash: brew: command not found

Best Answer

Just putting all my comments together for an answer:

First thing you should do is change the shell, this way you can set a shell that will not load the bash init-scripts (.bashrc, .bash_profile) - how to do this for the Mac OS X terminal app can be seen here: Apple Support

Now you should be able to open a terminal again and use your favourite command-line editor to open the .bash_profile file (e.g. nano or vi):

In this file you have to reset your PATH variable that is used by the terminal to find the programs it can execute.

This can be done with the following two lines:

PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:$PATH" # Make sure to use double quotes not single quotes And on a new line 
export PATH

This will first set the directories that you want to have on your PATH and the export this PATH to make it available to all programs started from this shell (via export).