在互联网上搜索之后,我知道在交互/非交互式登录/非登录shell组合的情况下,在哪里可以改变PATH变量的值。
从其他帖子中找到
https://shreevatsa.wordpress.com/2008/03/30/zshbash-startup-files-loading-order-bashrc-zshrc-etc/
我有" / bin / sh"作为默认登录shell,仅使用/ etc / profile文件导出系统中所有需要的环境变量。并且在非交互式登录shell的情况下,/ etc / profile也没有被引用,即使上面的链接说它会。但是当我执行时,
ssh -4 -q -o StrictHostKeyChecking=no root@xxxx "env"
Password:
SHELL=/bin/sh
...
**PATH=/usr/bin:/bin:/usr/sbin:/sbin**
...
我可以看到PATH变量的一些默认值。我想知道PATH的这些默认值到底在哪里。
答案 0 :(得分:1)
您根本不应该关注设置if float(j)==999999.0:
的地方。您应该始终在shell启动文件PATH
或{{1}中设置PATH
})。
这样你就不会依赖别人很快就会假设.profile
中的目录应该是什么。唯一知道的是你。
从
开始.bashrc
然后根据自己的喜好添加
PATH
PS:在您的特定情况下,看起来PATH=$(getconf PATH)
是从远程端的SSH守护进程继承而来的,它最终会为您的shell提供支持。如果shell未从其父级继承PATH=$PATH:$HOME/bin
PATH=$PATH:/usr/local/bin
PATH=$PATH:<...any other directory you need...>
,则会设置一个默认值,您可以使用PATH
进行查询。
答案 1 :(得分:0)
这取决于您的发行版。在Debian及其衍生产品中,定义见/etc/environment
,并通过在适当的pam_env.so
文件中包含/etc/pam.d/
将其读入当前会话。