刚才写hadoop安装的时候,发现sudo执行命令时,原本设置在prifile里面的PATH等设置全部都失效了,man了一下sudo的参数发现sudo的执行有-i和-s的区别,
-s是用当前的上下文,只能用一些原生命令,语句执行的当前目录仍然是当前用户的操作目录。而-i则是重新开启了一个登陆过程,他会触发/etc/profile以及用户自身的.profile等脚本的执行,并且语句执行的当前目录已经被更改为目标用户的主目录。 加上-i 后恢复正常。
另外说一点的是,不论-s还是-i,命令中$引用的环境变量全部来源于当前用户,Linux命令行应该是先进行代码的文本替换再执行代码,这点就类似以前学C的宏了。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步