SHELL脚本攻略(学习笔记)--1.5 bash环境配置流程,--1.5bash


站在用户登录的角度来说,shell分为两种类型:

登录式shell:如通过某终端登录,使用su - username命令切换用户。

非交互式shell:如使用su username命令切换用户;图形终端下打开命令终端;shell脚本。

更简单但不精确的区分方法是:不需要输入账号密码才能登陆的shell的都是非交互式shell,如子shell、脚本shell、图形终端下打开的命令窗口,但su username除外。

bash的环境配置文件:

全局配置:/etc/profile、/etc/profile.d/*.sh、/etc/bashrc。

个人配置:~/.bash_profile、~/.bashrc。

读取和执行这些环境配置文件是有顺序的,如果设置有冲突,则后读取的配置文件覆盖先读取的。

读取配置文件流程:

登录式shell读取环境配置文件的顺序是:

(1)/etc/profile-->/etc/profile.d/*.sh
(2)~/.bash_profile-->~/.bashrc-->/etc/bashrc

即先读取全局配置文件/etc/profile,再读取用户配置文件~/.bash_profile。但/etc/profile文件会调用/etc/profile.d/目录下的所有.sh文件,~/.bash_profile会调用~/.bashrc文件,~/.bashrc又会调用/etc/bashrc文件。其实/etc/bashrc还会调用/etc/profile.d/*.sh,但不会重复设置已设置过的选项。

非登录式shell读取环境配置文件的顺序是:

~/.bashrc-->/etc/bashrc-->/etc/profile.d/*.sh

 如图:

也就是说:

/etc/profile:任意用户登陆时读取。非登录式shell不会读取。

~/.bash_profile:对应用户登陆时读取,用以配置将要打开的bash shell。非登录式shell不会读取。

~/.bashrc:关于bash shell的配置,对应的用户每次打开一个shell都会读取该文件,因为登录式或非登录式shell都会读取该文件。

/etc/bashrc:(所有用户)每次打开一个shell(登录式或非登录式)都会读取该文件。

回到系列文章大纲:http://www.cnblogs.com/f-ck-need-u/p/7048359.html

转载请注明出处:http://www.cnblogs.com/f-ck-need-u/p/7229025.html

 

相关内容

    暂无相关文章