In zsh on mac OS, where is the source of $PATH? I cannot find it in .zshrc

42,859

Solution 1

There are many possibilities, but some are likelier than others. When starting Zsh, it will source the following files in this order by default:

  • /etc/zsh/zshenv Used for setting system-wide environment variables. This file will always be sourced and cannot be overridden.
  • $ZDOTDIR/.zshenv Used for setting user's environment variables. This file will always be sourced.
  • /etc/zsh/zprofile Used for executing commands at start, will be sourced when starting as a login shell.
  • /etc/profile This file should be sourced by all Bourne-compatible shells upon login: it sets up $PATH and other environment variables and application-specific (/etc/profile.d/*.sh) settings upon login.
  • $ZDOTDIR/.zprofile Used for executing user's commands at start, will be sourced when starting as a login shell.
    • $HOME/.profile is not sourced by zsh.
  • /etc/zsh/zshrc Used for setting interactive shell configuration and executing commands, will be sourced when starting as an interactive shell.
  • $ZDOTDIR/.zshrc Used for setting user's interactive shell configuration and executing commands, will be sourced when starting as an interactive shell.
  • /etc/zsh/zlogin Used for executing commands at ending of initial progress, will be sourced when starting as a login shell.
  • $ZDOTDIR/.zlogin Used for executing user's commands at ending of initial progress, will be sourced when starting as a login shell.

source : wiki.archlinux.org

Solution 2

It looks as though the original value of PATH comes from /etc/paths.

Share:
42,859
OkBeat9
Author by

OkBeat9

Updated on September 18, 2022

Comments

  • OkBeat9
    OkBeat9 over 1 year

    When I run echo $PATH, my output is:

    /usr/bin:/bin:/usr/sbin:/sbin
    

    But in my .zshrc, $PATH is commented out:

    # If you come from bash you might have to change your $PATH.  
    # export PATH=$HOME/bin:/usr/local/bin:$PATH
    

    So, where is my PATH variable defined at? I am using oh-my-zsh, not sure if it has any difference from zsh.

  • Aaron Franke
    Aaron Franke about 3 years
    On macOS, it seems to be /etc/zprofile, but there is also /etc/paths.
  • tanutapi
    tanutapi almost 3 years
    My machine first loaded with /etc/paths.
  • aheigins
    aheigins over 2 years
    none of these answers is where mines saving the exported paths too.. Really bizarre it's so opaque.
  • Admin
    Admin almost 2 years
    It looks like it will also source files inside /etc/paths.d.