【发布时间】:2020-08-18 09:14:49
【问题描述】:
我开始查看以下文件:
- /etc/profile
- ~/.bash_profile
- 等
为了找到定义环境变量的位置。不幸的是,我找不到 $PATH 变量。我正在使用 Bash。
【问题讨论】:
-
Stack Overflow 用于编程问题。您可以尝试在Unix & Linux 或Super User 上提问。
我开始查看以下文件:
为了找到定义环境变量的位置。不幸的是,我找不到 $PATH 变量。我正在使用 Bash。
【问题讨论】:
初始的PATH 环境变量继承自...无论启动shell。例如sudo、sshd 等命令,无论您在桌面登录后创建什么内容。
对于初始 PATH 未被继承的情况,似乎还有一个 PATH 硬连线到 bash 二进制文件中。 (查看strings /bin/bash 的输出。)
然后各种shell初始化脚本开始设置或更新PATH。例如,在 Ubuntu 上,PATH 变量由 /etc/profile.d/apps-bin-path.sh 更新...由 /etc/profile 运行。
【讨论】:
您不应该担心(甚至询问)PATH 的设置位置,因为您不应该相信随机发行版会以正确的顺序放置正确的目录。
相反,您可以在 shell 的配置文件中设置您需要的 PATH。就是这样。
作为起点,POSIX 要求 getconf PATH 返回系统的默认 PATH。如果你有一个$HOME/bin 并且有一个/usr/local/bin,那么你添加它们。
这是我机器上的样子:
PATH="$(/usr/bin/getconf PATH)"
PATH="$PATH:/usr/sbin"
PATH="$PATH:/usr/local/bin"
PATH="$PATH:$HOME/bin"
通过此设置,可以轻松调整顺序。也许你不喜欢/usr/bin/vi 中的古老vim?自己编译,把/usr/local/bin移到最前面。
【讨论】: