Linux环境变量文件介绍[通俗易懂]

Linux环境变量文件介绍[通俗易懂]在Linux系统中,环境变量按照其作用范围不同大致可以分为系统级环境变量和用户级环境变量。      系统级环境变量:每一个登录到系统的用户都能够读取到系统级的环境变量      用户级环境变量:每一个登录到系统的用户只能够读取属于自己的用户级的环境变量 自然而然地,环境变量的配置文件也相应的被分成了系统级和用户级两种。系统级/etc/profile在…

大家好,又见面了,我是你们的朋友全栈君。

在Linux系统中,环境变量按照其作用范围不同大致可以分为系统级环境变量和用户级环境变量。

            系统级环境变量:每一个登录到系统的用户都能够读取到系统级的环境变量
            用户级环境变量:每一个登录到系统的用户只能够读取属于自己的用户级的环境变量 

自然而然地,环境变量的配置文件也相应的被分成了系统级和用户级两种。

系统级

/etc/profile

在系统启动后第一个用户登录时运行,并从/etc/profile.d目录的配置文件中搜集shell的设置,使用该文件配置的环境变量将应用于登录到系统的每一个用户。

Linux环境变量文件介绍[通俗易懂]

 提示:在Linux系统中,使用以下命令可以使配置文件立刻生效。

source /etc/profile
echo $PATH

/etc/bashrc(Ubuntu和Debian中是/etc/bash.bashrc)

在 bash shell 打开时运行,修改该文件配置的环境变量将会影响所有用户使用的bash shell。

Linux环境变量文件介绍[通俗易懂]

注意:这里的bash shell有不同的类别,不同的类别所使用的环境变量配置文件也有所不同。一般情况下,非登录shell不会执行任何profile文件,非交互shell模式不会执行任何bashrc文件。

# 登录shell和非登陆shell:
登录shell # 需要输入用户密码,例如 ssh 登录或者 su - 命令提权都会启动login shell模式
非登陆shell # 无需输入用户密码;

# 交互shell和非交互shell:
交互shell # 提供命令提示符等待用户输入命令的是交互shell模式
非交互shell # 直接运行脚本文件是非交互shell模式

/etc/environment

在系统启动时运行,用于配置与系统运行相关但与用户无关的环境变量,修改该文件配置的环境变量将影响全局。

用户级

~/.profile(推荐首选)

当用户登录时执行,每个用户都可以使用该文件来配置专属于自己使用的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 ; 
然而, 默认情况下,这些文件不会影响图形会话。

~/.bash_logout

当每次退出系统(退出bash shell)时执行该文件。

注意:Linux系统使用 $VARIABLE_NAME 访问环境变量,多个环境变量之间使用 : 分隔,Windows系统使用 %VARIABLE_NAME% 访问环境变量,多个环境变量之间使用 ; 分隔。

一般情况下,Linux加载环境变量配置文件的执行顺序为:

==> /etc/profile
==> ~/.bash_profile | ~/.bash_login | ~/.profile
==> ~/.bashrc
==> /etc/bashrc
==> ~/.bash_logout

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/139358.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 什么是ER图?数据库ER图基础概念整理

    什么是ER图?数据库ER图基础概念整理前置知识概述:数据模型的基本概念模型就是对现实世界特征的模拟和抽象,数据模型是对现实世界数据特征的抽象。对于具体的模型人们并不陌生,如航模飞机、地图和建筑设计沙盘等都是具体的模型。最常用的数据模型分为概念数据模型和基本数据模型。1)概念数据模型概念数据模型也称为信息模型,是按用户的观点对数据和信息建模,是现实世界到信息世界的第一层抽象,强调其语义表达功能,易于用户理解,是用户和数据库设计人员交流的语言,主要用于数据库设计。这类模型中最著名的是实体联系模型,简称E-R模型。2)基本数据

    2022年6月21日
    39
  • 2g内存能用的安卓模拟器_逍遥模拟器卡顿怎么解决

    2g内存能用的安卓模拟器_逍遥模拟器卡顿怎么解决现在安卓模拟器作为安卓文件在电脑上运行的辅助工具,使用率非常高,不过有一些用户表示自己的电脑配置比较低,使用一些较为热门的模拟器可能会比较卡,不好用,那么下面小编就为大家推荐一番。安卓模拟器低配置版哪个好1、叶子猪手游模拟器叶子猪手游模拟器资源下载版本名称下载地址叶子猪模拟器官方最新版叶子猪手游模拟器下载首先我们将来说说叶子猪手游模拟器,相信喜欢玩游戏的小伙伴都知道,它稳定兼容99%以上硬件…

    2022年4月19日
    210
  • LabVIEW图像分割算法(基础篇—6)

    LabVIEW图像分割算法(基础篇—6)图像分割是简化机器视觉算法的有效手段之一。它将图像分成一些有意义的区域,以便特征提取过程可基于这些区域提取目标的特征。

    2022年5月20日
    50
  • 网络基础知识题_各种基础类型

    网络基础知识题_各种基础类型本文结合多年来的工作实践,来详细讲述一下作为IT从业人员要掌握的一些基础网络知识。

    2022年10月24日
    0
  • java 获取当前时间的三种方法

    1.通过Util包中的Date获取Datedate=newDate();SimpleDateFormatdateFormat=newSimpleDateFormat(“yyyy-MM-dd:hh:mm:ss”);System.out.println(dateFormat.format(date));2.通过Util包的Calendar获取Calendarc…

    2022年4月3日
    41
  • dumpbin用法

    dumpbin用法转自:http://www.cnblogs.com/lidabo/p/3482dumpbin用法:dumpbin/exports/out:d:\mfc90.txtd:\mfc90.lib在使用VC时,可以用DUMPBIN.EXE来得到某个DLL中所输出的符号的清单。如下面的命令:dumpbin-exportsCmpnt1.dll如:C:\WINDOWS\syste…

    2022年6月19日
    28

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号