单纯使用su切揣到root,读取变量的方式 是non-login shell,这种方式下很多的变量都 不会改变,尤其是PATH,所以root用的很多命令都只能用绝对路径来执行,这种方式只是切换到root的身份.而用su -这种方式的话,是login shell方式,它是先以root身份登录然后再执行别的操作.
[nb@ok ~]$ su[root@ok nb]# pwd/home/nb[root@ok nb]# echo $PATH/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/home/nb/.local/bin:/home/nb/bin-------------------------------------------------------------------------------------------------------++++++++++++++++++[nb@ok ~]$ su -Last login: Wed May 10 00:31:52 EDT 2017 on pts/11[root@ok ~]# pwd/root[root@ok ~]# echo $PATH/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin