How do I edit $PATH (.bash_profile) on OS X?
Asked Answered
S

11

285

I am trying to edit an entry to PATH, as I did something wrong.

I am using Mac OS X v10.10.3 (Yosemite)

I have tried:

touch ~/.bash_profile; open ~/.bash_profile

But the file editor opens with nothing inside.

My problem:

I am trying to install ANDROID_HOME to my PATH

I misspelled it, but when I closed the terminal and went back it was gone, so I tried again:

export ANDROID_HOME=/<installation location>/android-sdk-macosx
export PATH=${PATH}:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools

This time, I typed the command correctly but, when I closed the terminal, my settings disappeared again.

How do I execute my desired settings?

If I was to edit bash.profile, how would I enter the above code?

Sapotaceous answered 26/5, 2015 at 14:17 Comment(6)
Use vi ~/.bash_profile or subl ~/.bash_profile or mate ~/.bash_profile, depending on your favourite editor.Pithecanthropus
just tried nano ~/.bash_profile, it loads, but there is nothing insideSapotaceous
Sounds like .bash_profile is empty/missing then.Pithecanthropus
For newbies like, these notes will help: 1. ~/.bash_profile means it's located in the root directory. ~ means root directory. 2. files prefixed with . are invisible to ls command. They are kind of like hidden files, files the normal user doesn't really need to see. Our case here is an exception. To be able to see it you can do ls -a 3. touch will create a file at the specified directory if it doesn't exist. It it does exist then nothing will happenEngird
4. and obviously open will open it with your default texteditor. 5. As a result doing touch ~/.bash_profile from any directory will work. because your path is not relativeEngird
@Honey: ~ means home (i.e., $HOME), not root (i.e., /).Mailer
A
508

You have to open that file with a text editor and then save it.

touch ~/.bash_profile; open ~/.bash_profile

It will open the file with TextEdit, paste your things and then save it. If you open it again you'll find your edits.

You can use other editors:

nano ~/.bash_profile
mate ~/.bash_profile
vim ~/.bash_profile

But if you don't know how to use them, it's easier to use the open approach.


Alternatively, you can rely on pbpaste. Copy

export ANDROID_HOME=/<installation location>/android-sdk-macosx
export PATH=${PATH}:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools

in the system clipboard and then in a shell run

pbpaste > ~/.bash_profile

Or alternatively you can also use cat

cat > ~/.bash_profile

(now cat waits for input: paste the two export definitions and then hit Ctrl + D).

Angry answered 26/5, 2015 at 15:31 Comment(7)
There are issues using things like cat to write to files when the text contains references to environment variables as it means those references need to be escaped. It's must more usual to use a text editor.Pithecanthropus
What would it mean if I enter "touch ./bash_profile" (it says nothing) then "open .bash_profile" and it tells me that file does not exist?Bundesrat
if you are using Catalina, follow the steps outlined below : mkyong.com/maven/install-maven-on-mac-osx/…Lingo
Replace bash_profile with zshrc from this answerBelew
getting an empty file using all methods . ??Incorrupt
@Incorrupt if you have never edited this file before, it will be empty. Just add what you needBelew
nano ~/.bash_profile helped me. ThanksHiram
L
136

A bit more detailed for beginners


Before you begin with .bash_profile on Mac, please be aware that since macOS Catalina Zsh (z shell) is the default shell. Therefore stuff we used to put in the .bash_profile now belongs to the .zshenv or the .zshrc file.

Note about .zshenv and .zshrc (source)

  • .zshenv: invocations of the shell. Often contains exported variables that should be available to other programs. For example, $PATH.
  • .zshrc: Sourced in interactive shells only. It should contain commands to set up aliases, functions, options, key bindings, etc.

STEP 1

Make sure the .bash_profile file exists (or the .zshenv of course). Remember that the .bash_profile file isn't there by default. You have to create it on your own.

Go into your user folder in finder. The .bash_profile file should be findable there. -> HD/Users/[USERNAME]

Remember: Files with a point at the beginning '.' are hidden by default.

To show hidden files in macOS Finder:

  • Press Command+Shift+.

If it's not existing, you have to create .bash_profile on your own.

Open terminal app and switch into user folder with simple command:

cd

If it's not existing, use this command to create the file:

touch .bash_profile

STEP 2

If you can't memorise the nerdy commands for save and close in vim, nano etc (the way recommended above) the easiest way to edit is to open .bash_profile (or the .zshenv) file in your favored code editor (Sublime Text, Visual Studio Code, BBEdit etc.).

Finder -> User folder. Right click -> Open With : Visual Studio Code (or other code editor). Or drag it on app in dock. And there you can edit it, pass export commands in new lines.

Lazarus answered 23/4, 2016 at 7:47 Comment(4)
I've personally found accessing "hidden" files normally to be a plus with emacs...Sandstone
I updated the way, to show hidden files in Mac OS's Finder. Press: Command + Shift + .Lazarus
For some reason, touch did not create the file, but I used cat to do it as in Alessandro's answer.Bundesrat
In other words, what you want to do now is touch ~/.zshrc; open ~/.zshrcBelew
H
85

If you are using macOS v10.15 (Catalina), you need to update the .zshrc file instead of file .bash_profile or .profile.

Hoggish answered 10/11, 2019 at 6:59 Comment(5)
Wow, i've been going crazy trying to figure out why i can't update bundler and why my system is looking for the wrong path for ruby. Should i copy paste my bash_profile to zshrc?Ecumenicalism
Im using catalina, but I dont find that file, can you explain what is the directory ?Boff
WTF, this is crazyness!Haight
You need to make sure your terminal is now zsh with chsh -s /bin/zsh. That will activate your terminal to automatically be zsh. Then you can make changes in ~/.zshrc or ~/.zprofile.Heigho
THANK YOU. If you don't want to type everything again, you can simply do: mv .bash_profile .zshrcRackety
O
25

For Mac OS, step by step:

  1. First of all, open a terminal and write it: cd ~/

  2. Create your Bash file: touch .bash_profile

    You created your ".bash_profile" file, but if you would like to edit it, continue reading with step 3.

  3. Edit your Bash profile: open -e .bash_profile

    After that you can save from the top-left corner of screen: FileSave

  4. Done!

Oops answered 1/3, 2019 at 3:41 Comment(1)
touch ~/.bash_profile solved it. Thanks.Hiram
V
11

Set the path JAVA_HOME and ANDROID_HOME. You have to open terminal and enter the below cmd.

touch ~/.bash_profile; open ~/.bash_profile

After that, paste the below paths in the base profile file and save it:

export ANDROID_HOME=/Users/<username>/Library/Android/sdk 
export PATH="$JAVA_HOME/bin:$ANDROID_HOME/platform-tools:$ANDROID_HOME/emulator:$PATH"
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_221.jdk/Contents/Home
Vesicle answered 8/5, 2020 at 12:31 Comment(1)
Re "base profile file": Do you mean "the Bash .profile file"?Fleece
M
10

For beginners: To create your .bash_profile file in your home directory on macOS, run:

nano ~/.bash_profile

Then you can paste in the following:

https://gist.github.com/mocon/0baf15e62163a07cb957888559d1b054

As you can see, it includes some example aliases and an environment variable at the bottom.

One you're done making your changes, follow the instructions at the bottom of the Nano editor window to WriteOut (Ctrl + O) and Exit (Ctrl + X). Then quit your Terminal and reopen it, and you will be able to use your newly defined aliases and environment variables.

Meredi answered 31/5, 2017 at 16:14 Comment(0)
D
8

Just type open ~/.bash_profile on terminal, you can edit it.

Discipline answered 22/6, 2021 at 19:31 Comment(0)
C
5

Determine which shell you're using by typing echo $SHELL in Terminal.

Then open/create correct rc file. For Bash it's $HOME/.bash_profile or $HOME/.bashrc. For Z shell it's $HOME/.zshrc.

Add this line to the file end:

export PATH="$PATH:/your/new/path"

To verify, refresh variables by restarting Terminal or typing source $HOME/.<rc file> and then do echo $PATH

Charwoman answered 13/6, 2020 at 20:23 Comment(0)
L
2

Mac OS X doesn't store the path in file .bash_profile, but file .profile, since Mac OS X is a branch of the *BSD family. You should be able to see the export blah blah blah in file .profile once you do cat .profile on your terminal.

Loom answered 28/5, 2015 at 2:43 Comment(1)
As of Yosemite (10.10) this is no longer true, if it ever was. Bash has been the default shell on macOS for a long time already. Historically, *BSD had csh which is incompatible, and uses .cshrc and not .profile (though if you need to use several Bourne-compatible shells, it makes sense to have common settings in .profile).Fishery
C
2

For me, my macOS is macOS v10.14 (Mojave). And I was facing the same issue for three days and in the end, I just wrote the correct path in the .bash_profile file which was like this:

export PATH=/Users/[YOURNAME]/development/flutter/bin:$PATH
  • Note 1: if you don't have filr .bash_profile, create one and write the line above
  • Note 2: zip your downloaded Flutter SDK in [home]/development if you copy and paste this path
Clypeus answered 22/7, 2019 at 13:25 Comment(1)
This. Also make sure to close the terminal and open a new one to see flutter commands workInterrupt
A
2

The simplest answer is:

Step 1: Fire up Terminal.app

Step 2: Type nano .bash_profile – This command will open the .bash_profile document (or create it if it doesn’t already exist) in the easiest-to-use text editor in Terminal – Nano.

Step 3: Now you can make a simple change to the file. Paste these lines of code to change your Terminal prompt.

export PS1="___________________    | \w @ \h (\u) \n| => "

export PS2="| => "

Step 4: Now save your changes by typing Ctrl + O. Hit Return to save. Then exit Nano by typing Ctrl + X

Step 5: Now we need to *activate your changes. Type source .bash_profile and watch your prompt change.

That's it! Enjoy!

Afar answered 21/8, 2020 at 9:57 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.