一个完整的应用程序,一般包括四类:二进制文件、文件和库文件、帮助文件、配置文件。bash同样属于一种完整的应用程序,上述四类文件,bash都有;

二进制文件:/bin/bash

头文件和库文件:/lib64/.so

帮助文件:/usr/share/man/man1/bash.1.gz

配置文件:

三类:

1.profile类:

为交互式登陆的shell进程实现功能初始化的配置文件;

2.bashrc类:

为非交互式登录的shell进程实现功能启动配置的配置文件;

3.logout类:

为交互式登录的shell进程提供终止及清理类功能的配置文件;

bash有两种不同的类型:

1.交互式登录的bash

1)直接通过某个终端输入账户信息和密码之后打开的bash进程;

2)su -|su -l USERNAME执行切换登录打开你的bash进程;


配置文件的加载顺序:

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


2.非交互式登录的bash

1)在图形界面下,通过菜单项或右键菜单打开的终端所启动的bash进程;

2)使用su USERNAME执行切换登录打开的bash进程;


配置文件加载顺序:

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


bash的配置文件:

1.profile类:

全局配置文件:

/etc/profile

/etc/profile.d/*.sh


    注意:在RHEL或CETOS系列的发行版Linux操作系统中,通常会存在这样的情况,如果一个配置文件的内容很多,格式很复杂,将会尝试将此配置文件切割拆分为多个片段配置文件,往往吧最核心最主要的配置留在主配置文件中,将一些附属的或者扩展的配置内容分散存放到各个片段配置文件中;而被切分出阿里的片段配置文件一般会同意保存在"程序名称.d"命令格式的目录中;而我们约定,在这类目录中保存的片段配置文件的后缀名称会是统一的字符串;


个人配置文件:

~/.bash_profile


profile类配置文件的作用:

1.一般用于定义用户的环境变量;

2.用于运行脚本或者执行某些特殊命令;



2.bashrc类:

全局配置文件:

/etc/bashrc



个人配置文件:

~/.bashrc


bashrc类配置文件的作用:

1.用于定义本地变量;

2.用于定义命令别名;

3.用于定于umask;



注意:只有root用户能够修改全局类的bash配置文件,普通用户只能够修改起家目录中属于其个人的配置文件;

3.logout类配置文件:

个人配置文件:

~/bash_logout


作用:在关闭shell进程之前,清除某些用户自定义的配置,删除某些临时文件或目录,以及撤销用户此前定义的变量,清理某些可能会引发安全问题的隐患等操作;


为什么要为bash使用配置文件:

所有利用bash命令行完成的命令操作,只要没有涉及到文件修改的,一般都只是针对当前的shell生效,一旦shell进程结束,则此前所有的操作的生命周期就走到尽头;即配置失效;



配置文件的作用:

1.能够使用户赖以生存的配置信息长期有效;

2.能够让用户保存此前的配置内容;