PATH变量的默认值

时间:2015-06-24 13:04:30

标签: linux shell environment-variables

在互联网上搜索之后,我知道在交互/非交互式登录/非登录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的这些默认值到底在哪里。

2 个答案:

答案 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/将其读入当前会话。