PATH 是何时 export 的?

2020-12-08 16:43:27 +08:00
 asanelder
俺用的是 bash 。俺的环境没有.bash_profile, .bash_login,只有.profile, 和.bashrc

在 profile 中设置了 PATH 变量,但俺没有找到 export PATH 的地方。

但 env 显示 PATH 已经设置成环境变量了。。

求知道的铁子告知一二
998 次点击
所在节点    程序员
5 条回复
boris93
2020-12-08 16:50:45 +08:00
看看 /etc/profile ?
asanelder
2020-12-08 16:54:12 +08:00
@boris93 #1 /etc/profile 中也没有。

俺找到答案了
https://unix.stackexchange.com/questions/26047/how-to-correctly-add-a-path-to-path

看这里面的意思,PATH 是在很早很早之前就被设置成了环境变量了,而 shell 中的 PATH 就是继承过来的,所以不需要再 export 了。

也就是说 PATH 是先于 shell 存在的。
12101111
2020-12-08 17:00:54 +08:00
/usr/include/paths.h 这个 PATH 是 libc 写死的, POSIX 标准要求的, 这样 pid1(init)就会使用_PATH_STDPATH 里的 PATH,然后读取系统配置文件,这样其他的进程也就继承了 init 的 PATH
asanelder
2020-12-08 17:07:13 +08:00
@12101111 #3 感谢提供更多细节,俺刚找到的答案也是说 shell 的祖先进程已经设置了的,
julyclyde
2020-12-09 15:00:45 +08:00
你可以顺着 pstree 往上找一下

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/733390

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX