bash的配置文件主要分为两类,1.profile类,2.bashrc类。其中profile类主要为交互式的shell提供配置文件,bashrc类主要为非交互式的shell提供配置文件。下面首先介绍一下哪些是交互式shell,哪些是非交互式shell。

  交互式shell

1.直接通过某个终端输入用户名密码登录的shell
2.使用su - username或者su -l username登录的shell

  非交互式shell

1.su username执行的用户切换
2.图形界面下打开的终端
3.运行脚本时启动的shell

 profile类和bashrc类

  两类都包含全局配置文件和用户个人的配置文件,全局配置文件对所有用户有效,用户个人配置文件只对当前的用户有效

  profile类

 

全局配置文件:
        /etc/profile
        /etc/profile.d/*.sh
用户个人配置文件:
        ~/.bash_profile

以上几个配置文件功用:
        定义环境变量
        运行命令或脚本

bashrc类

 

全局配置文件:
        /etc/bashrc
用户个人配置文件:
        ~/.bashrc

以上几个配置文件的功用:
        定义本地变量
        定义命令别名

 

注: 只有管理员有权限修改全局配置文件

 交互式shell登录读取配置文件的顺序:

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

 非交互式shell读取配置文件的顺序:

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

 

  在命令行中定义的特性,比如变量或者别名,仅对当前的shell生效,当前shell进程终止,定义的特性即失效。而在配置文件中定义的特性,只对新启动的shell进程有效,对当前的shell进程不生效。若想让配置文件中的修改立即生效,需要让shell进程重读配置文件,方法如下:

1.[root@fox ~]# source /etc/profile

2.[root@fox ~]# . /etc/profile

 

  

 

 posted on 2017-12-19 16:13  fox_zhang  阅读(218)  评论(0编辑  收藏  举报