一个完整的应用程序,一般包括四类:二进制文件、文件和库文件、帮助文件、配置文件。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.能够让用户保存此前的配置内容;