当前位置: 首页 > wzjs >正文

网站建设与管理的网页网站建设肆金手指排名9

网站建设与管理的网页,网站建设肆金手指排名9,网站建设公司 宣传册,搜狗seo优化目录 1.命令行参数 1.1命令行参数例子 2.环境变量 2.1 PWD 2.2 PATH 2.2.1 把可执行文件拷贝到默认路径下 2.2.2 将环境变量PATH修改 2.3 HOME 2.3 SHELL 2.4 OLDPWD 1.命令行参数 main函数有参数么&#xff1f;大家在日常使用中最常见的是如下形式吧。 #include<stdio.h…

目录

1.命令行参数

1.1命令行参数例子

2.环境变量

        2.1 PWD

        2.2 PATH

        2.2.1 把可执行文件拷贝到默认路径下

        2.2.2 将环境变量PATH修改

        2.3 HOME

          2.3 SHELL

        2.4 OLDPWD


1.命令行参数

        main函数有参数么?大家在日常使用中最常见的是如下形式吧。

#include<stdio.h>int main()
{.......return 0;
}

        main函数返回值为int,不写参数,实际上main函数也可以加上参数。如下代码。

int main(int argc,char* argv[])
{return 0;
}

        他的第一个参数表示命令行解析指令个数,第二个表示指令数组。在Linux运行如下代码可得到如图。

#include<stdio.h>int main(int argc,char * argv[])
{int i=0;for(i=0; i<argc; i++){printf("argv[%d]:%s\n",i,argv[i]);}return 0;
}

        可以发现其实命令行就是以空格为分隔符识别指令的,argv就是字符数组指向对应选项。除了上述写法外还有一种方式,Linux规定argc最后一个元素必须以NULL结尾,这就可以写出如下代码。两种方式效果是一模一样的。

#include<stdio.h>int main(int argc,char * argv[])
{int i=0;for(i=0; argv[i]; i++){printf("argv[%d]:%s\n",i,argv[i]);}return 0;
}

        其实Linux就是由C语言编写的,我们输入 ls -a -l指令时,命令行就会解释传入对应的程序之中,执行不同的代码。

1.1命令行参数例子

        可以通过如下例子查看

#include<stdio.h>
#include<string.h>int main(int argc,char * argv[])
{if(argc!=2){printf("指令输入错误\n");return 1;}if(strcmp("opt1",argv[1])==0){printf("模式一\n");}else if(strcmp("opt2",argv[1])==0){printf("模式二\n");}else if(strcmp("opt3",argv[1])==0){printf("模式三\n");}return 0;
}

        此时我们就做了个简单的根据用户输入,采取不同输出的程序。

2.环境变量

        环境变量是进程维护的具有“全局”属性的变量表,在Linux中可以通过env查看,如下图。

        里面包含了许多信息,如主机名,用户名,IP地址,登录用户等。环境变量统一采用 key =value的形式,如 PATH=/home/lhh 如下图。

         除了上述的方法外其实main函数还有第三个参数就是环境变量的指针数组,可以在main函数中打印出来,如下代码。

  

#include<stdio.h>int main(int argc,char * argv[],char *env[])
{int i=0;//env也规定结尾必须为NULL指针for(i=0; env[i]; i++){printf("env[%d]:%s\n",i,env[i]);}return 0;
}

        结果如下图。

        2.1 PWD

        其中PWD表示当前工作路径,除了用env方式打印,还可以使用echo ¥PWD方式打印指定环境变量。如下图。

        2.2 PATH

        这是环境变量中最重要的变量之一,我们平时运行的程序指令比如ls,top为什么命令行可以执行就是因为path中包含了这些命令的路径,一般在/usr/bin目录下。

       

        查看这个目录文件继续往下翻就会找到一些我们熟悉的命令

       当我们直接运行自己编译的程序就会错误找不到程序,加上./才可以运行

    

        也就是说当我们执行一个命令时,如果命令前加上了路径就根据该路径找没加就从默认路径中找,命令行就会根据path中的默认路径去查找这个命令,如果查询不到返回错误,查询到就执行。

        我们可以用几下几个小例子来证明

        2.2.1 把可执行文件拷贝到默认路径下

        切换到超级用户后或使用sudo将可执行文件拷贝在默认目录下就可以运行了.

        注意结束后将可执行文件删除,尽量不改变原来系统文件配置。

rm -f /usr/bin/proc

        2.2.2 将环境变量PATH修改

        可以在命令行中直接使用path等于现有路径,就可以直接运行proceed

PATH=/home/lhh/test/lesson13

       

        但此时大家可能会发现ls,top的命令用不了了。这是因为此时环境变量path中没有了这些可执行文件的路径自然就找不到了。,当然也有一些命令如pwd仍然可以运行,因为这些命令属于内部命令与LS top这些外部命令不同,这些命令嵌入了shell程序中。

        但此时不用慌,环境变量是内存级文件,它是命令行程序开始运行时从配置文件中加载出来的,我们只需要关闭命令行打开即可。

        在用户的家目录下查看的隐藏文件.bash_profile 可以发现path进程在此时加载的痕迹。如果我们想永久的保存某个路径就可以在此时写在这个隐藏文件之中。

PATH=$PATH:$HOME/.local/bin:$HOME/bin:/home/lhh/test/lesson11

        注意要把前面的都加上,每个路径之间以:为分隔符。

        2.3 HOME

        HOME就是当前用户的家目录路径,也就是我们刚开始登录这个命令行时的目录。

        cd ~

        想要快速回到家目录的时候就可以用  cd ~,快速回到家目录。

          2.3 SHELL

        这个环境变量中存了我们命令行程序的地址表示我们使用的是哪个命令行程序。

        可以查看他的一些信息。

        2.4 OLDPWD

        这个环境变量中存了上一次运行的地址,如果想快速切到刚才的地址就可以采用CD -的命令

cd -

3.本地变量

        本地变量是由操作系统维护的一些具有临时属性的变量,如下指令

a=100
echo $a

        可以得到一百,使用起来类似于环境变量。

        可以用set指令查看环境变量和本地变量。如下图。一部分是环境变量一部分是本地变量。

        它们的主要区别在继承方式上,当父进程创建子进程的时候,子进程会继承父进程的一些属性,其中就包括了环境变量和命令行参数等但是不会继承本地变量。

        子进程与父进程 “共用 ”环境变量表,但是如果子进程修改环境变量的值那么操作系统就会拷贝一份供子进程修改使用,称之为写时拷贝。这个也就是为什么说环境变量具有全局属性,它可以被子进程继承,那么如果有一些环境配置例如主机名,保存地址,用户名等就可以一直的传下去。如下图树形结构一样。因此称环境变量具有全局属性。

http://www.dtcms.com/wzjs/791160.html

相关文章:

  • 零基础学习做网站wordpress添加广告插件吗
  • 部门网站建设的目的和意义网页源码下载
  • 靓号注册网站免费购买网址
  • 做网上竞猜网站合法吗网页设计制作网站代码html
  • 网站优化成功案例wordpress插件 速度
  • 网站集约化建设情况的汇报做网站需要什么步骤
  • 网站教育机构排行前十名海口seo外包
  • 安徽合肥建设厅网站做网站的商标是哪类
  • 枣庄手机网站建设电话上海财务公司
  • 彩票网站开发亿云wordpress主题授权方式
  • 培训学校网站做网站流量是什么
  • 2021能打开的网站免费wordpress做一个网站404引导
  • 有帮忙做儿童房设计的网站吗南通南通网站优化
  • 有前景的网站建设辽宁建设信息网站
  • 怎样通过手机建网站叶县建设局网站
  • 如何看到网站的建设时间国外服务器需要备案吗
  • 做网站需要融资机械设计制造及其自动化圳建设网站
  • 西安汇友网站建设淘宝官方网
  • 站优云网络公司网络服务器配置与管理
  • 网站后台域名解析怎么做宁波seo网络推广选哪家
  • 网站建设摊销年限最新规定北京微信公众号定制开发
  • 凯里网站设计哪家好湖北黄石域名注册网站建设
  • 桥头镇做网站科技网站哪个好
  • 网站没收录可以做推广吗百度商桥怎么和网站
  • 通信建设网站档案网站的建设方案
  • wordpress 商业网站附近电商培训班
  • 广东东莞网站建设邯郸公司起名
  • 免费建站系统有哪些wordpress编辑插件
  • 淘宝网站建设单子好接吗广州手机网站案例
  • 2022年没封网站直接进入wordpress年会员