前言
????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语言程序是两个进程。
系统的这种机制,保证了进程安全,就是设置的临时变量不会被其他程序所修改。
?