本文主要介绍以下三点内容:
目录
1.环境变量是什么?
我的理解是环境变量是一个可执行程序在任何地方都可以使用的目录的集合,这个集合存放在了一个系统变量中,这个变量就是环境变量,这些命令可以是系统提供的命令也可以是用户自定义的命令,这个命令是什么呢,如下图:
当我在linux终端输入ls或者pwd时,终端会返回给我想要的结果,这两个命令其实就是可执行程序,系统为我们提供的可执行程序。那么用户的自定义命令是什么,其实也是一个可执行程序,如下图:
这是一个c语言程序,编译后在build目录产生了一个可执行文件app,运行这个可执行文件会在屏幕打印我们想要的东西,或者根据我们的预期执行一些操作。
那么这两个有什么区别,再往下看:
当我在当前目录下再次输入ls、pwd时,终端会正常输出我想要的内容,但是我输入我的可执行程序时,终端却识别不了,只有在我进入我可执行程序文件所在目录或者加上路径才能生效但是ls和pwd却生效,为什么呢,因为ls和pwd已经被系统添加到了环境变量中了,那么再看,环境变量里边是什么,如下图:
2.环境变量里有什么?
里面存放的是一些目录,这些目录用:隔开了,我们去这些目录下看看,找一个usr/bin,看看到底是什么:
可以看到里边有很多可执行程序,
其中就有我刚才使用过的系统命令:ls、pwd,其实这个文件中存放的是一些可执行程序,包括我们安装的一些软件,安装完成之后系统会自动把程序放到这里或者其他环境变量的目录中,供我们在终端作为命令使用,这时候你可能明白了,如何让我的可执行程序随处可用,那么下面我把刚才的可执行程序app放过来,去别的地方运行一下:
发生了预期之外的错误,为什么呢,因为现在所在的目录是系统软件存放的地方,用户没有权限在这里存放,那我们换一个地方,试过之后发现都不行,都是没有权限的,我现在是以普通用户登录的,所以没有权限,而且系统已经存在的这些目录,主要是给系统命令存放的,不开放给普通用户,当然如果我们使用root权限去操作还是可以的:
可以看到已经放进来了,我们进入其他路径,看啊看是否生效:
可以看到已经生效了,但是不建议这样做,第一点是因为这些目录是存放系统或者其他软件的目录,第二点是我们开发过程环境中没有root权限,这个操作不可行,那么接下来看怎么正确的保存到环境变量中呢?
3.如何自定义环境变量?
第一种方法:临时添加,终端关闭后失效:
将我的可执行文件所在的绝对路径添加到环境变量中,但是终端重启之后就失效了。
第二种方法:永久修改,直接修改环境变量文件:
修改成功
第三种方式:永久修改,修改自己家目录的配置文件:
将我们第一种方式的命令永久保存到配置文件中
可以看到成功,重启之后依然生效
好了linux环境变量学完之后了,对linux又有了新的认识