Linux环境变量具体解释
设置环境变量
profile和bashrc文件
/etc/profile:在登录时,操作系统定制用户环境时使用的第一个文件。此文件为系统的每一个用户设置环境信息,当用户第一次登录时,该文件被运行。
并从/etc/profile.d文件夹的配置文件里搜集shell的设置。
/etc/bashrc:为每个执行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取。
~/.bash_profile:每一个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件只运行一次!默认情况下,他设置一些环境变量,运行用户的.bashrc文件.每一个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件只运行一次!默认情况下,他设置一些环境变量,运行用户的.bashrc文件.
~/.bashrc:该文件包括专用于你的bash shell的bash信息。当登录时以及每次打开新的shell时,该该文件被读取。
~/.profile:在登录时用到的第三个文件。profile文件,每一个用户都可使用该文件输入专用于自己使用的shell信息。当用户登录时,该文件只运行一次!默认情况下。他设置一些环境变量,运行用户的.bashrc文件。
/etc/bashrc:为每个执行bash shell的用户执行此文件。当bash shell被打开时。该文件被读取。
差别:改动/etc下的配置文件对全部用户均生效。须要root权限,而改动~(也就是$HOME)下的隐藏文件。bash_profile和.bash_rc仅对当前用户有效。他们的差别起始就是windows系统变量和用户变量的差别
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZ2F0aWVtZQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
profile和bashrc文件的差别
要搞清bashrc与profile的差别,首先要弄明确什么是交互式shell和非交互式shell,什么是login shell 和non-login shell。
交互式模式就是shell等待你的输入,而且运行你提交的命令。这样的模式被称作交互式是由于shell与用户进行交互。
这样的模式也是大多数用户很熟悉的:登录、运行一些命令、签退。当你签退后,shell也终止了。
shell也能够执行在第二种模式:非交互式模式。在这样的模式下,shell不与你进行交互,而是读取存放在文件里的命令,而且执行它们。当它读到文件的结尾,shell也就终止了。
bashrc与profile都用于保存用户的环境信息,bashrc用于交互式non-loginshell,而profile用于交互式login shell。系统中存在很多bashrc和profile文件,以下逐一介绍:
举例来说。export脚本最好放在profile下,而alias的变量最好放在bashrc下
在bash配置文件里加入环境变量
C_INCLUDE_PATH(for C header files)和CPLUS_INCLUDE_PATH(for C++ header files)的环境变量是指明头文件的搜索路径,此两个环境变量指明的头文件会在-I指定路径之后,系统默认路径之前进行搜索。
LIBRARY_PATH指明库搜索路径。此环境变量指明路径会在-L指定路径之后,系统默认路径之前被搜索, 环境变量用于在程序编译期间查找动态链接库时指定查找共享库的路径,比如,指定gcc编译须要用到的动态链接库的文件夹。
LD_LIBRARY_PATH环境变量用于在程序载入执行期间查找动态链接库时指定除了系统默认路径之外的其它路径,注意,LD_LIBRARY_PATH中指定的路径会在系统默认路径之前进行查找。
bashrc和profile运行的时机和顺序
bash首先运行/etc/profile脚本,/etc/profile脚本先依次运行/etc/profile.d/*.sh
随后bash会运行用户主文件夹下的.bash_profile脚本,.bash_profile脚本会运行用户主文件夹下的.bashrc脚本,
而.bashrc脚本会运行/etc/bashrc脚本,可见假设系统文件和用户文件同一时候改动了一个系统变量,那么用户的配置会覆盖系统的配置。由于用户的配置文件总是后运行
至此,全部的环境变量和初始化设定都已经载入完毕.
bash随后调用terminfo和inputrc,完毕终端属性和键盘映射的设定.
当中PATH这个变量特殊说明一下:
假设是超级用户登录,在没有运行/etc/profile之前,PATH已经设定了以下的路径:
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
假设是普通用户,PATH在/etc/profile运行之前设定了下面的路径:
/usr/local/bin:/bin:/usr/bin
这里要注意的是:在用户切换并载入变量,比如su -,这时,假设用户自己切换自己,比方root用户再用su -root切换的话,载入的PATH和上面的不一样.
准确的说。是不总是一样.所以。在/etc/profile脚本中。做了例如以下的配置:
if [ "$EUID" = "0" ]; then
pathmunge /sbin
pathmunge /usr/sbin
pathmunge /usr/local/sbin
else
pathmunge /usr/local/sbin after
pathmunge /usr/sbin after
pathmunge /sbin after
fi
假设是超级用户登录,在/etc/profile.d/krb5.sh脚本中,在PATH变量搜索路径的最前面添加/usr/kerberos/sbin:/usr/kerberos/bin
假设是普通用户登录,在/etc/profile.d/krb5.sh脚本中,在PATH变量搜索路径的最前面添加/usr/kerberos/bin
在/etc/profile脚本中,会在PATH变量的最后添加/usr/X11R6/bin文件夹
在$HOME/.bash_profile中,会在PATH变量的最后添加$HOME/bin文件夹
以root用户为例,终于的PATH会是这样(没有其他自己定义的基础上)
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin
以gatieme用户(普通用户)为例
/usr/kerberos/bin:/usr/bin:/bin:/usr/X11R6/bin:/home/alice/bin
使环境变量生效
Linux环境变量具体解释的更多相关文章
- 三种配置linux环境变量的方法(以java为例)
1.先确认是否为openjdk:参考 2. 修改/etc/profile文件 如果你的计算机仅仅作为开发使用时推荐使用这种方法,因为所有用户的shell都有权使用这些环境变量,可能会给系统带来安全性 ...
- linux环境变量LD_LIBRARY_PATH
LIBRARY_PATH和LD_LIBRARY_PATH是Linux下的两个环境变量,二者的含义和作用分别如下: LIBRARY_PATH环境变量用于在程序编译期间查找动态链接库时指定查找共享库的路径 ...
- Linux 环境变量和source命令 (转)
可能是班门弄斧了,仅share给尚不知道的童鞋. 1. 问题的来源: 为什么我们编译Android代码时,需要输入: source ./build/envsetup.sh 或者 . . ...
- Ubuntu Linux 环境变量
2011年09月17日 Ubuntu 下设置adb环境变量 分类: 同Windows一样,Ubuntu Linux系统包含两类环境变量:系统环境变量和用户环境变量.系统环境变量对所有系统用户都有效,用 ...
- 设置Linux环境变量的方法与区别(Ubuntu)
设置 Linux 环境变量可以通过 export 实现,也可以通过修改几个文件来实现,有必要弄清楚这两种方法以及这几个文件的区别. 通过文件设置 Linux 环境变量 首先是设置全局环境变量, ...
- Linux环境变量配置全攻略
Linux环境变量配置 在自定义安装软件的时候,经常需要配置环境变量,下面列举出各种对环境变量的配置方法. 下面所有例子的环境说明如下: 系统:Ubuntu 14.0 用户名:uusama 需要配置M ...
- 设置Linux环境变量的方法和区别_Ubuntu
设置 Linux 环境变量可以通过 export 实现,也可以通过修改几个文件来实现,有必要弄清楚这两种方法以及这几个文件的区别. 通过文件设置 Linux 环境变量 首先是设置全局环境变量,对所有用 ...
- Linux 环境变量_006
***Linux 环境变量指系统运行程序或命令的能快速找到其位置等其它功能,不用输入复杂命令.以$PATH环境变量为例子, $PATH决定了shell指定寻找命令或程序的路径,比较执行ls命令,如果没 ...
- Linux学习笔记之Linux环境变量总结
0x00 概述 Linux是一个多用户多任务的操作系统,可以在Linux中为不同的用户设置不同的运行环境,具体做法是设置不同用户的环境变量. 0x01 Linux环境变量分类 按照生命周期来分,Lin ...
随机推荐
- 阶段复习-.NET下托管资源与非托管资源的小记
托管资源由由程序员负责分配,在系统的二级缓存中,GC自动回收释放:而非托管资源也是由程序员负责分配,资源的释放回收也是由程序员负责,使用Dispose或者析构函数对资源进行回收,常见的非托管资源是包装 ...
- HDU 3131 One…Two…Five! (暴力搜索)
题目链接:pid=3131">HDU 3131 One-Two-Five! (暴力搜索) 题意:给出一串数字,要求用加,减,乘,除(5/2=2)连接(计算无优先级:5+3*6=8*6= ...
- drawerLayout-监听事件四个方法介绍
1.首先我们看一下它的监听事件的生命周期 代码如下 mDrawerLayout.setDrawerListener(new DrawerListener() { @Override public vo ...
- FreeMarker template error: The following has evaluated to null or missing
使用freemarker前端分页,报错: FreeMarker template error: The following has evaluated to null or missing 后端直接赋 ...
- Bootstrap时间控件常用配置项
1.给下面4个文本框初始化 $(function(){ $("#orderStartTime,#orderEndTime,#preSaleStartTime,#preSaleEndTim ...
- Java Web学习总结(18)——JSP标签
一.JSP标签介绍 JSP标签也称之为Jsp Action(JSP动作)元素,它用于在Jsp页面中提供业务逻辑功能,避免在JSP页面中直接编写java代码,造成jsp页面难以维护. 二.JSP常用标签 ...
- 洛谷——P1046 陶陶摘苹果
https://www.luogu.org/problem/show?pid=1046 题目描述 陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果.苹果成熟的时候,陶陶就会跑去摘苹果.陶陶有 ...
- [D3] Add hovercard
The way to add hovercard is Append a div with class 'hovercard' in the tick function, positioning th ...
- UVA 11800 - Determine the Shape 几何
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&p ...
- 9.5 Binder系统_驱动情景分析_transaction_stack机制
参考文章:http://www.cnblogs.com/samchen2009/p/3316001.html test_server服务进程可能有多个线程,而在发送数据的时候handle只表示了那个进 ...