title: Modifying PATH with fish shell
body: <p>I'm currently playing around with the <a href="http://fishshell.com/" rel="noreferrer">fish shell</a> and I'm having some trouble wrapping my head around how the <code>PATH</code> variable is set. For what it's worth, I'm also using <a href="https://github.com/oh-my-fish/oh-my-fish/tree/ecf1af6228b3d8ed7dde3304124645b2bc2980d3" rel="noreferrer">oh-my-fish</a>.</p>
  
  <p>If I echo my current path I get:</p>
  
  <pre><code>➜ fish echo $PATH
  /usr/local/bin /usr/bin /bin /usr/sbin /sbin /usr/local/bin /opt/X11/bin /usr/texbin /Users/myname/.opam/system/bin
  </code></pre>
  
  <p>Looking at <code>~/.config/fish/config.fish</code> I see the following line</p>
  
  <pre><code>set PATH /usr/local/bin $PATH /Users/myname/.opam/system/bin
  </code></pre>
  
  <p>My question is (and this phrasing will probably reflect my lack of knowledge on the subject): prior to <code>config.fish</code> being processed, where is the <code>PATH</code> variable set? ie: where do all of the paths between <code>/usr/local/bin</code> and <code>/Users/myname/.opam/system/bin</code> come from?</p>