Linux环境变量
本文地址:http://www.cnblogs.com/archimedes/p/linux-envionment-variables.html,转载请注明源地址。
1.什么是环境变量
bash shell用一个称作环境变量的特性来存储有关shell会话和工作环境的信息,它允许你在内存中存储数据,以便运行在shell上的程序和脚本访问
在bash shell中,环境变量分为两类:全局变量和局部变量
(1)全局环境变量
全局环境变量不仅对shell会话可见,对所有shell创建的子进程中需要获得父进程信息的程序来说非常有用。Linux系统在你开始bash会话之前就设置了一些全局环境变量
系统环境变量的一律用全大写字母以区别与普通用户的环境变量
查看全局变量,可以使用printenv命令(由于结果太多,不写出来)
要显示单个环境变量,可以使用echo命令。当引用环境变量时,必须在环境变量的名称前放置一个$符:
wu@ubuntu:~/Ccode$ echo $HOME
/home/wu
(2)局部环境变量
局部环境变量只能在定义它们的进程中可见,查看局部环境变量的列表有点复杂,在Linux系统中并没有这样的一个命令只显示局部环境变量
set命令会显示某个特定进程设置的所有环境变量,当然也包括全局变量
2.设置环境变量
(1)设置局部环境变量
一旦启动了bash shell,你就能创建在这个shell进程内可见的局部变量了,你可以通过等号来给环境变量赋值,值可以是数值或字符串:
wu@ubuntu:~$ test=testing
wu@ubuntu:~$ echo $test
testing
如果要给变量赋一个含有空格的字符串,必须用单引号来界定字符串的开始和结尾:
wu@ubuntu:~$ test=testing a long string
a: command not found
wu@ubuntu:~$ test='testing a long string'
wu@ubuntu:~$ echo $test
testing a long string
(2)设置全局环境变量
创建全局环境变量的方法是先创建一个局部环境变量,然后再把它导出到全局环境中
这个过程通过export命令来完成:
wu@ubuntu:~$ echo $test
testing a long string
wu@ubuntu:~$ export test
wu@ubuntu:~$ bash
wu@ubuntu:~$ echo $test
testing a long string
(3)删除环境变量
可以使用unset命令来删除环境变量:
wu@ubuntu:~$ echo $test
testing a long string
wu@ubuntu:~$ unset test
wu@ubuntu:~$ echo $test
wu@ubuntu:~$
3.默认shell环境变量
1、BASH :记录当前bash shell的路径。
2、BASH_SUBSHELL :记录当前子shell的层次。BASH_SUBSHELL是从0开始计数的整数。
3、BASH_VERSINFO :是一个数组包含六个元素,这六个元素显示bash的版本信息。
4、BASH_VERSION :显示shell版本的信息。
5、DIRSTACK :记录了栈顶的目录值,初值为空。
6、GLOBLGNORE :是由冒号分割的模式列表,表示通配时忽略的文件名集合。
7、GROUPS :记录当前用户所属的组。
8、HOME :记录当前用户的家目录,由/etc/passwd的倒数第二个域决定。
9、HOSTNAME :记录主机名。
10、HOSTTYPE和MACHTYPE :都是记录系统的硬件架构。
11、IFS :用于设置指定shell域分隔符,默认情况下为空格。
12、OLDPWD :记录旧的工作目录。
13、OSTYPE :记录操作系统类型。
14、PATH :环境变量,显示当前PATH环境变量的内容。
15、PPID :是创建当前进程的进程号,即当前进程的父进程号
16、PS1 :提示符变量,用于设置提示符格式,用于设置一级shell提示符环境变量。
17、PS2 :用于设置二级shell提示符环境变量。
18、PWD :记录当前路径
19、REPLY :REPLY变量与read和select有关。
20、SECONDS:记录脚本从开始到结束耗费的时间。
21、SHELL :显示当前所用的shell
22、SHELLOPTS :记录了处于“开”状态的shell选项列表,它只是一个只读变量。
23、SHLVL :记录了bash嵌套的层次,一般来说,我们启动第一个Shell时。 $SHLVL=1。如果在这个Shell中执行脚本,脚本中的$SHLVL=2 。
24、TMOUT :用来设置脚本过期的时间,比如TMOUT=3,表示该脚本3秒后过期。
25、UID : 已登用户的ID
26、USER :显示当前用户名字
4.设置PATH环境变量
PATH定义了命令行输入命令的搜素路径,如果找不到命令,它会产生一个错误:
wu@ubuntu:~$ myprog
myprog: command not found
可以添加新的搜素目录到现有的PATH环境变量,无需从头定义,PATH中的目录之间是用冒号分隔的,所以你只需引用原来的PATH值,然后再给字符串添加新的目录就行
5.可变数组
环境变量一个很好的功能就是它们可作为数组使用,要给某个环境变量设置多个值,可以把值放在括号里,值与值之间用空格隔开:
wu@ubuntu:~$ mytest=(one two three four five)
wu@ubuntu:~$ echo $mytest
one
只有第一个值显示出来了。要引用一个单独的数组元素,必须用代表它在数组中位置的数值索引值,数值要用方括号括起来:
wu@ubuntu:~$ echo ${mytest[2]}
three
要显示整个数组变量,可用星号作为通配符放在索引值的位置:
wu@ubuntu:~$ echo ${mytest[*]}
one two three four five
你也可以改变某个索引位置的值:
wu@ubuntu:~$ mytest[2]=seven
wu@ubuntu:~$ echo ${mytest[*]}
one two seven four five
你甚至可以用unset命令来删除数组中的某个值,但是要小心:
wu@ubuntu:~$ unset mytest[2]
wu@ubuntu:~$ echo ${mytest[*]}
one two four five
wu@ubuntu:~$ echo ${mytest[2]}
wu@ubuntu:~$ echo ${mytest[3]}
four
最后,可以在unset命令后跟上数组名来删除整个数组:
wu@ubuntu:~$ unset mytest
wu@ubuntu:~$ echo ${mytest[*]}
wu@ubuntu:~$
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 ...
随机推荐
- 【PRML读书笔记-Chapter1-Introduction】1.1 Example:Polynomial Curve Fitting
书中给出了一个典型的曲线拟合的例子,给定一定量的x以及对应的t值,要你判断新的x对应的t值多少. 任务就是要我们去发现潜在的曲线方程:sin(2πx) 这时就需要概率论的帮忙,对于这种不确定给t赋何值 ...
- Hadoop入门进阶课程13--Chukwa介绍与安装部署
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,博主为石山园,博客地址为 http://www.cnblogs.com/shishanyuan ...
- lettuce webdriver 自动化测试---玩转BDD
行为驱动开发(BDD),依然高大上的矗立在远方,很少被人问津,一方面是BDD的思想不太容易理解,别一方面BDD的资料并不多.中文的资料就更少了. 之前增写过一篇<python BDD 框架之le ...
- LeetCode——Serialize and Deserialize Binary Tree
Description: Serialization is the process of converting a data structure or object into a sequence o ...
- Django--BBS项目
需求 模仿抽屉()和虎嗅()做一个网站bbs 知识点 Django知识: models表字段第一个属性可以用 2 3 from django.contrib.auth.models import Us ...
- elasticsearch配置
配置文件详解1.0版 配置文件位于es根目录的config目录下面,有elasticsearch.yml和logging.yml两个配置,主配置文件是elasticsearch.yml,日志配置文件是 ...
- Redis设计与实现-内部数据结构篇
题记:这本书是2015年11月份开始读的,大约花了一个多月的时间通读了一遍,最近由于需要对redis做一些深入的了解,因此又花了两个多月仔细精读了一遍,由于本书设计的内容较多,且每部分的内容都比较细致 ...
- 【Beta阶段】团队源代码管理
0. 快速上手与理解 如果你的团队来了一个新队员,有一台全新的机器,你们是否有一个文档,只要设置了相应的权限,她就可以根据文档,从头开始搭建环境,并成功地把最新.最稳定版本的软件编译出来,并运行必要的 ...
- WinForm界面开发之布局控件"WeifenLuo.WinFormsUI.Docking"的使用
WinForm界面开发之布局控件"WeifenLuo.WinFormsUI.Docking"的使用 转自:http://www.cnblogs.com/wuhuacong/arch ...
- enum to IEnumerable<T>
想foreach一个枚举,发觉它特别复杂,因此先把枚举转换为IEnumerable接口之后,简单多了.下面是枚举(enum)转换为IEnumerable接口方法: 使用:修改这篇<程序一旦发觉写 ...