How to set the PATH in Terminal?

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

  1. macrumors newbie

    Joined:
    Sep 13, 2010
    #1
    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:

    /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/Users/*******/src:/usr/X11/bin

    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. Moderator emeritus

    angelwatt

    Joined:
    Aug 16, 2005
    Location:
    USA
  3. macrumors 6502

    Joined:
    Jun 22, 2006
    #3
    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.
     
  4. Moderator

    balamw

    Staff Member

    Joined:
    Aug 16, 2005
    Location:
    New England
    #4
    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.

    http://stefaanlippens.net/bashrc_and_others

    B
     

Share This Page