提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
常见的环境变量:
PWD:记录当前工作目录
PATH : 指定命令的搜索路径
HOME : 指定用户的主工作目录(即用户登陆到Linux系统中时,默认的目录)
SHELL : 当前Shell,它的值通常是/bin/bash。
查看环境变量:echo $NAME //NAME:你的环境变量名称
1. echo: 显示某个环境变量值
2. export: 设置一个新的环境变量
3. env: 显示所有环境变量
4. unset: 清除环境变量
5. set: 显示本地定义的shell变量和环境变量
获取环境变量:函数getenv()
设置环境变量:putenv()
提示:以下是本篇文章正文内容,下面案例可供参考
一.main函数的参数
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(int arge,char* arg[])
{
printf("%d",arge);
for(int j=0;j<arge;j++)
{
printf("arg[%d]=%s\n",j,arg[j]);
}
我们在linux命令下输入命令编译运行结果如下:
这里我们从键盘上输入的指令,会被bash维护,形成一张表每个元素是一个字符串以空格分开,以NULL作为结尾 。形参arge是元素的个数,char* arg[]指向是一个数组指针,数组存储的是字符串。
我们可以用它来用在同个程序中,通过指令选项执行不同的功能。
以下实现简单的计算器:
2.什么是环境变量
1.Linux中的环境变量有很多,它们之间是独立的,不同场景下有不同的用处。可以通过指令env查看当前机器的所有环境变量。操作系统会开辟内存存储用户名,当前的工作目录,家目录等一些信息,在你登入linux的时候,它就已经被加载好了。例如 PATH, PWD ,HOME,USER
如下(示例)
2.1我们可以用系统的环境变量干什么。
1.用PATH来说:’linux中每个命令能被执行,因为在PATH中记录了它们的路径,命令也是代码,要执行运行必须要知道它在哪。我们在运行我们自己写的编译好的可执行文件,要带上./可执行文件或者绝对路径
要让我们程序之间运行,而不带路径,那么就要把当前文件的工作目录路径添加到PATH中
1.直接将路径拷贝到PATH的其中一个路径下。不过并不建议因为会污染变量,当然污染之后重启Linux也是会恢复的‘
2.指令:PATH=文件的工作目录路径:$PATH。
这样我们就可以像指令一样直接执行了,而不用指明路径(./mybin)
3.环境变量的导入和普通变量
3.1.自己创造环境变量:
export +变量名+赋值。通过env查看
3.2 普通变量
普通变量不是环境变量,不可以被子进程继承,它是bash的内部的
4.环境变量的获取
3.通过系统调用函数getenv()查找特定的环境变量。这里的数组指针env也是bash维护的,指向的数组中是当前机器的环境变量。
1.系统调用接口
getenv()
#include<stdlib.h>
#include<stdio.h>
int main(int arg,char*arge[],char* env[])
{
char* username=getenv("PATH");
printf("%s",username);
return 0;
}
PATH:
2.通过第三方变量environ获取
5.环境变量的特点
1.全局性:父进程的环境变量会被子进程继承。
6.bash读取环境变量
文件
环境变量是可以被继承的,我们登入虚拟机,bash进程会读取系统和用户的环境变量,其中用户的环境变量在隐藏文件。比如.bashrc