加入收藏 | 设为首页 | 会员中心 | 我要投稿 东莞站长网 (https://www.0769zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

Linux中环境变量有什么类型,放在何处

发布时间:2023-09-09 11:04:57 所属栏目:Linux 来源:转载
导读:   今天就跟大家聊聊有关“Linux中环境变量有什么类型,放在哪里”的内容,可能很多人都不太了解,为了让大家认识和更进一步的了解,小编给大家总结了以下内容,希望这篇&ldquo
  今天就跟大家聊聊有关“Linux中环境变量有什么类型,放在哪里”的内容,可能很多人都不太了解,为了让大家认识和更进一步的了解,小编给大家总结了以下内容,希望这篇“Linux中环境变量有什么类型,放在哪里”文章能对大家有帮助。
 
  linux中包含环境变量的配置文件有多个:1、“/etc/profile”文件,该文件配置的环境变量将应用于登录到系统的每一个用户;2、“/etc/bashrc”,修改该文件配置的环境变量将会影响所有用户使用的bash shell;3、“/etc/environment”,该文件包含与系统运行相关但与用户无关的环境变量;4、“~/.profile”;5、“~/.bashrc”。
 
  一、环境变量介绍:
 
   在Linux系统中,环境变量按照其作用范围不同大致可以分为系统级环境变量和用户级环境变量。
 
  系统级环境变量:每一个登录到系统的用户都能够读取到系统级的环境变量;
 
  用户级环境变量:每一个登录到系统的用户只能够读取属于自己的用户级的环境变量;
 
    自然而然地,环境变量的配置文件也相应的被分成了系统级和用户级两种。
 
  二、系统级:
 
  1、/etc/profile
 
  在系统启动后第一个用户登录时运行,并从/etc/profile.d目录的配置文件中搜集shell的设置,使用该文件配置的环境变量将应用于登录到系统的每一个用户。
 
  提示:在Linux系统中,使用以下命令可以使配置文件立刻生效。
 
    source /etc/profile
 
    echo $PATH
 
  2、/etc/bashrc(Ubuntu和Debian中是/etc/bash.bashrc)
 
  在 bash shell 打开时运行,修改该文件配置的环境变量将会影响所有用户使用的bash shell。
 
  注意:这里的bash shell有不同的类别,不同的类别所使用的环境变量配置文件也有所不同。
 
  一般情况下,非登录shell不会执行任何profile文件,非交互shell模式不会执行任何bashrc文件。
 
  3、/etc/environment
 
  在系统启动时运行,用于配置与系统运行相关但与用户无关的环境变量,修改该文件配置的环境变量将影响全局。
 
  三、用户级:
 
  1、~/.profile(推荐首选)
 
  ~/.profile: executed by Bourne-compatible login shells.
 
  当用户登录时执行,每个用户都可以使用该文件来配置专属于自己使用的shell信息。
 
  2、~/.bashrc
 
  ~/.bashrc: executed by bash(1) for non-login shells.
 
  当用户登录时以及每次打开新的shell时该文件都将被读取,不推荐在这里配置用户专用的环境变量,因为每开一个shell,该文件都会被读取一次,效率肯定受影响。
 
  生效用:source
 
  bashrc和profile的差异
 
  从上面的英文描述可以知道,bashrc和profile的差异在于:
 
    注意:通常我们修改bashrc,有些linux的发行版本不一定有profile这个文件;
 
  1. bashrc 是在系统启动后就会自动运行。
 
  2. profile 是在用户登录后才会运行。
 
  3. 进行设置后,可运用source bashrc命令更新bashrc,也可运用source profile命令更新profile。
 
  4. /etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承/etc/profile中的变量,他们是"父子"关系。
 
  3、~/.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 ;
 
  然而, 默认情况下,这些文件不会影响图形会话。
 
  4、~/.bash_logout
 
  当每次退出系统(退出bash shell)时执行该文件。
 
  注意:Linux系统使用 $VARIABLE_NAME 访问环境变量,多个环境变量之间使用 “:”分隔,Windows系统使用 %VARIABLE_NAME% 访问环境变量,多个环境变量之间使用 ; 分隔。
 

(编辑:东莞站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章