目录
1、环境变量的基本概念
环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数。
- 如:我们在编写C/C++代码的时候,在链接的时候,从来不知道我们的所链接的动态静态库在哪里,但是照样可以链接成功,生成可执行程序,原因就是有相关环境变量帮助编译器进行查找。
环境变量通常具有某些特殊用途,还有在系统当中通常具有全局特性。
我们都知道我们自己写的一串代码,经过编译链接后可以生成可执行程序,我们用./即可使其运行,但是我们系统里的大部分命令也是64位的可执行程序:
- 既然都是程序,那我们是不是也可以把自己写的程序叫做指令,或者说把系统里面的指令叫做命令程序或者是二进制程序呢??答案是是的!!!我们自己写的程序和系统中的指令并没有多大的区别,我们都可以将其称为指令、工具、可执行程序。
既然它们都一样,那为什么系统里的ls、pwd等命令可以直接用,但是自己写的程序process却要加上./才能运行?
- command not found-指令无法找到。我们执行一个可执行程序,前提是要找到它!那么为什么系统的命令能找到,而我们自己的程序找不到呢?? 原因就在于linux系统中是存在相关的环境变量,保存了程序的搜索路径的!
2、常见环境变量
我们可以输入指令env查看所有的环境变量:
我们可以发现环境变量的形式都是:变量name+value
常见的环境变量如下:
- PATH:系统中搜索可执行程序(命令)的环境变量。
- HOME:指定用户的家目录(即用户登陆到Linux系统中时,默认的目录)。
- SHELL:当前Shell,它的值通常是/bin/bash。
下面我们来查看一下系统中的环境变量PATH:
3、查看环境变量的方法
我们可以输入下面的指令来实现对环境变量的查看:
echo $MANE //NAME:所要查的环境变量的名称
我们以查看PATH环境变量为例:
🍒:注意这里的路径分隔符是用:间隔的,当我们输入ls指令时,系统会在这些路径里面一个一个寻找,找到了就执行特定路径下的ls。 这也就证实了一开始所说的,因为我们写的程序不在此路径里面,自然就不能直接用。
4、测试PATH
首先我们创建一个可执行文件process:
我们知道我们创建的可执行文件process不能像系统的命令那样直接使用
如果我们想要使自己写的文件process像系统中的命令一样能够直接使用,我们可以使用以下两种方法:
- 手动添加到系统的路径/usr/bin/里面。
- 使用export命令把process当前所在的路