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. adb入门学习笔记

    连接模拟器(模拟器桥接模式) 使用adb devices列出已连接到工作站的设备. 使用adb shell 启动设备或模拟器上的shell. 列出设备已安装的所有软件包 将电脑文件移动到手机模拟器上( ...

  2. 网站出现403 Forbidden

    1, 你在一定时间内过多地访问此网站(一般是用采集程序),被防火墙拒绝访问了 2, 网站域名解析到了空间,但空间未绑定此域名 3, 你的网页脚本文件在当前目录下没有执行权限 4, 服务器繁忙,同一IP ...

  3. Docker: docker 启动一个Nginx容器

    本文演示从官方镜像仓库拉取一个nginx镜像并启动docker run -d –p 8800:80 nginx (同一个镜像,可以启动N个容器, 比如说,一个nginx服务,可以在这个docker主机 ...

  4. #006 C语言大作业学生管理系统第三天

    还差最后两部分 读取文件 恢复删除的学生信息 先学会处理文件的 知识点,再继续跟着视频做这个作业. 应该明天周六能把视频里手把手教的学生管理系统敲完 第二周尽量自己能完成C语言课本最后面那道学生管理系 ...

  5. Scrapy 框架 增量式

    增量式: 用来检测网站中数据的更新情况 from scrapy.linkextractors import LinkExtractor from scrapy.spiders import Crawl ...

  6. Linux 内核学习经验总结

    Linux 内核学习经验总结 学习内核,每个人都有自己的学习方法,仁者见仁智者见智.以下是我在学习过程中总结出来的东西,对自身来说,我认为比较有效率,拿出来跟大家交流一下. 内核学习,一偏之见:疏漏难 ...

  7. centos7下安装docker(16.1docker跨主机存储--Rex-Ray)

    一.Rex-Ray以standalone进程的方式运行在docker主机上,安装方法很简单:在docker1和docker2上运行如下命令: curl -sSL https://dl.bintray. ...

  8. public private protected default

    public private protected default 这几个限定访问控制符只是在编译阶段起作用,在运行阶段不起作用 private修饰符 , 本类可以访问 default修饰符 , 本类, ...

  9. 如何在tomcat前部署一个nginx

    在tomcat应用已经发布后,如何在tomcat前部署一个nginx,可以正常访问jsp,静态资源(html,css,js) 这里tomcat的端口号是8888 upstream morris { s ...

  10. 基于Spring Boot和Shiro的后台管理系统FEBS

    FEBS是一个简单高效的后台权限管理系统.项目基础框架采用全新的Java Web开发框架 —— Spring Boot 2.0.3,消除了繁杂的XML配置,使得二次开发更为简单:数据访问层采用Myba ...