【博客138】Linux环境变量配置文件

内容: 记录一下linux下的环境变量配置文件以及读取过程

概念:

环境变量(environment variables)是指:在操作系统中用来指定操作系统运行环境的一些参数
举例:
比如常用的PATH环境变量,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前
目录下面寻找此程序外,还会到PATH中指定的路径去找。你可以在终端使用printenv PATH查看当前PATH
变量的值。

类型:

系统环境变量:对所有系统用户都有效
用户环境变量:仅仅对当前的用户有效

几个常见配置文件:

/etc/profile : 此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。

/etc /environment : 系统的环境变量,系统应用程序的执行与用户环境可以是无关的,但与系统环境是
                    相关的

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

/etc/bashrc : 为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.

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

配置文件分类:

1.用户环境变量可存储在以下文件中:

~/.profile
~/.bashrc, ~/.bash_profile, ~/.bash_login (当一个存在不会继续加载)

推荐将环境变量保存在~/.profile中,因为无论通过控制台或图形界面启动程序时,都会自动执行该文件.~/.bashrc, ~/.bash_profile, ~/.bash_login这些文件,通过shell启动程序时,它们也会加载;
但当通过图形界面环境启动程序时,这些文件中的环境变量设置便不可用了。


2.系统环境变量可存储在以下文件中:
/etc/environment
/etc/profile
/etc/profile.d(它是文件夹,/etc/profile.d文件夹来源于/etc/profile,在该目录下的*.sh,
                即以sh为后缀的文件都会被加载。)
/etc/bash.bashrc

不推荐使用/etc/bash.bashrc,因为在图形界面环境下启动程序时,不会加载它里边的环境变量设置。

注意:配置文件修改后需要使用source来生效, 比如:source ~/.bashrc

不同权限环境变量配置:

一:使当前用户生效配置
修改目标:用户主目录下的.profile或.bashrc文件
方法:
1.登录到你的用户(非root),在终端输入:
2.sudo gedit ~/.profile(or .bashrc)
在此文件末尾加入环境变量的设置,比如:
export PATH=”$PATH:your path1:your path2 ...3.保存文件,注销再登录,变量生效。

二:使所有用户生效配置
修改目标:系统目录下的profile文件
方法:
1.sudo gedit /etc/profile
在此文件末尾加入环境变量的设置,比如:
export PATH=”$PATH:your path1:your path2 ...2.该文件编辑保存后,重启系统,变量生效。

三:全局环境变量配置
修改目标:系统目录下的 environment 文件
方法:
1.sudo gedit /etc/environment
2.以修改PATH为例子:
找到PATH="<......>",并修改该 PATH 变量,在其中加入自己的path即可,例如:
PATH="<......>:your path1:your path2 …"
各个path之间用冒号分割。该文件也是重启生效,影响所有用户。
注意这里不是添加export PATH=… 。

四:临时生效配置 (这种方式变量立即生效,但用户注销或系统重启后设置变成无效)
1.sudo export PATH="$PATH:your path1:your path2 …"

修改环境变量方法:

1.修改环境变量的值
 直接覆盖原来的值修改 : EXAMPLE="New"

2.删除一个环境变量

unset $EXAMPLE

Linux启动时读取配置文件的过程:

1.读取/etc/enviroment
2.读取/etc/profile
           -->/etc/bash.bashrc
           --> /etc/profile
           -->/etc/profile.d/ 下的所有.sh文件
3.读取~/.bash_profile,否则读取~/.bash_login,再否则~/.profile
(三者存在读取优先关系 依次读取,谁存在就执行谁,然后后面的就不会再执行)
4.~/.bashrc (如果运行bash才运行)
           -->~/.bash_aliases
           -->/etc/bash_completion         
5.~/.bash_logout:当每次退出系统(退出bash shell)时,执行该文件。

常见环境变量:

BASH Bash : Shell的全路径
CDPATH    :用于快速进入某个目录。
PATH      :决定了shell将到哪些目录中寻找命令或程序
HOME      :当前用户主目录
HISTSIZE  :历史记录数
LOGNAME   :当前用户的登录名
HOSTNAME  :指主机的名称
SHELL     :当前用户Shell类型
LANGUGE   :语言相关的环境变量,多语言可以修改此环境变量
MAIL      :当前用户的邮件存放目录
PS1       :基本提示符,对于root用户是#,对于普通用户是$

大四学生一枚,文章均非抄袭或者模仿,均为原创,仅代表个人观点,如果文章有错误的地方,欢迎在下方提出,每条评论我都会去认真看并回复,同时感谢指正的前辈

发布了158 篇原创文章 · 获赞 34 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_43684922/article/details/103438109