如同su- 与su的区别
登录的时候一个加载shell环境与不加载shell环境
如果是用su -就是login shell
su nologin shell
用户登录shell的时候是执行上图左边红色与蓝色的四个文件,离开shell的时候是执行黄色的文件
(证明上句话的验证方法)
证明一:比如我们登陆一个账户后你随便几条命令,然后用history是能看到的,但是 .bash_history 看不到 (文件名前面有个点的),当你离开这个用户的shell的时候 .bash_history就能看到。
证明二:ssh远程到一个用户的shell中,vim ~/bash_logout,写入reboot 保存退出,然后exit退出ssh,然后那个用户所在的系统就重启了。
所以可登陆的shell(login shell)是执行/etc/profile、/etc/bashrc、~/.bash_profile、~/.bashrc 如:su -
不可登陆的shell(nologin shell)只会执行/etc/profile、~/.bashrc 如:su
离开的时候都执行上图黄色的~/.bash_history、~/.logout
断电的情况等非法退出的情况除外。