Linux系统中三类重要文件的作用与区别

系统 Linux 系统运维
Linux系统中,有三种文件类型出现的非常频繁,那就是profile、bash_profile、bashrc文件。因为名称的缘故,很多人会把这三类文件的作用记混,因此我们今天就来详细盘点一下这三类文件的作用及区别。

Linux系统中,有三种文件类型出现的非常频繁,那就是profile、bash_profile、bashrc文件。

因为名称的缘故,很多人会把这三类文件的作用记混,因此我们今天就来详细盘点一下这三类文件的作用及区别。

1. profile文件

1.1 profile文件的作用

profile(/etc/profile),用于设置系统级的环境变量和启动程序,在这个文件下配置会对所有用户生效。

当用户登录(login)时,文件会被执行,并从/etc/profile.d目录的配置文件中查找shell设置。

1.2 在profile中添加环境变量

一般不建议在/etc/profile文件中添加环境变量,因为在这个文件中添加的设置会对所有用户起作用。

当必须添加时,我们可以按以下方式添加:

如,添加一个HOST值为magedu.com的环境变量:

export HOST=magedu.com

添加时,可以在行尾使用;号,也可以不使用。

一个变量名可以对应多个变量值,多个变量值需要使用:进行分隔。

添加环境变量后,需要重新登录才能生效,也可以使用source命令强制立即生效:

source /etc/profile

查看是否生效可以使用echo命令:

$ echo $HOST

magedu.com

2. bashrc文件

bashrc文件用于配置函数或别名。bashrc文件有两种级别:

系统级的位于/etc/bashrc、用户级的位于~/.bashrc,两者分别会对所有用户和当前用户生效。

bashrc文件只会对指定的shell类型起作用,bashrc只会被bash shell调用。

3. bash_profile文件

bash_profile只对单一用户有效,文件存储位于~/.bash_profile,该文件是一个用户级的设置,可以理解为某一个用户的profile目录下。

这个文件同样也可以用于配置环境变量和启动程序,但只针对单个用户有效。

和profile文件类似,bash_profile也会在用户登录(login)时生效,也可以用于设置环境变理。

但与profile不同,bash_profile只会对当前用户生效。

4. 差异总结

这三种文件类型的差异用一句话表述就是:

/etc/profile,/etc/bashrc 是系统全局环境变量设定;~/.profile,~/.bashrc用户家目录下的私有环境变量设定。

当登入系统时候获得一个shell进程时,其读取环境设定档如下: 

 

 

 

4.1 首先读入全局环境变量设定档/etc/profile,然后根据其内容读取额外的设定的文档,如/etc/profile.d和/etc/inputrc;

4.2 根据不同使用者帐号,于其家目录内读取~/.bash_profile;

读取失败则会读取~/.bash_login;

再次失败则读取~/.profile(这三个文档设定基本上无差别,仅读取上有优先关系);

4.3 ***,根据用户帐号读取~/.bashrc。

至于~/.profile与~/.bashrc都具有个性化定制功能,但~/.profile可以设定本用户专有的路径、环境变量等,它只能登入的时候执行一次。

~/.bashrc也是某用户专有设定文档,可以设定路径、命令别名,每次shell script的执行都会使用它一次。 

责任编辑:庞桂玉 来源: 马哥Linux运维
相关推荐

2011-06-01 10:48:28

Android系统

2010-07-30 16:06:41

2010-09-16 16:13:14

2010-07-19 13:49:52

autoTelnet

2016-10-09 01:17:35

2010-09-26 16:10:03

数据加密产品

2016-10-09 20:00:49

操作系统windows

2010-06-12 16:41:59

网络核心协议

2013-08-27 13:14:46

2021-09-01 15:48:50

API漏洞应用程序安全

2022-06-14 07:22:53

MakefileConfigKconfig

2014-12-29 10:25:34

MEFNFVSDN

2022-05-09 14:44:50

修复工具包office

2018-10-30 16:10:41

Linux救援模式命令

2023-06-07 17:04:48

集群Standalone

2018-04-24 09:00:00

开发自动化软件架构

2018-01-17 15:02:28

VMware网络连接

2012-03-26 10:10:56

云计算

2010-09-28 15:33:18

DHCP服务器应用

2010-09-25 15:54:23

SQL存储过程
点赞
收藏

51CTO技术栈公众号