文章目录
一、区别
登录式Shell,是通过用户和密码的方式登录的Shell
非登录式Shell,不需要用户和密码的方式进入的Shell
执行exit命令时,可以退出登录式shell和非登录式Shell。
执行exit命令时,可以退出登录式shell和非登录式Shell。
执行exit命令时,可以退出登录式shell和非登录式Shell。
非登录式Shell,不需要用户和密码的方式进入的Shell。
执行logout命令时,只能退出登陆式Shell,不能退出非登陆式Shell。
执行脚本时,其实就是一个非登陆式shell
非登录式Shell不会执行/etc/profile这个文件
二、系统配置文件读取顺序
1.配置文件的执行顺序
/etc/profile --> /etc/profile.d/*.sh --> ~/.bash_profile --> /etc/bashrc --> ~/.bashrc
2.登录式Shell的配置文件执行顺序
/etc/profile --> /etc/profile.d/*.sh --> ~/.bash_profile --> ~/.bashrc --> /etc/bashrc
3.非登登录式Shell配置文件执行顺序
~/.bashrc --> /etc/bashrc --> /etc/profile.d/*.sh
三、配置文件区别
- /etc/profile: 设定的变量是全局的,可以做用于任何用户。当用户第一次登录时,该文件被执行。并从/etc/profile.d目录的配置文件中搜集shell的设置。
- /etc/bashrc:为每一个运行bash shell的用户执行此文件。当bash shell被打开时,该文件被读取。
- ~/.bash_profile:针对单个用户设置变量。当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件.
- ~/.bashrc:针对单个用户设置变量。当登录时以及每次打开新的shell时,该文件被读取.(每个用户都有一个.bashrc文件,在用户目录下)
- ~/.bash_logout:当每次退出系统(退出bash shell)时,执行该文件.