前言
Windows中有环境变量,比如我们熟悉的path……那么linux有没?
正文
操作系统 真没有大家想的那么智能,反而是很笨的
譬如我们输入 :ls立马执行
那操作系统是怎么执行的?它怎么知道ls要怎么执行?去哪执行?要执行的程序在哪?
环境变量:简单的说,就是告诉系统,根据命令去哪里(文件夹)找可执行程序。
查看环境变量
echo $PATH (PATH一定要大写)
一、本地变量(临时)
可以认为是会话变量(进程级)
1.赋值
myname=fatsnake
ps:字符串连接夹双引号
myname=fat
myname=$myname"snake"
打印
echo $ fatsnake
删除
unset fatsnake
二、系统环境变量--PATH
系统超级依赖的一个变量。当你执行一个命令时会自动到这个变量里面的文件夹去寻找"可执行的程序"
三、使用c语言设置和获取环境变量
#include <stdio.h>
#include <stdlib.h>
int main(int argc,char *argv[]){
// set value
//putenv("myname=fatsnake123");
// get value
char *getResult=getenv("myname");
printf("myname is %s\n",getResult);
printf("PATH is %s\n",getenv("PATH"));
int i;
if(argc == 2){
//printf("%s\n",argv[1]);
if(strcmp(argv[1],"-version") == 0){
printf("version god 1.1\n");
}
else{
printf("%s\n",argv[1]);
}
}
return 0;
}
四、实验
在命令行中设置的临时变量,使用c语言获取不到!
Ps:说明是临时变量是进程级的,命令行与c语言程序是两个进程。
系统的这种机制,保证了进程安全,就是设置的临时变量不会被其他程序所修改。