01环境变量在Linux开发过程中经常会遇到环境变量,那么什么是环境变量呢?很多朋友在刚开始学习Linux的时候对环境变量并没有特别的了解,变量不应该类似于编程语言中的全局变量和局部变量吗?为什么还有另一个环境变量?环境变量的概念在我们主流的OS中几乎都有,windows下也有环境变量,如下图:其实这些所谓的环境变量就相当于一些信息的缩写,比如search和查询路径等,以后应用程序可以获取这些环境变量中包含的信息,完成相应的工作。很多小伙伴都有这样的体会,如果经常在Windows中运行新安装的软件,需要在环境变量中添加一些路径等信息,否则软件无法运行。它在Linux中也有类似的效果。当一个命令被执行时,系统会根据环境变量中的路径信息依次查找,直到找到相应的程序运行。02Linux环境变量Linux环境变量主要分为系统级和用户级,这点和windows非常相似,如下图:Linux系统中不同的配置文件中存在不同级别的环境变量,它们的作用域是也不同,所以结合C语言中各种变量的作用域更方便理解所谓的环境变量,同时也是常驻内存的标识。我们可以在linux中断中输入printenv命令查看所有环境变量:环境变量PATH是比较常用的,可以分别使用printenvPATH或者echo$PATH查看,如下图,两者正好相同:PATH环境变量冒号分隔:组成多条路径,当用户输入相应的命令时,程序会依次从以上路径中查询出来执行。例如:在终端输入ls命令行,Shell会从PATH变量存储的路径中搜索ls可执行程序运行。03修改环境变量还是上图:修改环境变量大致有两种方式:1)使用export命令行直接导入;2)将导出命令行保存到上图对应的文件中,及时加载导入。命令导入的方法是临时的,保存到对应的文件可以覆盖其作用域生效。方法一举例:1、使用命令行“导出环境变量=新增值:$environmentvariable”,如下图,这样就增加了一个新的路径。2、退出终端重新进入时,之前使用export临时添加的环境变量会消失。3、这种直接使用命令行的方式可以立即生效,并且只对当前用户有效,重新打开终端后失效。方法二举例:1、与命令行方式相比,其实我们只是将export命令行放到对应的文件中加载使用。我们进入home目录,然后编辑隐藏文件.bashrc,然后将命令行追加到最后,如下图所示:2.添加到文件中并保存后,环境变量就不会带了立即生效,需要配合source命令执行才能生效。3、重启终端,如下图,环境变量依然存在,因为~/.bashrc中包含了shell的bash信息。将被重新执行。4、上面修改的.bashrc只在shell启动时加载,加载前执行的程序无效,所以有不同的作用域。比如环境变量存放在~/.profile中,那么GUI启动程序是可以访问设置的环境变量的,但是设置在~/.bashrc中的是图形界面启动程序无法访问的。5、对于普通用户,操作.bashrc文件中的环境变量即可。如果修改范围更广的其他配置,将会影响到其他用户。同时,这些配置文件也是一步步覆盖的,后面会在启动过程中加载。该文件将覆盖相同的先前配置信息。最后,这里的小哥介绍下Linux环境变量的理解和使用。以后在安装编译器或者make命令等很多地方都会设计对环境变量的操作。希望这篇文章能对你有所帮助!本文转载自微信公众号“嵌入式情报局”,可通过以下二维码关注。转载本文请联系嵌入式智能局公众号。
