Iterm2 BrokenPipe Failed to exec /usr/bin:/bin:/usr/sbin:/sbin: No such file or directory PATH=/usr/bin:/bin:/usr/sbin:/sbin

bashitermterminal

Backstory: I've been given a lender computer from the school I'm attending and I was attempting to npm install global packages for my react-native project. I was able to install the packages, but my programs didn't appear to know how to actually access those globally installed packages. That's my theory at least. So I started going down the google rabbit hole …

The first error I was getting was:
expo command not found (expo being Expo CLI, the react-native related package I had install globally numerous times by now), so I went to the provided site and entered the suggested command: echo $PATH in terminal.

After running Echo $Path the above author said:

check if `/users/me/.npm-global/bin` is in your path.

The response from my machine was: /usr/bin:/bin:/usr/sbin:/sbin:

The author than proceeded to say:

If it isn’t there, you will need to add it to the path. 
Open up ~/.bash_profile then add the following line to the bottom:

Well, it appeared that I didn't have a ~/.bash_profile, I assume it said no such directory found or something to akin to that. I can't simulate this error anymore because well … my terminal at this time immediately crashes on startup.

So, I visited this stackExchange question which asked "How to create ~/.bash_profile and ~/.profile". I followed the steps from the top solution which by all accounts, seemed to successfully create the file.

With the file now seemingly made, I returned back to the original linked site and entered ~/.bash_profile which opened the file and "add[ed] the following line to the bottom:"

# NPM global installs
export PATH=$PATH:~/.npm-global/bin

Follow that I returned to the shell and entered: source ~/.bash_profile.
I don't have access (currently) to the error I was getting when I entered that command in the shell, but I believe the error was something related to the directory wasnt found.

Anyway, I changed something … I think(?) I added the line source ~/.bash_profile to the nano terminal window where I earlier entered the above command … but at this point I can even get back there to confirm that was the case.

So that's where I am now, I still can't access the globally installed files or at this point even open my terminal without it instantly closing.

On last thing, i entered usr/bin:/bin:/usr/sbin:/sbin in the iterm2 > preferences > profiles > general > command destination. That's exactly where I am now and why my iterm broken pipe error says what it says.

Best Answer

Question asker here ...

I had the fortunate luck of working through this in a screen share with a graduate from the school and the solution we found regarding my issue is that I had this in my .bash_profile file:

source ~/.bash_profile
export PATH=$PATH:~/.npm-global/bin

So, the immediate issue was the source ~/.bash_profile, this was causing the piping error and crashing all my terminals.

Q: How did we access this file if terminal was broken?

A: I went into vscode (any text editor will probably work just the same) and opened the files path. So, vscode > file > open > X's MacBook Pro > untitled > Users > X > clicked open. This opened all the files (including the hidden one we want access to) and opened the file named .bash-profile.

In the .bash-profile file I updated it from what was posted above to whats posted below and saved it.

export PATH=$PATH:"~/.npm-global/bin"