摘要:环境变量通常具有某些特殊用途,还有在系统当中通常具有全局特性下的环境变量当我们生成可执行程序时,想要运行必须指定运行路径。其原因是是有相关环境变量帮助编译器进行查找。
Windows下的环境变量
环境变量:一般是指在操作系统中用来指定操作系统运行环境的一些参数
如:我们在编写C/C++代码的时候,在链接的时候,从来不知道我们的所链接的动态静态库在哪里,但是照样可以链接成功,生成可执行程序,原因就是有相关环境变量帮助编译器进行查找。
环境变量通常具有某些特殊用途,还有在系统当中通常具有全局特性
当我们生成可执行程序时,想要运行必须指定运行路径。但是像Linux下的命令如ls可以不指定运行路径
如上图,自己的可执行程序与系统的ls命令都是可执行程序。
其原因是是有相关环境变量帮助编译器进行查找。
HOME的查看
echo $HOME
标记的了系统登录的初始目录,不同用户的HOME不同
SHELL的查看
echo $SHELL
查看系統命令行命令行解释器的种类
centos中为bash
PATH的查看
echo $PATH
在输入ls时会查找PATH中的路径,因为ls路径在PATH中所以可以不加路径。这些路径之间以:相隔
所以如果想让自己生成的可执行程序可以直接执行
方法一:
可以将其放到PATH中的目录文件夹中
测试后要记得在路径下删除这个可执行程序,否则会污染工具集
方法二:
将当前可执行程序路径导入到环境变量中
eg:将路径导入到PATH中
export PATH=$PATH:路径…
这里表示环境变量PATH值为原来PATH值+路径
因为PATH中以:相隔
export PATH=路径
则表示PATH中只有一条路径,原来的PATH值没有在新PATH中
如上图,此时PATH中只有一条路径,此时ls也必须加路径才可以运行
此时重新登录云服务器PATH会恢复
export + 变量名=变量值
注意:如果不加export
变量名=变量值
此时这个变量称为本地变量,本地变量只能在本进程(bash)中使用
export+本地变量名就可以将本地变量变为环境变量
环境变量可以被其他进程获取
unset+变量名
如上图argv与envp都是指针数组,argv的大小为argc个,envp数组存放的是指向环境变量的指针
发现运行时跟不同的后缀,argv不同
其中-a -b -c称为命令行参数,其被保存到argv这个指针数组中
1 #include<stdio.h> 2 3 #include<string.h> 4 5 int main(int argc,char*argv[],char*envp[]) 6 { 7 if(argc==1) 8 { 9 printf("Hello Linux -NULL/n"); 10 } 11 else 12 { 13 if(strcmp(argv[1],"-a")==0) 14 { 15 printf("Hello Linux -a/n"); 16 } 17 else if(strcmp(argv[1],"-b")==0) 18 { 19 printf("Hello Linux -b/n"); 20 } 21 else 22 { 23 printf("Hello Linux -else/n"); 24 } 25 } 26 27 return 0; 28 }
运行结果为
验证:
environ是定义在C语言库的全局变量,使用时要extern声明
运行结果为环境变量的值
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/121089.html
摘要:在中比较流行的常见的有用没用过美美的等等,终端默认使用的是。一般说来字符终端的的标准是公司制造的型号为的终端。 我以前经常在网上查类似于在Ubuntu下如何让某个用户对某个文件夹拥有可读可写的权限?,Mac上如何通过命令行启动某个程序?,在Linux中如何彻底卸载某个软件?这类的问题,当然这类问题都可以较容易的在网上找到解决方案,但是每次解决我都是知其然不知其所以然,所以当下次我碰到类...
摘要:在中比较流行的常见的有用没用过美美的等等,终端默认使用的是。一般说来字符终端的的标准是公司制造的型号为的终端。 我以前经常在网上查类似于在Ubuntu下如何让某个用户对某个文件夹拥有可读可写的权限?,Mac上如何通过命令行启动某个程序?,在Linux中如何彻底卸载某个软件?这类的问题,当然这类问题都可以较容易的在网上找到解决方案,但是每次解决我都是知其然不知其所以然,所以当下次我碰到类...
摘要:环境变量定义了用于进行命令和程序查找的目录。全局环境变量可以在对其作出定义的父进程所创建的子进程中使用。本章学习命令个人总结如下显示全局变量显示全局变量显示局部变量全局变量及用户自定义变量导出为全局环境变量删除环境变量 时间:2017年07月31日星期一 说明:本文部分内容均摘取自书籍《Linux命令行与shell脚本编程大全》,版权归原作者所有。《Linux命令行与shell脚本编程...
摘要:解压文件不要目录,去除一层设置环境变量命令编辑文件添加表达式解释符号在系统里面用于获取一个变量的值在此表示分隔符可新增,修改或删除环境变量,供后续执行的程序使用。的效力仅及于该此登陆操作。 JDK 文件准备下载jdk-8u121-linux-x64.tar.gz 目录准备 命令(进入目录):cd /mnt 命令(创建目录):mkdir /jdk 命令:cd ...
阅读 2052·2021-11-16 11:44
阅读 3048·2021-09-26 09:47
阅读 579·2021-09-10 11:16
阅读 2049·2019-08-30 15:54
阅读 752·2019-08-30 15:53
阅读 1732·2019-08-30 13:00
阅读 494·2019-08-29 17:07
阅读 3405·2019-08-29 16:39