这里说一下login shell和 no login shell的区别
通过tty客户端登陆的shell就是login shell,通过在图形界面使用ctrl+shift+t的方式新建的shell是no login shell
login shell 主要读取两个配置文件/etc/profile和~/.bash_profile
no login shell 读取的文件和顺序为:/etc/bashrc和~/.bashrc

  1. 不同用户初始的PATH是不一样的。切换用户系统会先将PATH设为初始值,
    然后再根据调用的初始化脚本,添加PATH中的路径。并不是所有用户共用一个PATH。

  2. su – root,产生一个登录shell去执行后面的指令。登录 shell 执行的是shell
    登录的流程,会执行 /etc/profile,/etc/profile.d/下定义的*.sh都会执行。

  3. su root,产生一个非登录交互shell,非登录交互shell,只执行用户目录下
    .profile等配置文件。