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. LeetCode算法题-Majority Element(Java实现)

    这是悦乐书的第181次更新,第183篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第40题(顺位题号是169).给定大小为n的数组,找到数组中出现次数超过n/2的元素.假 ...

  2. JSX格式化代码,你值得拥有!

    ext install prettier-vscode https://segmentfault.com/q/1010000014822745

  3. [SHOI2015]自动刷题机

    嘟嘟嘟 这题就比较水了,毕竟只评了个蓝. 想一下发现满足单调性,所以可以二分找最大值. 但是最小值怎么办?刚开始我很zz的以为只要把判断条件从大于等于改成小于等于就行了,后来发现根本不对. 想了想因为 ...

  4. centos7 mongodb安装

    参考文档 http://www.runoob.com/mongodb/mongodb-connections.html https://www.cnblogs.com/layezi/p/7290082 ...

  5. JS学习实践(1) JavaScript 修改图像灯泡

    修改灯泡 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <titl ...

  6. day24 Pythonpython 面向对象设计 类

    将一些相同特征和动作的成为类,现有类才能创建对象,对象就是特征和动作的结合体 类:把一类事物的相同特征和动作整合到一起就是类.类是一个抽象概念 对象:就是基于类而创建的一个具的事物(具体存在的),也是 ...

  7. Java的错误类型

    程序的错误分为:编译期语法错误.运行期异常错误和运行期逻辑错误 (1)编译期语法错误可以借助Eclipse的帮助方便地定位错误,并进行修改 如: (2)运行期异常,即 没有语法错误,编译可以通过,但运 ...

  8. selenium:解决页面元素display:none的方法

    在UI自动化测试中,有时候会遇到页面元素无法定位的问题,包括xpath等方法都无法定位,是因为前端元素被设置为不可见导致. 这篇博客,介绍下如何通过JavaScript修改页面元素属性来定位的方法.. ...

  9. leetcode:Single Number

    public int SingleNumber(int[] nums) { if(nums==null||nums.Length%2==0) return 0; int ret=nums[0]; fo ...

  10. Storm-HA 配置

    进入storm/conf目录,修改storm.yaml配置文件为如下内容: # zookeeper ip storm.zookeeper.servers: - "192.168.7.108& ...