=========================================================================

个人主页点击直达:小白不是程序媛

Linux专栏Linux系统化学习

代码仓库Gitee

=========================================================================

目录

命令行参数

环境变量

PATH

查看PATH

$PWD

查看环境变量PWD

$HOME

查看系统支持环境变量

获取环境变量


命令行参数

在C/C++编程语言我们一个main函数,在刚开始接触C语言我们发现这个主函数其实是有参数的,我们不妨在Linux系统中将其中两个参数使用起来看看运行结果

  1 #include<stdio.h>
  2 int main(int argc, char*argv[])
  3 {
  4     int i=0;
  5     for(i=0;i<argc;i++)
  6     {
  7         printf("%d %sn",i,argv[i]);                                                                                                    
  8     }
  9     return 0;
 10 }

怎么会是这样的输出?我们再试试

 

好像有点眉头了,这里第一个参数代表shell命令行中我们以空格间隔字符串个数,即为我们第二个字符串数组的参数,第二个字符数组参数代表我们以空格间隔的每个字符串。

这样我么就可以联想到我们在Linux执行的各种命令

自己命令创建文件命令

  1 #include<stdlib.h&gt;
  2 #include<stdio.h&gt;
  3 int main(int argc, char*argv[])
  4 {
  5     if(argc!=2)
  6     {
  7         printf("touch:miss file operand");
  8     }
  9     FILE* fp=fopen(argv[1],"w");                                                                                                                                                                        
 10     if(fp!=NULL)
 11         fclose(fp);
 12     return 0;
 13 }

命令行参数可以支持各种指令级别命令行选项设置


环境变量

为什么我的命令要带 . / 呢? 

执行一个命令先要找到一个对应可执行程序 . / 代表当前路径

PATH

执行一些系统命令时候我们可以直接执行,也可以使用路径执行

可以直接执行系统命令是因为我们PATH环境变量记录着我们命令所在的路径,因此我们可以不用输入路径

查看PATH

echo $PATH

在PATH追加自己命令的路径

PATH= $PATH:路径

 

我们也可以之间把自己可执行程序路径拷贝到PATH的路径下,这就是安装程序;将自己程序路径从PATH中删除就是程序卸载

注意:

自己误操作修改了PATH中的所有内容不要慌张重新登入服务器就好了。 

$PWD

当你输入pwd命令显示当前路径时,你当前所在路径是保存PWD环境变量里的;

查看环境变量PWD

echo $PWD

$HOME

在我们的服务器中普通用户root用户普通用户root用户最大区别就是权限和家目录的不同,在前面文章我们已经介绍权限区别今天我们来看看家目录的区别

系统如何做到区分root用户普通用户的呢?

在我们登入我们的服务器时需要输入用户名密码服务器进行认证形成各种环境变量,此时根据用户名初始化环境变量HOME,登入上去服务进入cd $HOME)用户对应的家目录。


查看系统支持环境变量

我们可以使用指令对Linux系统环境变量进行查看。

env


获取环境变量

我们也可以使用函数环境变量进行获取完成一些操作

getenv(“环境变量名称”)

获取USER环境变量区别限制root用户普通用户

    1 #include<stdlib.h&gt;
    2 #include<stdio.h>
    3 #include<string.h>
    4 int main(int argc, char*argv[])                                                               
    5 {
    6     char * name = getenv("USER");
    7     if(strcmp(name,"root")==0)
    8     {
    9         printf("%s:合法用户n",name);
   10         printf("I'm root!!!n");
   11     }
   12     else
   13     {
   14         printf("%s:非法用户n",name);
   15            exit(-1);
   16     }
   17        return 0;
   18 }


今天对Linux下进命令行参数和环境变量分享到这就结束了,希望大家读完后有很大的收获,也可以在评论区点评文章中的内容分享自己的看法。您三连的支持就是我前进的动力,感谢大家的支持!!! 

 

原文地址:https://blog.csdn.net/qq_55119554/article/details/134742689

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_24430.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注