MacOS的系统环境变量

在macOS中,配置环境变量可以通过多个文件来完成,这些文件根据不同的场景和需求有所不同。以下是一些常用的文件及其用途:

/etc/paths

  • 作用:定义系统的路径列表,即命令搜索路径。
  • 适用范围:全局,影响所有用户。
  • 使用方法:直接编辑此文件,添加或修改路径条目。

/etc/paths.d/

  • 作用:这是一个目录,可以在这个目录下创建多个文件,每个文件可以包含一个或多个路径条目,这些路径将被添加到PATH环境变量中。
  • 适用范围:全局,影响所有用户。
  • 使用方法:在/etc/paths.d/目录下创建文件,每行一个路径条目。

/etc/profile

  • 作用:系统级的配置文件,当用户登录时,它会被读取以设置环境变量。
  • 适用范围:全局,影响所有用户。
  • 使用方法:编辑此文件,添加或修改环境变量设置。

~/.bash_profile

  • 作用:用户级的配置文件,当用户登录时,它会被读取以设置环境变量和启动命令。
  • 适用范围:仅影响当前用户。
  • 使用方法:编辑此文件,添加或修改环境变量设置。

~/.bashrc

  • 作用:用户级的配置文件,当用户打开一个新的终端窗口(非登录shell)时,它会被读取。
  • 适用范围:仅影响当前用户。
  • 使用方法:编辑此文件,添加或修改环境变量设置。

~/.zshrc

  • 作用:如果你使用的是Zsh作为默认shell,这个文件会在每次打开新的终端窗口时被读取。
  • 适用范围:仅影响当前用户。
  • 使用方法:编辑此文件,添加或修改环境变量设置。

~/.profile

  • 作用:用户级的配置文件,如果~/.bash_profile不存在,Bash会尝试读取这个文件。
  • 适用范围:仅影响当前用户。
  • 使用方法:编辑此文件,添加或修改环境变量设置。

/etc/launchd.conf

  • 作用:系统级的配置文件,用于设置环境变量,这些变量在系统启动时生效。
  • 适用范围:全局,影响所有用户。
  • 使用方法:编辑此文件,添加或修改环境变量设置。注意:在macOS Catalina及更高版本中,/etc/launchd.conf可能不再被支持,建议使用launchctl命令来设置环境变量。

launchctl

  • 作用:命令行工具,用于设置系统级或用户级的环境变量。

  • 适用范围:全局或用户级。

  • 使用方法:

    • 设置系统级环境变量:

      1
      sudo launchctl setenv VARIABLE_NAME value
    • 设置用户级环境变量:

      1
      launchctl setenv VARIABLE_NAME value

示例

假设你想为当前用户设置一个环境变量MY_VARIABLE,可以编辑~/.bash_profile文件:

1
nano ~/.bash_profile

添加以下内容:

1
export MY_VARIABLE=value

保存并退出编辑器,然后使更改生效:

1
source ~/.bash_profile

这样,每次你登录或打开一个新的终端窗口时,MY_VARIABLE就会被设置。