How to set the PATH in Terminal?

Discussion in 'Mac Programming' started by SBR210, Sep 14, 2010.

  1. SBR210 macrumors newbie

    Sep 13, 2010
    As a newbie to Bash and the Terminal, in connection with installing a new version of Ruby and various add-ons, I have been messing around with changing the PATH via various methods I've found on the internet, and trying to add a new directory to my PATH. Unfortunately, I cannot figure out how to set the PATH correctly. Here is what I understand so far:

    1. Bash first looks to ".bash_profile" in the home directory for PATH settings.
    2. If none, Bash then looks to ".bash_login" for PATH settings.
    3. If none, Bash then looks to ".profile".
    4. If none, Bash then looks to a system file in "/etc/profile" for default PATH settings.
    5. For a new shell after login, Bash looks for a ".bashrc" file.

    I cannot find any of the above files (I have Finder set to show hidden files already). Somehow, following some instructions from the internet without really knowing what I was doing over the past week I have set my PATH as follows:


    but I cannot find the file that is setting this PATH. I have tried creating a new ".bash_profile" shell file and putting it in various places such as "/bin" and "/usr/bin" but the file is not being read.

    - As a temporary workaround I tried using the command "source .bash_profile" upon login to set the PATH using the .bash_profile file that I created, but it does not work.
    - I am able to temporarily alter the path using the command "PATH=/usr/local/bin:$PATH" but this only lasts for an active shell; when I close out and reopen a new shell, it reverts to the default.

    So my questions are:
    Is it correct that there is a "/etc/profile" somewhere that is setting the default PATH? If so where is it? Should I alter it, or create a new ".bash_profile" somewhere to set the PATH? If not, where is my PATH being set? If I should create a new ".bash_profile", what exactly should go in it?

    Thanks in advance for any assistance.
  2. mmulin macrumors 6502

    Jun 22, 2006
    The reason, the files are not there, is that in the default installation, everything is sourced from the default profile. To customize, just create the necessary files. I don't recommend messing with the default profile files. They might get over written in future updates and the changes lost.

    Just put below in the ~/.profile file. Replace "<directory>" with your directory, the PATH should include. Adding more than one directory, separate them by column ":". This will add the missing directories to the default PATH. There is no need to list the directories which are already in the default PATH. Check those before with "echo $PATH".

    PATH=$PATH:<directory> ; export PATH
    (i.e. PATH=$PATH:/usr/local/bin:/opt/bin)

    One more note. ".profile" & ".bashrc" are essentially the same files. In my system I linked the first to the second to avoid ambiguity.
  3. balamw Moderator


    Staff Member

    Aug 16, 2005
    New England
    True only if you always use bash from a login shell.

    If your ~/.profile is full of stuff to make your interactive experience more pleasant that really doesn't matter to a bash script and will slow down its startup.


Share This Page