title: Other than $PATH, how are terminal commands added in OSX?
body: <p>When I <code>echo $PATH</code> in terminal, I see the only software added is MySQL, some Python stuff, and HLA:</p>
  
  <p>Following are the contents of <code>.bash_profile</code> which modifies the <code>$PATH</code> system variable presumably during startup.</p>
  
  <pre><code>export PATH="/usr/local/mysql/bin:$PATH"
  export PATH="$PATH:$HOME/usr/hla"
  export hlalib="$HOME/usr/hla/hlalib"
  export hlainc="$HOME/usr/hla/include"
  export hlatemp="$HOME/usr/hla/tmp"
  
  
  # Setting PATH for Python 3.5
  # The original version is saved in .bash_profile.pysave
  PATH="/Library/Frameworks/Python.framework/Versions/3.5/bin:${PATH}"
  export PATH
  
  # Setting PATH for Python 2.7
  # The original version is saved in .bash_profile.pysave
  PATH="/Library/Frameworks/Python.framework/Versions/2.7/bin:${PATH}"
  export PATH
  
  # added by Anaconda3 4.1.1 installer
  export PATH="//anaconda/bin:$PATH"
  </code></pre>
  
  <p>If Java has no presence on my <code>$PATH</code> variable in OSX, how does terminal find the <code>java</code> and <code>javac</code> commands? What other feature of the OSX operating system is used to provide command line options such as git, Homebrew, and the aforementioned Java?</p>