使用Linux环境变量
bash shell用一个叫做环境变量的特性来存储有关shell会话和工作环境的信息。
全局环境变量
这对shell 会话和所有生成的子shell都是可见的。局部变量只对创建他们的shell可见。
系统环境变量基本上都是大写的,以区分普通用户的环境变量。
要查看全局变量,可以使用env或者printenv
要查看个别的环境变量,使用printenv命令
$ printenv HOME
/home/Christine
也可以使用echo命令来查看变量的值,这时是在引用某个环境变量的值,必须在变量前面加一个美元符号($),这能够使这个引用的变量作为命令的参数。
全局变量可作用于进程所有的子shell。
局部环境变量
这只能在他们的进程中可见。Linux也默认定义了标准的局部环境变量。自己也可以定义环境变量,这被用户自定义局部变量。
Linux系统中并没有只显示局部环境变量的命令。set命令会显示某个特定进程的设置的所有的环境变量,包括局部变量、全局变量、用户自定义变量。
env、printenv和set命令之间的区别在于前两个命令不会对变量进行排序,也不会输出局部变量和用户自定义变量。
设置用户定义变量
设置局部用户定义变量
$ echo $my_variable $ my_variable=Hello
$
$ echo $my_variable
注意:
- 如果要给变量赋一个含有空格的字符串的值,必须使用单引号来界定,如my_variable="hello world" 。
- 变量名、等号和值之间没有空格。
- 如果生成了另外一个shell,它在子shell中就不可用了。
所有的环境变量全部使用大写,这是bash shell的标准惯例。如果是自己创建的局部变量或者是shell脚本,请使用小写字母。
设置全局环境变量
在设定全局环境变量的进程所创建的子进程中,该变量都是可见的。创建环境变量的方法是先创建一个局部变量,然后再把它导入到全局变量中。
$ my_variable="I am a Global now"
$
$ export my_variable
$ echo $ my_variable
I am a Global now
$ bash
$
$ echo $ my_variable
I am a Global now
$ exit
exit
修改子shell中的全局环境变量并不会影响到父shell中变量的值,子shell甚至无法使用export命令改变父shell中全局环境变量的值,父shell的中全局环境变量依旧保留原先的值。
删除环境变量
使用unset命令删除,注意不要使用$。
$echo $my_variable
I am Global now
$ unset my_variable
$
$ echo $my_variable $
如果要用到变量,使用$,如果要操作变量,不使用$。这条规则的例外就是printenv显示某个变量的值。
在处理全局环境变量的时候,如果你在子进程中删除了一个全局环境变量,这只对子进程有效,和修改变量一样。
设置PATH环境变量
PATH环境变量定义了用于进行命令和程序查找的目录,目录之间使用:进行分割,你只需引用原来的PATH的值,然后再给这个字符串添加新目录就行了。
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
$
$ PATH=$PATH:/home/christine/Scripts
$ /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/christine/Scripts
注意:如果希望子shell也能找到你的程序的位置,一定要记得把修改后的PATH环境导出。
注意:对PATH变量的修改只能持续到退出或重启系统。
使用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 ...
- 转:Linux环境变量设置方法总结 PATH、LD_LIBRARY_PATH
转: https://www.linuxidc.com/Linux/2017-03/142338.htm 文章写比较全 转载记录 Linux环境变量设置方法总结 PATH.LD_LIBRARY_P ...
随机推荐
- [C++][OpenGL]自己写GUI(0)——介绍
文章可转载,转载请注明出处:http://www.cnblogs.com/collectionne/p/6928612.html.文章未完,如果不在博客园(cnblogs)发现本文,请访问前面的链接查 ...
- 【JAVAEE学习笔记】hibernate02:实体规则、对象状态、缓存、事务、批量查询和实现客户列表显示
一.hibernate中的实体规则 实体类创建的注意事项 1.持久化类提供无参数构造 2.成员变量私有,提供共有get/set方法访问.需提供属性 3.持久化类中的属性,应尽量使用包装类型 4.持久化 ...
- 解决 Excel 打开 UTF-8 编码 CSV 文件乱码的 BUG
解决 Excel 打开 UTF-8 编码 CSV 文件乱码的 BUG zoerywzhou@163.com http://www.cnblogs.com/swje/ 作者:Zhouwan 2017-6 ...
- 有趣而又被忽略的Unity技巧
0x00 前言 本文的内容主要来自YouTube播主Brackeys的视频TOP 10 UNITY TIPS 和TOP 10 UNITY TIPS #2.在此基础上经过自己的实践和筛选之后,选择了几个 ...
- 框架和css基础
框架:一.框架集:1.<frameset></frameset>不能有<body>标签 属性:1)cols:把网页拆分成几列(左右拆分)eg:<framese ...
- 学习web前端怎样入门?初学者赶紧看过来!
web前端怎么样才能入门,首先我们要从什么是初级web前端工程师说起: 按照我的想法,我把前端工程师分为了入门.初级.中级.高级这四个级别, 入门级别指的是了解什么是前端(前端到底是什么其实很多人还是 ...
- Bash环境配置文件
一.环境配置文件读取优先级 其中~/.bash_profile,~/.bash_login,~/.profile三个文件只有一个有效,查找优先级从左至右降低.bash会一直检查是否有~/.bashrc ...
- DDD理论学习系列(7)-- 值对象
DDD理论学习系列--案例及目录 1.引言 提到值对象,我们可能立马就想到值类型和引用类型.而在C#中,值类型的代表是strut和enum,引用类型的代表是class.interface.delega ...
- js中年份、月份下拉框
<select id="year" style="width: 100px;"></select> <select id=&quo ...
- flask笔记一
最近学习flask,由于web开发方面接触的并不是很多,所以看官方文档有点焦头烂额,好多的概念不理解. <Flask web 开发>比较基础,先用这本书做个入门. 1.Flask实例化对象 ...