糖尿病康复,内容丰富有趣,生活中的好帮手!
糖尿病康复 > su 与 su - 区别

su 与 su - 区别

时间:2020-04-04 23:45:31

相关推荐

su 与 su - 区别

susu -都是用来切换用户的命令,简单说它们之间的区别就是:su -切换的干净彻底,而su

切换用户却拖泥带水。

su

su username,切换到指定用户,但是当前目录不会变化,环境变量还是上一个用户的环境变量。

su -

su - username,切换到指定用户,当前目录即刻切换成指定用户的家目录,即~环境变量

即刻切换到指定目录的环境变量。

测试环境

测试环境是CentOS6.9_64位,系统中有两个用户oldboy和root

oldboy的环境变量和家目录如下

[oldboy@as4k ~]$ echo ~/home/oldboy[oldboy@as4k ~]$ echo $PATH/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/oldboy/bin[oldboy@as4k ~]$

root用户的环境变量和家目录如下

[root@as4k ~]# echo ~/root[root@as4k ~]# echo $PATH/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin[root@as4k ~]#

测试效果

root -> oldboy (su -)

[root@as4k ~]# pwd && echo $PATH/root/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin[root@as4k ~]# su - oldboy[oldboy@as4k ~]$ pwd && echo $PATH/home/oldboy/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/oldboy/bin

oldboy -> root (su -)

[oldboy@as4k ~]$ pwd && echo $PATH/home/oldboy/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/oldboy/bin[oldboy@as4k ~]$ su - rootPassword: [root@as4k ~]# pwd && echo $PATH/root/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

root -> oldboy (su)

[root@as4k ~]# pwd && echo $PATH/root/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin[root@as4k ~]# su oldboy[oldboy@as4k /root]$ pwd && echo $PATH/root/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

oldboy -> root (su)

[oldboy@as4k ~]$ pwd && echo $PATH/home/oldboy/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/oldboy/bin[oldboy@as4k ~]$ su rootPassword: [root@as4k /home/oldboy]# pwd && echo $PATH/home/oldboy/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/oldboy/bin

结论

切换用户尽量使用su -,干净彻底,符合人类认知。

问题: 一不小心使用su切换了用户,傻傻分不清自己到底用的是哪个环境,怎么办?

解决: 使用su - username再切换一次,即使自己已经是oldboy用户,还是可以su - oldboy

再切换一次,以达到更改操作环境的目的。

[oldboy@as4k ~]$ pwd && echo $PATH/home/oldboy/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/oldboy/bin[oldboy@as4k ~]$ su rootPassword: [root@as4k /home/oldboy]# pwd && echo $PATH/home/oldboy # what ? 我的环境乱了/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/oldboy/bin[root@as4k /home/oldboy]# su - root[root@as4k ~]# pwd && echo $PATH/root # ok 回到了熟悉的环境/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

如果觉得《su 与 su - 区别》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。
相关阅读
su  和su -的区别

su 和su -的区别

2021-12-31

su 和su -的区别

su 和su -的区别

2021-05-02

su与su - 的区别

su与su - 的区别

2020-11-24

su和su - 的区别

su和su - 的区别

2022-02-02