目录
1.什么是环境变量
环境变量是系统内置具有特殊用途的变量。
环境变量本质其实就是我们在编程中的变量,因为linux操作系统就是用C语言和C++编写的。
这个特殊用途可以指什么呢,了解linux的人都知道liunx的命令,其实大多数都是一个可执行的程序,但是为什么我们在执行命令的时候就不用加上路径,在执行自己的程序时就必须加上路径 ?
这是因为在我们执行命令时,系统会在PATH环境变量中寻找我们可执行程序.
我们用echo $PATH命令查看PATH环境变量的内容,在执行指令的时候会从这些路径寻找命令,每个路径用冒号隔开。
还有想pwd和home这样的指令,其实就是对环境变量的打印,环境变量PWD会根据当前所在路径,实时的改变。
2.环境变量的特征
环境变量具有全局属性,可以被子进程或孙子进程所继承。
3.环境变量的查看和获取
3.1命令查看
echo $环境变量
env 查看所有的环境变量
3.2用main函数参数获取
int main(int argc,char*argv[],char*env[])
main函数一共有3个参数,前两个是命令行参数,最后是存放环境变量的指针数组,这个数组必须是以空结尾。
#include<stdio.h>
int main(int argc,char *argv[],char *env[])
{
for(int i = 0;env[i];i++)//因为env是以空结尾,所以evn[i]为空的时候结束
{
printf("%s\n",env[i]);
}
return 0;
}
这就获取到所有的环境
3.3getenv获取环境变量
想获取某个环境变量就用getenv("环境变量名"),getenv的返回值就是环境变量所存储的内容
4.环境变量的修改
4.1export导出环境变量
export PATH=要导入的内容:$PATH(因为=是直接把PATH变量重新赋值,所以要把原来的路径加上:$PATH)
export是在bash运行时赋值,也就是说export在对环境变量进行赋值的时候,是在内存中 也就说明export对环境变量的修改时临时性的,下次重新开机,就不存在了 。
4.2修改.bash_profile
原理:在用户登录的时候,操作系统会给该用户分配一个bash,bash会从.bash_profile读取该用户的环境变量加载到内存中,该文件只会被读一次,所以修改完就必须,重启才能生效。
上面其实也就解释了为什么用户登陆的时候都会在自己的家目录中。
按照此格式就可以为该用户永久添加一个环境变量。