Missing Semester中的练习 2提出以下问题:
运行
PATH=
并尝试再次运行以前的命令,有些工作,有些不工作,你能找出原因吗?
设置PATH=
从PATH
变量中删除所有内容。然后echo $PATH
只产生一个空行。但是当我重新启动 shell 时,PATH
变量的所有内容又都在那里了。PATH
我的问题是当我重新启动 shell 时变量从哪里获取它的值?
Missing Semester中的练习 2提出以下问题:
运行
PATH=
并尝试再次运行以前的命令,有些工作,有些不工作,你能找出原因吗?
设置PATH=
从PATH
变量中删除所有内容。然后echo $PATH
只产生一个空行。但是当我重新启动 shell 时,PATH
变量的所有内容又都在那里了。PATH
我的问题是当我重新启动 shell 时变量从哪里获取它的值?
通常,每个进程都从其父进程继承其环境(包括 的值
PATH
)。因此,如果您从终端模拟器启动 shell,则 shell 继承自终端,终端继承自桌面会话,依此类推。如果您返回进程树,您会发现在用户会话启动时, pam_env模块从文件PATH
中读取了一个默认值。/etc/environment
此外,如果您使用的是适用于 Linux 的 Windows 子系统 (WSL),则路径组件可能会通过
appendWindowsPath
互操作性功能从 Windows 主机会话继承。对于 shell 的特定情况,
PATH
变量可以由各种系统范围和/或用户特定的配置文件另外设置或修改,具体取决于对于 bash,您可以阅读
man bash
.