bash的配置文件

按生效范围划分:
全局配置:
    /etc/profile
    /etc/profile.d/*.sh
    /etc/bashrc
个人配置:
    ~/.bash_profile
    ~/.bashrc

按功能划分:
    profile类:为交互式登录的shell提供配置;
    bashrc类:为非交互式登录的shell进程提供配置;
    
    profile类:
        全局:对所有用户都生效;
            /etc/profile
            /etc/profile.d/*.sh
            
        用户个人:仅对当前用户有效;
            ~/.bash_profile
            
        功用:
            1、用于定义环境变量;
            2、运行命令或脚本;
        
    bashrc类:
        全局:
            /etc/bashrc
        用户个人:
            ~/.bashrc
        功用:
            1、定义本地变量;
            2、定义命令别名和函数;
        
在命令行中定义的别名,仅对当前shell有效;
如果想永久有效,要修改配置文件;    
        
注意:仅管理员可修改全局配置文件;

登录类型:
    交互式登录shell进程:
        直接通过某终端输入账号和密码后登录打开的shell进程;
        使用su命令su - USERNAME执行的登录切换;
        
    非交互式登录shell进程:
        su USERNAME执行的登录切换;
        图形界面下打开的终端;
        执行脚本;            

    交互式登录shell过程:
        /etc/profile-->/etc/profile.d/*sh-->~.bash_profile-->~.bashrc-->/etc/bashrc
    非交互式登录shell过程:
        ~/.bashrc -->/etc/bashrc -->/etc/profile.d/*sh
    
命令行中定义的特性,例如变量和别名作用域为当前shell进程;
配置文件定义的特性,只对随后新启动的shell进程有效;

让通过配置文件定义的特性立即生效;
    (1)重新启动shell进程;
    (2)让shell进程重读配置文件;
        source /PATH/FROM/CONNFIG_FILE
        . /PATH/FROM/CONNFIG_FILE
            
bash退出任务:
    保存在~/.bash_logout文件中(用户)
    在退出登录shell时运行
    用于:
        创建自动备份
        清除临时文件

1、让用户(管理员或所有用户)的PATH环境变量的值多出一个路径,例如多如/usr/local/apache2/bin
    vim /etc/profile
    PATH=$PATH:/usr/local/apache2/bin
    
2、用户wang登录时自动启用别名rm=‘rm –i’
    vim ~/.bashrc
    alias rm='rm -i'
    
3、用户wang注销时,自动清除命令历史
    vim ~/.bash_logout        
    rm -rf ./bash_history
    history -c
    
4、定义对所有用户都生效的命令别名,例如lftps='lftp 172.16.0.1/pub';
    vim /etc/bashrc
    alias lftps='lftp 172.16.0.1/pub'
    
5、让centos用户登录时,提示其已经登录,并显示当前系统时间;    
    vim /home/centos/.bash_profile
    echo "You have logged in."
    date