当我运行时echo $PATH
,我的输出是:
/usr/bin:/bin:/usr/sbin:/sbin
但在我的 中.zshrc
被$PATH
注释掉了:
# If you come from bash you might have to change your $PATH.
# export PATH=$HOME/bin:/usr/local/bin:$PATH
那么,我的PATH
变量在哪里定义?我正在使用oh-my-zsh
,不确定它与是否有任何区别zsh
。
答案1
有很多可能性,但有些比其他的可能性更大。启动 Zsh 时,它将默认按以下顺序获取以下文件:
/etc/zsh/zshenv
用于设置系统范围的环境变量。此文件将始终被引用且无法被覆盖。$ZDOTDIR/.zshenv
用于设置用户的环境变量。此文件将始终被引用。/etc/zsh/zprofile
用于在启动时执行命令,在作为登录 shell 启动时将被执行。/etc/profile
所有 Bourne 兼容 shell 在登录时都应获取此文件:它会在登录时设置 $PATH 和其他环境变量以及特定于应用程序的 (/etc/profile.d/*.sh
) 设置。$ZDOTDIR/.zprofile
用于在启动时执行用户的命令,在作为登录 shell 启动时将被调用。$HOME/.profile
不是由 zsh 提供的。
/etc/zsh/zshrc
用于设置交互式 shell 配置并执行命令,在作为交互式 shell 启动时将被获取。$ZDOTDIR/.zshrc
用于设置用户的交互式shell配置并执行命令,在以交互式shell启动时将被调用。/etc/zsh/zlogin
用于在初始进度结束时执行命令,将在作为登录 shell 启动时被获取。$ZDOTDIR/.zlogin
用于在初始进度结束时执行用户的命令,将在作为登录 shell 启动时获取。
答案2
看起来好像的原始值PATH
来自/etc/paths
。