(转+原创)BASH启动脚本及其启动顺序

登录Linux后,BASH要读取几个文件,这些文件(启动脚本文件)用来定义BASH环境,如果希望建立标准的别名,或者希望设置各种shell变量,就应该在bash启动文件中进行设置。这几个文件是
/etc/profile


~/.bash_profile
~/.bash_login
~/.profile


~/.bashrc

    BASH有三种常见的启动方式:

登录交互式,即从字符终端登录或在X Window中启动终端窗口。BASH启动过程中首先读取文件1,然后按顺序读取文件2-4中遇到的第一个文件,启动后读取并运行文件5,前面文件的设置会被后面文件的设置所覆盖。通常文件1中设置系统环境变量,文件2-4设置用户自定义的环境,文件5设置登录后运行的程序。

非登录交互式,即从其它shell或bash自身启动BASH。这时文件1-4都不被读取,唯一的启动文件是~/.bashrc。

非交互式,即运行SHELL脚本。这时所有的启动脚本文件都不执行,但如果定义了系统环境变量ENV,则ENV的值作为启动脚本文件名首先执行。在前两种情况下,如果定义了环境变量ENV,则首先读取ENV指定的文件,然后按顺序读取前述脚本文件。

直接su 用户名 不加- 属于第二种情况 非登录交互式  只执行一个文件~/.bashrc;

su - 用户名 属于第一种情况

原文地址:https://www.cnblogs.com/leegoo/p/3484106.html