【问题标题】:Where is PATH defined in CentOS?CentOS 中的 PATH 定义在哪里?
【发布时间】:2020-08-18 09:14:49
【问题描述】:

我开始查看以下文件:

  • /etc/profile
  • ~/.bash_profile

为了找到定义环境变量的位置。不幸的是,我找不到 $PATH 变量。我正在使用 Bash。

【问题讨论】:

标签: bash centos centos7


【解决方案1】:

初始的PATH 环境变量继承自...无论启动shell。例如sudosshd 等命令,无论您在桌面登录后创建什么内容。

对于初始 PATH 未被继承的情况,似乎还有一个 PATH 硬连线到 bash 二进制文件中。 (查看strings /bin/bash 的输出。)

然后各种shell初始化脚本开始设置或更新PATH。例如,在 Ubuntu 上,PATH 变量由 /etc/profile.d/apps-bin-path.sh 更新...由 /etc/profile 运行。

【讨论】:

    【解决方案2】:

    您不应该担心(甚至询问)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移到最前面。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-05
      • 2015-11-30
      • 2012-08-24
      • 1970-01-01
      • 1970-01-01
      • 2014-04-09
      • 2013-04-09
      • 2015-04-05
      相关资源
      最近更新 更多