linux系统中su 和 su 的区别

1、linux系统中su 和 su - 都是用于登录用于切换的命令

  su:切换用户,环境变量不变,路径不变

 su - : 切换用户,环境变量随切换用户发生改变,回到家目录

测试 su 命令:

[root@linuxprobe test]# ls
[root@linuxprobe test]# whoami
root
[root@linuxprobe test]# pwd
/home/test
[root@linuxprobe test]# echo $PATH
/root/miniconda3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@linuxprobe test]# su linuxprobe  ## 直接切换用户
[linuxprobe@linuxprobe test]$ whoami
linuxprobe
[linuxprobe@linuxprobe test]$ pwd ## 路径未改变
/home/test
[linuxprobe@linuxprobe test]$ echo $PATH  ## PATH环境变量未改变
/root/miniconda3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

2、测试su - 命令

[linuxprobe@linuxprobe test]$ exit  ## 返回root
exit
[root@linuxprobe test]# whoami
root
[root@linuxprobe test]# ls
[root@linuxprobe test]# pwd
/home/test
[root@linuxprobe test]# echo $PATH
/root/miniconda3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@linuxprobe test]# su - linuxprobe  ## 使用 su - 切换
Last login: Wed Oct 21 15:28:46 CST 2020 on pts/0
[linuxprobe@linuxprobe ~]$ whoami
linuxprobe
[linuxprobe@linuxprobe ~]$ pwd  ## 回到用户linxprobe家目录
/home/linuxprobe
[linuxprobe@linuxprobe ~]$ echo $PATH  ## PATH环境变量改变
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/linuxprobe/.local/bin:/home/linuxprobe/bin
原文地址:https://www.cnblogs.com/liujiaxin2018/p/13852647.html