前者只是切换了身份,但SHELL环境仍然是原用户的SHELL;www.linuxidc.com而后者连用户和SHELL环境一起切换成新用户的了。只有切换了SHELL环境才不会出现PATH环境变量错误。
具体案例:
有人用root登陆。然后切换到oracle用户下,执行sqlplus 命令 却报错:command not found!
就是因为使用的是su ,而不是su -
另外还有个很明显的区别:
比如说 root用户在/root/目录下, su oracle,
切换到了oracle 用户,但是目录仍然在/root/下。
如果使用su - oracle
你可以发现目录也切换到oracle用户的家目录下。
本文介绍了Linux系统中su与su-命令的区别。su仅切换用户身份而不改变shell环境,可能导致PATH环境变量错误。su-则同时切换用户及shell环境,避免此类问题。通过具体案例展示了两种命令使用后的不同效果。
600

被折叠的 条评论
为什么被折叠?



