缺席学期的练习 2提出以下问题:
\n\n\n运行
\nPATH=
并尝试再次运行前面的命令,有些工作,有些不\xe2\x80\x99t,你能找出原因吗?
设置PATH=
从变量中删除所有内容PATH
。然后echo $PATH
只产生一个空行。但是当我重新启动 shell 时,PATH
变量的所有内容又出现了。我的问题是PATH
当我重新启动 shell 时变量从哪里获取其值?
一般来说,每个进程都会从其父进程继承其环境(包括 的值)。PATH
因此,如果您从终端模拟器启动 shell,则 shell 会继承自终端,而终端又继承自桌面会话等。如果您跟踪进程树,您会发现当用户会话启动时,pam_env模块会从文件PATH
中读取默认值。/etc/environment
appendWindowsPath
此外,如果您使用的是 Windows Subsystem for Linux (WSL),则可以通过互操作性功能从 Windows 主机会话继承路径组件。
对于 shell 的特定情况,PATH
可以通过各种系统范围和/或用户特定的配置文件另外设置或修改变量,具体取决于
对于 bash,您可以阅读 的 INVOCATION 部分的详细信息man bash
。