在Linux系统中,环境变量根据其作用范围不同大致可以分为系统级环境变量和用户级环境变量。
系统级环境变量:每一个登陆到系统的用户都才能读取到系统级的环境变量
用户级环境变量:每一个登陆到系统的用户只才能读取属于自己的用户级的环境变量
自然而然地linux命令vi,环境变量的配置文件也相应的被分成了系统级和用户级两种。
系统级
/etc/profile
在系统启动后第一个用户登入时运行,并从/etc/profile.d目录的配置文件中搜集shell的设置,使用该文件配置的环境变量将应用于登陆到系统的每一个用户。
提示:在Linux系统中,使用以下命令可以使配置文件立即生效。
source /etc/profile echo $PATH
/etc/bashrc(Ubuntu和Debian中是/etc/bash.bashrc)
在bashshell打开时运行,更改该文件配置的环境变量将会影响所有用户使用的bashshell。
注意:这儿的bashshell有不同的类别,不同的类别所使用的环境变量配置文件也有所不同。通常情况下,非登陆shell不会执行任何profile文件,非交互shell模式不会执行任何bashrc文件。
#登陆shell和非登录shell:
登陆shell#须要输入用户密码,比如ssh登陆或则su–命令加壳就会启动loginshell模式
非登录shell#无需输入用户密码;
#交互shell和非交互shell:
交互shell#提供命令提示符等待用户输入命令的是交互shell模式
非交互shell#直接运行脚本文件是非交互shell模式
/etc/environment
在系统启动时运行,用于配置与系统运行相关但与用户无关的环境变量,更改该文件配置的环境变量将影响全局。
用户级
~/.profile(推荐首选)
当用户登入时执行linux环境变量 文件配置,每位用户都可以使用该文件来配置专属于自己使用的shell信息。
~/.bashrc
当用户登入时以及每次打开新的shell时该文件都将被读取,不推荐在这儿配置用户专用的环境变量,由于每开一个shell,该文件就会被读取一次,效率肯定受影响。
~/.bash_profile或~./bash_login
~/.bash_profile or ~./bash_login - If one of these file exist, bash executes it rather then "~/.profile" when it is started as a login shell. (Bash will prefer "~/.bash_profile" to "~/.bash_login"). However, these files won't influence a graphical session by default.
以上是ubuntu官网给出的关于~/.bash_profile和~./bash_login的说明,翻译为英文:
~/.bash_profile或~./bash_login–
假如有其中的一个文件存在的话,当启动的是一个登陆shell时,Bash会执行该文件而不会执行~/.profile;
假如两个文件都存在的话,Bash将会优先执行~/.bash_profile而不是~/.bash_login;
但是,默认情况下linux环境变量 文件配置,这种文件不会影响图形会话
~/.bash_logout
当每次退出系统(退出bashshell)时执行该文件。
注意:Linux系统使用$VARIABLE_NAME访问环境变量,多个环境变量之间使用:分隔,Windows系统使用%VARIABLE_NAME%访问环境变量,多个环境变量之间使用;分隔。
通常情况下红旗linux系统下载,Linux加载环境变量配置文件的执行次序为:
==> /etc/profile ==> ~/.bash_profile | ~/.bash_login | ~/.profile ==> ~/.bashrc ==> /etc/bashrc ==> ~/.bash_logout
到此这篇关于探讨Linux环境变量文件介绍的文章就介绍到这了。