Linux下sudo执行命令时profile无效的问题

本文探讨了在使用sudo命令时-i与-s选项的不同之处。-s选项保持当前环境并仅能执行基本命令,而-i则模拟完整登录环境,执行环境下的所有配置文件都会被读取。

刚才写hadoop安装的时候,发现sudo执行命令时,原本设置在prifile里面的PATH等设置全部都失效了,man了一下sudo的参数发现sudo的执行有-i和-s的区别,

-s是用当前的上下文,只能用一些原生命令,语句执行的当前目录仍然是当前用户的操作目录。而-i则是重新开启了一个登陆过程,他会触发/etc/profile以及用户自身的.profile等脚本的执行,并且语句执行的当前目录已经被更改为目标用户的主目录。 加上-i 后恢复正常。

另外说一点的是,不论-s还是-i,命令中$引用的环境变量全部来源于当前用户,Linux命令行应该是先进行代码的文本替换再执行代码,这点就类似以前学C的宏了。

转载于:https://www.cnblogs.com/shishuifox/archive/2013/03/19/2967162.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值