macOS去除重复PATH环境变量
环境变量分为系统和用户,这里主要配置用户环境
在 macOS 上,全局的系统环境变量文件通常可以通过以下文件和目录来配置:
/etc/profile
:
- 这是系统范围的 shell 配置文件,适用于所有用户。当登录时,bash、sh 等 shell 会读取并执行这个文件。你可以在这里添加系统范围的环境变量。
/etc/paths
:
- 这个文件包含系统范围的
PATH
环境变量。每一行是一个目录路径,文件中的所有路径会被添加到每个用户的PATH
中。
/etc/paths.d/
:
- 这是一个目录,你可以在这里放置单个文件,每个文件包含一个路径。目录中的所有文件会被自动加载,并将这些路径添加到
PATH
变量中。
/etc/zshenv
(适用于 zsh):
- 如果你使用
zsh
作为默认 shell(这是 macOS 默认的 shell 从 Catalina 版本开始),/etc/zshenv
会在每次zsh
启动时被读取,是设置全局环境变量的一个好地方。
~/.zshrc
或~/.bashrc
(用户级):
- 虽然这些是用户级配置文件,但它们通常用于设置特定用户的环境变量,而不是全局变量。如果你需要为特定用户设置变量,这些文件是最常用的地方。
列出当前所有PATH路径
一般使用:
echo $PATH
但是,这是人看的东西吗?所以,为了能让人看懂,一般使用下面这个命令:
echo $PATH | tr ':' '\n'
这将按行列出 PATH 中的每个路径,让你更容易查看是否有重复路径。
去除重复PAHT路径
先来一个快速但是 治标不治本
的方法
在 shell 配置文件中添加以下代码来自动去重 PATH 变量:
export PATH=$(echo "$PATH" | tr ':' '\n' | awk '!seen[$0]++' | tr '\n' ':' | sed 's/:$//')
将这段代码添加到你的 ~/.zshrc
或 ~/.bashrc
中的 最后
,然后运行 source ~/.zshrc 或 source ~/.bashrc 使其生效。