Linux中的环境变量有两种:全局变量和局部变量;

定义、访问、删除局部变量

  

查看全局变量

  可以使用printenv或者env命令来打印所有的全局变量。

  

  访问某一项全局变量,可以使用printenv key,或者echo $key

  

  上面的这些全局变量,无论是本次打开的命令行界面中(其实就是当前进程),还是另外在打开一个命令行界面,这些值都可以使用相同的命令访问,并且值都是一样的,这样的变量叫全局变量。

设置全局变量

  

  注意设置全局变量之后,要使用export将其导入到全局变量,否则会被认为是一个局部变量。

  此时,如果在打开另外一个命令行窗口,即另外一个进程,那么是访问不到定义的全局变量MYGLOBALVAR。该全局变量会在定义该变量的进程结束后销毁。

  要想让自己定义的全局变量让所有的命令行窗口共享,可以将声明全局变量的命令写在$HOME/.bashrc里面。

  比如:注意最后一行

  

  至于为什么要写在这个文件中,可以自行百度一下shell终端加载配置文件的顺序。

  之后执行. .bashrc或者source .bashrc命令让配置生效,之后打开的命令行窗口(进程)就可以访问到该全局变量,但是之前打开的窗口(在定义全局变量之前就开始的进程),不能访问到现在定义的全局变量。

  

注意点

  1、无论是定义局部变量还是全局变量,格式都是相同的,key=value,等号两边没有空格

  2、访问局部变量和全局变量的都一项都可以使用echo $key。

  3、全局变量和局部变量都可以使用unset来删除,需要注意的是,此时变量名不要加$。

  4、只有在访问变量的值的时候,才在变量名前加$,其他情况,比如赋值、删除、导出都不加$。有一个除外,printenv访问全局变量不要$。

  5、全局变量比局部变量多了一个export命令,不进行export,始终是局部变量。

  6、全局变量如果不写在.bashrc中,那么生命周期只限于当前进程结束前有效。

易错点(变量的作用范围)

  局部变量的作用范围只限于当前进程。当前进程的子进程不能访问父进程中定义的局部变量。

  

  

  全局变量的作用范围是当前进程,以及当前进程的后代进程(子进程,子进程的子进程...)

  

  

  全局变量持久化操作后(声明在.bashrc中),任何进程都能访问,任何进程的任何子进程也都可以访问。

  

Linux 环境变量梳理的更多相关文章

  1. 三种配置linux环境变量的方法(以java为例)

    1.先确认是否为openjdk:参考 2. 修改/etc/profile文件  如果你的计算机仅仅作为开发使用时推荐使用这种方法,因为所有用户的shell都有权使用这些环境变量,可能会给系统带来安全性 ...

  2. linux环境变量LD_LIBRARY_PATH

    LIBRARY_PATH和LD_LIBRARY_PATH是Linux下的两个环境变量,二者的含义和作用分别如下: LIBRARY_PATH环境变量用于在程序编译期间查找动态链接库时指定查找共享库的路径 ...

  3. Linux 环境变量和source命令 (转)

    可能是班门弄斧了,仅share给尚不知道的童鞋. 1.       问题的来源: 为什么我们编译Android代码时,需要输入:  source ./build/envsetup.sh  或者 . . ...

  4. Ubuntu Linux 环境变量

    2011年09月17日 Ubuntu 下设置adb环境变量 分类: 同Windows一样,Ubuntu Linux系统包含两类环境变量:系统环境变量和用户环境变量.系统环境变量对所有系统用户都有效,用 ...

  5. 设置Linux环境变量的方法与区别(Ubuntu)

      设置 Linux 环境变量可以通过 export 实现,也可以通过修改几个文件来实现,有必要弄清楚这两种方法以及这几个文件的区别.   通过文件设置 Linux 环境变量 首先是设置全局环境变量, ...

  6. Linux环境变量配置全攻略

    Linux环境变量配置 在自定义安装软件的时候,经常需要配置环境变量,下面列举出各种对环境变量的配置方法. 下面所有例子的环境说明如下: 系统:Ubuntu 14.0 用户名:uusama 需要配置M ...

  7. 设置Linux环境变量的方法和区别_Ubuntu

    设置 Linux 环境变量可以通过 export 实现,也可以通过修改几个文件来实现,有必要弄清楚这两种方法以及这几个文件的区别. 通过文件设置 Linux 环境变量 首先是设置全局环境变量,对所有用 ...

  8. Linux 环境变量_006

    ***Linux 环境变量指系统运行程序或命令的能快速找到其位置等其它功能,不用输入复杂命令.以$PATH环境变量为例子, $PATH决定了shell指定寻找命令或程序的路径,比较执行ls命令,如果没 ...

  9. Linux学习笔记之Linux环境变量总结

    0x00 概述 Linux是一个多用户多任务的操作系统,可以在Linux中为不同的用户设置不同的运行环境,具体做法是设置不同用户的环境变量. 0x01 Linux环境变量分类 按照生命周期来分,Lin ...

随机推荐

  1. Python描述符的使用

    Python描述符的使用 前言 作为一位python的使用者,你可能使用python有一段时间了,但是对于python中的描述符却未必使用过,接下来是对描述符使用的介绍 场景介绍 为了引入描述符的使用 ...

  2. 关于java中assert(断言)的使用讲解

    说明:写的不是很全面,有任何问题请留言,多交流,谢谢! 1.eclipse.myeclipse开启assert(断言),默认是关闭,如下: 说白了就是设置一下jvm的参数,参数是-ea或者-enabl ...

  3. ztree插件异步加载 使用RESTEasy报错 Only resource methods using @FormParam will work as expected. Resource methods consuming the request body by other means will not work as expected.

    在使用ztree插件实现异步加载时遇到后台RESTEasy接收参数问题,查看后台报错: A servlet request to the URI http://localhost:8080/area/ ...

  4. VS2015应用NuGet

    一.什么是Nuget Nuget是 ASP .NET Gallery 的一员.NuGet 是免费.开源的包管理开发工具,专注于在 .NET 应用开发过程中,简单地合并第三方的组件库. 当需要分享开发的 ...

  5. Python之Requests库的7个主要方法

    方法 说明 requests.request() 构造一个请求,支撑一下各方法的基础方法 requests.get() 获取HTML网页的主要方法 requests.head() 获取网页头信息的方法 ...

  6. Linux:Day8(下) RAID

    RAID:Redudant Arrays of Inexpensive(Independent) Disks    廉价(独立)冗余磁盘阵列 提高IO能力:磁盘并行读写: 提高耐用性:磁盘冗余来实现: ...

  7. Python:Day09

    Ubantu忘记密码: 1.开机长按shift,进入界面后按e: 2.将红框中内改成如下并按F10重启: 3.输入passwd,然后用户名,然后重新输入密码: locale命令查看系统中是否有中文 a ...

  8. Python(x,y) 的 FTP 下载地址

    因为 Python(x,y) 软件包托管在 Google code 上 https://code.google.com/p/pythonxy/,所以国内比较难下载. 这里推荐一个 FTP 下载地址:f ...

  9. layui之日期和时间组件

    参考文档:https://www.layui.com/doc/modules/laydate.html代码片段如下: layui.use('laydate', function(){ var layd ...

  10. HDU-1698-Just a Hook-线段树区间修改

    In the game of DotA, Pudge’s meat hook is actually the most horrible thing for most of the heroes. T ...