参考:Linux公社Ubuntu系统环境变量详解

UNIX/Linux系统中的环境变量和库文件的使用方法

由于Linux系统严格的权限管理,造成Ubuntu系统有多个环境变量配置文件,因此我们需要了解每一个环境变量的作用。

一、Ubuntu Linux系统环境变量配置文件

Ubuntu系统环境变量包括两种:系统级文件和用户级文件。

1.1 系统级文件

/etc/profile:在登陆时,操作系统定制用户环境时使用的第一个文件,该文件为系统的所有用户设置环境信息,一般是通过调用/etc/bash.bashrc文件;

/etc/bash.bashrc:系统级的bashrc文件,为每一个运行bash shell的用户执行此文件,但用户执行bash shell时,该文件被执行;

/etc/environment:在登陆时,操作系统使用的第二个文件,系统读取某个用户的~/profile前,设置环境文件的环境变量;

1.2 用户级文件

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

~/bashrc:该文件包含专用于你的bash shell的bash信息,当登陆以及每次打开新的shell时,该文件都会被读取。因此不推荐把shell放置此位置,因为每打开一个shell,这个文件就会被读取一次,效率上讲不好。

~/.bash_profile:单用户专用,登陆时仅执行一次,默认设置环境变量,执行~/.bashrc。是以login方式进入bash运行的。而~/.bashrc是以non-login方式进入bash运行的。

~/.bash_login:登陆shell启动时会被读取。也还是login方式进行bash运行。

~/.bash_logout:是以logout方式进行,即退出bash shell时,执行此文件。

~/.pam_environment:用户级的环境变量设置文件。

另外,/etc/profile中设定的变量(全局)作用于任何用户,而~/.bashrc等中设定的变量只能继承/etc/profile的变量和当前用户下的~/.bashrc的变量。

二、/etc/profile/etc/environment的比较

登陆系统时shell读取的顺序应该是:

/etc/profile -> /etc/environment -> $HOME/.profile -> $HOME/.env

推出系统时,执行shell的顺序为:

/etc/profile -> (~/.bash_profile | ~/.bash_login | ~/.profile) -> ./bashrc -> ``

/etc/environment是设置整个系统的环境,而/etc/profile是设置所有用户的环境,前者与登录用户无关,后者与登录用户有关。

系统应用程序的执行与用户环境可以是无关的,但与系统环境是相关的,所以当你登录时,你看到的提示信息,比如日期、时间信息的显示格式与系统环境的LANG是相关的,缺省LANG=en_US,如果系统环境LANG=zh_CN,则提示信息是中文的,否则是英文的。

三、设置环境变量的方法

3.1 控制台中:(暂时性)

$PATH="$PATH:/my_new_path"

3.2 修改profile文件

sudo gedit /etc/profile或者sudo gedit ~/.profile

最底行加入:

export PATH="PATH:/mt_new_path"

3.3 修改.bashrc文件

sudo gedit /root/.bashrc或者sudo gedit ~/.bashrc

在里面加入:

export PATH="$PATH:/my_new_path"

第二、三种方法中/etc下的配置,需要重启系统才能生效。

用户目录下,使用source激活环境变量,例如,source ~/.bashrc

四、小结

在Ubuntu系统中/etc/profile文件是全局的环境变量配置文件,它适应于所有的shell。在我们登陆Linux系统时,首先启动/etc/profile文件,然后再启动用户目录下的~/.bash_profile~/.bash_login~/.profile文件中的其中一个,执行的顺序和上面的排序一样。如果~/.bash_profile文件存在的话,一般还会执行~/.bashrc文件。

4、Ubuntu系统环境变量详解的更多相关文章

  1. Maya 常用环境变量详解

    Maya 常用环境变量详解 前言: Maya 的环境变量让用户可以很方便的自定义 Maya 的功能. 在 Maya 的 Help 帮助文档中有专门的一个章节< Environment Varia ...

  2. mysql show variables系统变量详解

    mysql系统变量详解 mysqld服务器维护两种变量.全局变量影响服务器的全局操作.会话变量影响具体客户端连接相关操作. 服务器启动时,将所有全局变量初始化为默认值.可以在选项文件或命令行中指定的选 ...

  3. ubuntu apache2配置详解(含虚拟主机配置方法)

    ubuntu apache2配置详解(含虚拟主机配置方法) 在Windows下,Apache的配置文件通常只有一个,就是httpd.conf.但我在Ubuntu Linux上用apt-get inst ...

  4. 基于集合成工控机Ubuntu系统安装分区详解

    基于集合成工控机Ubuntu系统安装分区详解 硬件描述:双核的CPU,128G的固态硬盘 软件描述:使用Ubuntu12.04系统,内核3.8.0-29版本,QT4.8.1版本 1.新建分区表 /de ...

  5. net core体系-web应用程序-4net core2.0大白话带你入门-5asp.net core环境变量详解

    asp.net core环境变量详解   环境变量详解 Windows操作系统的环境变量在哪设置应该都知道了. Linux(centos版本)的环境变量在/etc/profile里面进行设置.用户级的 ...

  6. Shell学习之Bash变量详解(二)

    Shell学习之Bash变量详解 目录 Bash变量 Bash变量注意点 用户自定义变量 环境变量 位置参数变量 预定义变量 Bash变量 用户自定义变量:在Bash中由用户定义的变量. 环境变量:这 ...

  7. asp.net core环境变量详解

    环境变量详解 Windows操作系统的环境变量在哪设置应该都知道了. Linux(centos版本)的环境变量在/etc/profile里面进行设置.用户级的环境变量在其它文件里面,不多说了,有兴趣的 ...

  8. Nginx基础篇(2)- Nginx基本配置文件和变量详解

    Nginx基本配置文件和变量详解 1. 基本配置文件 /etc/nginx/nginx.conf # nginx运行的用户 user nginx; # nginx进程数,建议设置为等于CPU总核心数. ...

  9. 如何查找YUM安装的JAVA_HOME环境变量详解

    如何查找YUM安装的JAVA_HOME环境变量详解  更新时间:2017年10月27日 09:44:56   作者:铁锚   我要评论 这篇文章主要给大家介绍了关于如何查找YUM安装的JAVA_HOM ...

随机推荐

  1. [转] J2EE基础知识

    Servlet总结 阐述Servlet和CGI的区别? CGI的不足之处: Servlet的优点: Servlet接口中有哪些方法及Servlet生命周期探秘 get和post请求的区别 什么情况下调 ...

  2. WebLogic调用WebService提示Failed to localize、Failed to create WsdlDefinitionFeature

    在本地Tomcat环境下调用WebService正常,但是部署到WebLogic环境中,则提示警告:[Failed to localize] MEX0008.PARSING_MDATA_FAILURE ...

  3. Python3 list sort排序

    转自:https://blog.csdn.net/u010758410/article/details/79737498 当带排序列表的元素由多字段构成时,我们可以通过sorted(iterable ...

  4. IDEA入门级使用教程----你怎么还在用eclipse?

    http://blog.csdn.net/qq_31655965/article/details/52788374

  5. 【转载】EclEmma工具介绍

    https://wenku.baidu.com/view/1017567e5acfa1c7aa00cc5f.html https://www.ibm.com/developerworks/cn/rat ...

  6. 使用openlayers 3 在线加载天地图及GeoServer发布的地图

    使用openlayers3来加载天地图卫星图和标注图层,GeoServer发布地图,一并用openlayers测试加载出来,顺便实现了7种地图控件.下面直接贴代码: <!DOCTYPE html ...

  7. css display属性

    C:内联元素加上display:block后被块级化.块级元素一般是其他元素的容器,可容纳内联元素和其他块状元素,块级元素排斥其他元素与其位于同一行,width和height起作用.因此,可以定义其宽 ...

  8. Python 爬虫常用的库

    一.常用库 1.requests 做请求的时候用到. requests.get("url") 2.selenium 自动化会用到. 3.lxml 4.beautifulsoup 5 ...

  9. Python 全集变量

    1.添加关键字: global 在要给变量从新赋值的时候添加. 全局变量都大写,局部变量都小写.

  10. 【Django】【环境配置】Mac

    mysql环境配置:http://www.cnblogs.com/chenmo-xpw/p/6102933.html