linux 系统下的环境变量文件执行区别

摘录网友

 

/etc/profile:此文件为系统的为每个用户设置环境信息,当用户第一次登录时,该文件被执行.(是系统全局环境变量设定)

并从/etc/profile.d 目录的配置文件中搜集shell的设置.

/etc/bashrc :为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.(是系统全局环境变量设定)

~/.bash_profile :每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件.

~/.bashrc :该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取.

~/.bash_logout :当每次退出系统(退出bash shell)时,执行该文件. 

 

bash_profile 、.bashrc 、和.bash_logout

上面这三个文件是bash shell的用户环境配置文件,位于用户的主目录下。

.bash_profile是最重要的一个配置文件,它在用户每次登录系统时被读取,里面的所有 命令都会被bash执行。.profile(由Bourne Shell和Korn Shell使用)和.login(由C Shell使用)两个文件是.bash_profile的同义词,目的是为了兼容其它Shell。 在Debian中使用.profile文件代 替.bash_profile文件。

.bashrc 文件会在bash shell调用另一个bash shell时读取,也就是在shell中再键入bash命令启动一个新shell时就会去读该文件。这样可有效分离登录和子shell所需的环境。但一般 来说都会在.bash_profile里调用.bashrc脚本以便统一配置用户环境。

.bash_logout 在退出shell时被读取。所以我们可把一些清理工作的命令放到这文件中。

 

登录Linux时,首先启动 /etc/profile 文件,然后再启动用户目录下的 ~/.bash_profile、 ~/.bash_login或 ~/.profile文件中的其中一个(根据不同的linux操作系统的不同,命名不一样),执行的顺序为:~/.bash_profile、 ~/.bash_login、 ~/.profile。

如果 ~/.bash_profile文件存在的话,一般还会执行 ~/.bashrc文件。


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

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

 

source命令:
source命令也称为“点命令”,也就是一个点符号(.),是bash的内部命令。
功能:使Shell读入指定的Shell程序文件并依次执行文件中的所有语句
source命令通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录。
用法:
source filename 或 . filename
source命令(从 C Shell 而来)是bash shell的内置命令;点命令(.),就是个点符号(从Bourne Shell而来)是source的另一名称。

source filename 与 sh filename 及./filename执行脚本的区别在那里呢?
1.当shell脚本具有可执行权限时,用sh filename与./filename执行脚本是没有区别得。./filename是因为当前目录没有在PATH中,所有"."是用来表示当前目录的。
2.sh filename 重新建立一个子shell,在子shell中执行脚本里面的语句,该子shell继承父shell的环境变量,但子shell新建的、改变的变量不会被带回父shell,除非使用export。
3.source filename:这个命令其实只是简单地读取脚本里面的语句依次在当前shell里面执行,没有建立新的子shell。那么脚本里面所有新建、改变变量的语句都会保存在当前shell里面。

你可能感兴趣的:(Linux)