我想为所有 shell 全局编辑 bash $PATH。有人告诉我,我可以从 .bash_profile 或 .bashrc 中添加/删除内容来执行此操作,但是当我查看这些文件时,它们缺少我在查看时看到的文件夹。
echo $PATH
有没有办法从终端本身全局编辑所有 shell 会话的 $PATH?或者还有其他方法可以配置这个吗?这是我的道路:
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/users/developer/desktop/stack/3.dev-ops/build-test-deploy/front-end-package-manager/composer/bin:/usr/local/go/bin:/usr/local/share/dotnet:/opt/X11/bin:~/.dotnet/tools:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/Applications/Wireshark.app/Contents/MacOS:/Applications/Xamarin Workbooks.app/Contents/SharedSupport/path-bin
我正在尝试删除这个:
/users/developer/desktop/stack/3.dev-ops/build-test-deploy/front-end-package-manager/composer/bin
答案1
BASH 首先从文件 /etc/profile 读取并执行命令(如果该文件存在)。之后,它按顺序查找 ~/.bash_profile、~/.bash_login 和 ~/.profile,并从第一个存在且可读的命令中读取并执行命令。
因此,您的 PATH 变量要么在您的主目录中设置,要么/etc/profile
从.bash_profile
, .bash_login
, 或.profile
从您的主目录设置。
如果您想在路径中添加或删除目录,您应该查看那里。如果您的路径是从全局设置的,/etc/profile
我建议PATH
您在~/.bash_profile
.最好不要更改全局/etc/profile
文件。
编辑:看起来您使用的是 macOS,因此答案是编辑您的/etc/paths
文件并删除有问题的目录。
请务必在以后的问题中解释您正在运行 macOS 以节省时间,因为它们的配置与 Linux 等略有不同。
答案2
可以在 bash 启动时读取的任何各种文件中设置 PATH。要找到所有这些,请在新的iterm 的实例:
grep --color -rlH 'PATH=' \
~/.bashrc ~/.profile ~/.bash_profile ~/bash.login \
~/.bash_aliases /etc/bash.bashrc /etc/profile \
/etc/profile.d/* /etc/environment \
~/.xinitrc ~/.xprofile /etc/xprofile \
/etc/paths /etc/paths.d/
2> /dev/null
这些是标准的。如果您还从其中之一获取其他文件,事情可能会变得更加复杂。
如果您找到设置 PATH 变量的文件,那么您就完成了并且可以编辑该文件。如果没有,可能您已经删除了一些软件包。报告的 PATH 是什么新的iTerm 的实例?