4、Ubuntu系统环境变量详解
由于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系统环境变量详解的更多相关文章
- Maya 常用环境变量详解
Maya 常用环境变量详解 前言: Maya 的环境变量让用户可以很方便的自定义 Maya 的功能. 在 Maya 的 Help 帮助文档中有专门的一个章节< Environment Varia ...
- mysql show variables系统变量详解
mysql系统变量详解 mysqld服务器维护两种变量.全局变量影响服务器的全局操作.会话变量影响具体客户端连接相关操作. 服务器启动时,将所有全局变量初始化为默认值.可以在选项文件或命令行中指定的选 ...
- ubuntu apache2配置详解(含虚拟主机配置方法)
ubuntu apache2配置详解(含虚拟主机配置方法) 在Windows下,Apache的配置文件通常只有一个,就是httpd.conf.但我在Ubuntu Linux上用apt-get inst ...
- 基于集合成工控机Ubuntu系统安装分区详解
基于集合成工控机Ubuntu系统安装分区详解 硬件描述:双核的CPU,128G的固态硬盘 软件描述:使用Ubuntu12.04系统,内核3.8.0-29版本,QT4.8.1版本 1.新建分区表 /de ...
- net core体系-web应用程序-4net core2.0大白话带你入门-5asp.net core环境变量详解
asp.net core环境变量详解 环境变量详解 Windows操作系统的环境变量在哪设置应该都知道了. Linux(centos版本)的环境变量在/etc/profile里面进行设置.用户级的 ...
- Shell学习之Bash变量详解(二)
Shell学习之Bash变量详解 目录 Bash变量 Bash变量注意点 用户自定义变量 环境变量 位置参数变量 预定义变量 Bash变量 用户自定义变量:在Bash中由用户定义的变量. 环境变量:这 ...
- asp.net core环境变量详解
环境变量详解 Windows操作系统的环境变量在哪设置应该都知道了. Linux(centos版本)的环境变量在/etc/profile里面进行设置.用户级的环境变量在其它文件里面,不多说了,有兴趣的 ...
- Nginx基础篇(2)- Nginx基本配置文件和变量详解
Nginx基本配置文件和变量详解 1. 基本配置文件 /etc/nginx/nginx.conf # nginx运行的用户 user nginx; # nginx进程数,建议设置为等于CPU总核心数. ...
- 如何查找YUM安装的JAVA_HOME环境变量详解
如何查找YUM安装的JAVA_HOME环境变量详解 更新时间:2017年10月27日 09:44:56 作者:铁锚 我要评论 这篇文章主要给大家介绍了关于如何查找YUM安装的JAVA_HOM ...
随机推荐
- hihoCoder week14 无间道之并查集
并查集的基本使用 #include <bits/stdc++.h> using namespace std; ; int n, fa[N]; int cnt, tot; map<st ...
- P4145 上帝造题的七分钟2 / 花神游历各国
思路 每个数不会被开方超过log次,对每个数暴力开方即可 代码 #include <algorithm> #include <cstring> #include <cst ...
- [HDU] 平方和与立方和
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2007 //坑:注意判断输入两个数的前后大小关系 // 用while 循环 #include<io ...
- PTA 7-2 二叉搜索树的结构(30 分)
7-2 二叉搜索树的结构(30 分) 二叉搜索树或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值:若它的右子树不空,则右子树上所有结点的值均大 ...
- PTA 7-1 整数分解为若干项之和(20 分)
7-1 整数分解为若干项之和(20 分) 将一个正整数N分解成几个正整数相加,可以有多种分解方法,例如7=6+1,7=5+2,7=5+1+1,….编程求出正整数N的所有整数分解式子. 输入格式: 每个 ...
- Latex: IEEEtrans模板下 扩大标题宽度
参考: Extending side margins for Title section in IEEEtrans document class Latex: IEEEtrans模板下 扩大标题宽度 ...
- 17秋 SDN课程 第一次上机作业
第一题 拓扑: 测试连通性: 第二题 拓扑: 测试连通性: 第三题 拓扑: 测试连通性:
- python学习 day10打卡 函数的进阶
本节主要内容: 1.函数参数--动态参数 2.名称空间,局部名称空间,全局名称空间,作用域,加载顺序. 3.函数的嵌套 4.gloabal,nonlocal关键字 一.函数参数--动态传参 形参的第三 ...
- JqGrid 列时间格式化
{name:'createTime',index:'createTime',label:"创建时间", editable:false,formatter:"date&qu ...
- html 进度条
<html> <head> <title>进度条</title> <style type="text/css"> .co ...