码迷,mamicode.com
首页 > 系统相关 > 详细

Shell编程知识2

时间:2021-04-06 14:01:20      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:命令   参数   linux   普通用户   str   通用   最大   $path   一个   

Linux下su与su -命令的本质区别

 su命令和su -命令最大的本质区别就是:

前者只是切换了root身份,但Shell环境仍然是普通用户的Shell;

而后者连用户和Shell环境一起切换成root身份了。只有切换了Shell环境才不会出现PATH环境变量错误。su切换成root用户以后,pwd一下,发现工作目录仍然是普通用户的工作目录;而用su -命令切换以后,工作目录变成root的工作目录了。

su -,su -l 或 su --login 命令改变身份时,也同时变更工作目录,以及HOME,SHELL,USER,LOGNAME。此外,也会变更PATH变量。用echo $PATH命令看一下su和su -以后的环境变量有何不同。不带参数的"su命令"不会改变当前工作目录以及 HOME,SHELL,USER,LOGNAME。只是拥有了root的权限而已。

以此类推,要从当前用户切换到其它用户也一样,应该使用su -命令。

 

shell 脚本各种执行方式(source ./*.sh, . ./*.sh, ./*.sh)的区别

结论一: ./*.sh的执行方式等价于sh ./*.sh或者bash ./*.sh,此三种执行脚本的方式都是重新启动一个子shell,在子shell中执行此脚本。

结论二: .source ./*.sh和 . ./*.sh的执行方式是等价的,即两种执行方式都是在当前shell进程中执行此脚本,而不是重新启动一个shell 而在子shell进程中执行此脚本。

Shell编程知识2

标签:命令   参数   linux   普通用户   str   通用   最大   $path   一个   

原文地址:https://www.cnblogs.com/ucas123/p/14614572.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!