尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
深入学习Linux: 命令行参数与环境变量详解
文章目录1. 命令行参数1.1 main函数的参数1.2 命令行参数的作用2. 环境变量2.1 理解一个问题2.2 PATH环境变量2.3 其他环境变量3. C/C代码与进程之间的关系3.1 用代码获取环境变量3.1.1 main函数最多有几个参数3.1.2 shell外壳里的环境变量是哪里来的3.2 获取环境变量的若干种方法3.3 环境变量、本地变量、内建命令3.3.1 创建自己的环境变量3.4 内建命令1. 命令行参数1.1 main函数的参数main函数是可以有参数的。main函数的参数由bash和系统自动传递。命令行参数的本质是一个字符串shell以空格为分割符号切成了若干的子串。细节一命令行参数至少是1argc1argv[0]一定会有元素指向的就是程序名。细节二选项是以空格分割的字符串一个字符也是字符串。细节三argv的本质是一张表元素由argc决定argv[argc]是最后一个且始终为NULL。1.2 命令行参数的作用为什么要有命令行参数命令行参数的本质应用是为了实现一个命令可以根据不同的选项实现不同的子功能。也是Linux中所有命令选项功能的实现方式。问题VS2022有没有命令行参数有的。cat file.txt和cat file.txt如何打印出文件内容本质是通过命令行参数将文件打开打开后读文件打印内容。2. 环境变量2.1 理解一个问题环境变量具有全局属性的根本原因是环境变量可以被bash进程的子进程继承所有在Linux下的子进程都会拥有对应的环境变量。./的本质是相对路径本质是告诉OS用户要执行的bin就在当前路径下。2.2 PATH环境变量Linux怎么知道我应该去哪一个路径下找可执行程序除了去/usr/bin路径下去找还会不会去其他路径下去找Linux系统会存在所谓的环境变量的东西。PATH是该环境变量的变量名echo$PATH以冒号为分割符的多串路径告诉Linux系统如果用户执行一个可执行文件没有指明路径去哪几个路径下去找PATH的本质是协助Linux进行指令查找的环境变量。如何将路径配置到环境变量里就可以执行的时候不带有./PATH[你的路径]你这么写就直接覆盖了PATH$PATH:[你想要添加的路径]总结PATH指定命令的搜索路径。PATH环境变量是全局的。2.3 其他环境变量系统级的变量变量名和变量内容往往具有全局属性。还有没有其他环境变量查询env介绍其余环境变量echo$HISTSIZE记忆你之前使用过的命令默认是1000统计最近使用的1000条命令。echo$OLDPWD记忆用户在运行时上一次所存在的工作路径。echo$SSH_TTY记录终端文件终端窗口不一样输入重定向对内容进行重新输入。PATH指定命令的搜索路径。当你在命令行输入一个命令时系统会按照 PATH 中列出的目录顺序依次查找对应的可执行文件。HOME当前用户的主目录路径。执行cd ~或cd不带参数时就会跳转到该目录。不同用户的 HOME 不同例如/home/zhangsan或/root。SHELL当前用户所使用的 Shell 解释器的路径。常见的有/bin/bash、/bin/zsh等决定了你在终端中使用的命令解释器类型。3. C/C代码与进程之间的关系3.1 用代码获取环境变量3.1.1 main函数最多有几个参数三个参数拿到系统的环境变量表本质是将环境变量表传递给进程。有什么用不同的环境变量有不同的用途。是谁传递的怎么传递的环境变量在bash没有拿到的时候在哪里是谁传递给你的默认是在bash内部的bash本质是一个进程是存储在内存中的是临时表内存级的。我的程序都是bash进程的子进程子进程代码和数据是可以共享的是父进程传递的。所以环境变量具有全局属性。存在两张环境变量表当我们运行程序时bash会fork出一个子进程子进程可以看到父进程的参数。所以说不传参数也能看到环境变量的原因是子进程进行了继承。不传参数怎么获取环境变量子进程都是bash的子进程你可以获得bash的表子进程天然可以继承父进程的数据。语言会默认提供全局变量全局的指针可以指向环境变量表。获取环境变量的第二种方式。需要记住的是环境变量可以被获取。bash有两张表一张是命令行参数表一张是环境变量表。3.1.2 shell外壳里的环境变量是哪里来的bash的环境变量是哪里来的是从Linux系统的配置文件里面来的启动时会把配置文件加载进来所以当时你改的是内存级的数据你关掉Xshell又打开会重新从配置文件中加载。什么是配置文件配置文件又是哪里来的家目录存在两个配置文件.bashrc.bash_profile上面的两个文件其实是相关的。bash在启动时会访问.bashrc文件会将配置文件载入修改一下就可以看到bash被执行echo一行字就可以了。root怎么不执行每一个人都会有自己的家目录改的不是root的配置文件。为什么会给每个用户都搞一个bashwhile:;dopsaxj|grepbash;sleep1;donewhile:;dopsaxj|grepbash;sleep1;echo#############;done每开一个窗口就会有一个bash每个子进程都会加载一个环境变量。最常见mangetenv原理是根据名字查找环境变量的内容根据环境变量名遍历这张表并依次比较遍历成功将右边返回失败返回NULL。如何用C/C获取环境变量char *whoami getenv(USER);3.2 获取环境变量的若干种方法环境变量的作用是限制程序的执行。获取环境变量的三种做法main函数参数char* env[]C语言全局变量char** environ最佳实践getenv(name)测试限制访问用户名。3.3 环境变量、本地变量、内建命令3.3.1 创建自己的环境变量我想创建一个自己的环境变量怎么办test_env12344env|grepTEST_ENV存在但env不到这个叫本地变量。导出成环境变量本质是在将本地变量放到环境变量表里你就可以查到了exportTEST_ENV再次查询就有了。如果这个本地变量本来就没有可以用export直接导也可以exportAAAasdfghj能不能被自己的C语言程序获得getenv(TEST_ENV);子进程是可以获得父进程环境变量的环境变量是全局的本质环境变量是可以被子进程继承的。如何删除环境变量unset[环境变量名]取消命令行的环境变量本质就是将环境变量从环境变量表中删除。其实这些也都是内存级的关掉重新打开就好了。本地变量和环境变量的区别本地变量无法被子进程继承不具备全局性只在bash内部可以访问类比于局部变量和全局变量。为什么要有本地变量cnt0;while[$cnt-le100];doecho$cnt;letcnt;doneshell当中的本地变量是为了支持语法的用于保存一些临时信息。set可以查询系统变量和环境变量。如果我想让我的环境变量关掉打开后还有打开.bash_profile在里面export导入一个环境变量。3.4 内建命令提出问题本地变量只能在shell内部运行不能被子进程继承。echo子进程看不到本地变量是如何被打印的echo这个进程是怎样能打印本地变量的命令和命令是不一样的存在二进制文件级别的命令普通命令内建命令在shell内部自己定义bash自己内部的一次函数调用不依赖第三方路径。内建命令是shell自己的意味着内建命令的执行不需要环境变量。欢迎大家批评指正
RELATED

相关推荐

AI服装设计工作流拆解:从趋势聚合到Tech Pack自动输出的系统设计

AI服装设计工作流拆解:从趋势聚合到Tech Pack自动输出的系统设计

1. 背景:服装设计流程的断裂与信息损耗 在讨论AI服装设计工具之前,有必要重新审视一个服装品牌从0到1出一个新款,究竟经过哪些节点。传统链路大致如下: 趋势调研:设计师翻阅WGSN、Pinterest、Instagram、秀场图库&…

📅 2026/10/6 16:53:57
奇迹MU荣耀版本下载安装与副本通关全攻略

奇迹MU荣耀版本下载安装与副本通关全攻略

1. 奇迹MU荣耀版本入门指南作为一款运营近20年的经典MMORPG,《奇迹MU》荣耀版本在保留经典玩法的基础上,对画面、系统和副本进行了全面升级。对于新老玩家而言,掌握正确的下载安装方法和副本通关技巧至关重要。荣耀版本最显著的特点是采用了全…

📅 2026/10/4 19:09:21
50Ω阻抗标准:电子工程中的最优平衡点

50Ω阻抗标准:电子工程中的最优平衡点

1. 50Ω阻抗的历史渊源与技术标准形成在电子工程发展的早期阶段,阻抗选择呈现出明显的无序状态。二战期间的无线电设备制造商各自采用不同的阻抗值,从30Ω到90Ω不等,这导致了设备间互联的严重兼容性问题。1940年代后期,美国军方成…

📅 2026/10/30 18:31:28
MORE NEWS

更多资讯

📰

浙江安监局特种工查询多少钱?实操考试心里没底怕挂科怎么办

浙江安监局特种工查询多少钱?实操考试心里没底怕挂科怎么办 实操考试心里没底怕挂科,这几乎是每个准备报考浙江安监局特种工证书的人都会有的顾虑。尤其是像低压电工证、焊工证这些需要动手操作的项目,一次没过不仅浪费时间,还可能影响后续的就业机会。而…

📰

浙江安监局特种工查询最新内部消息:外省证怎么转过来全攻略

浙江安监局特种工查询最新内部消息:外省证怎么转过来全攻略 之前考的证在外省能不能转过来?这个问题其实很多人都问过,尤其是像郑州金水区这样的地方,不少学员是第一次报考,对证书的流程和要求都一知半解。根据 特种作业操作证查询平台…

📰

职高要考电工证网上查询合格标准和通过率全攻略

职高要考电工证网上查询合格标准和通过率全攻略 你是不是正愁找不到工作,听说现在电工证是基本门槛?特别是职高毕业的你,想进工地、进工厂、进企业, 急需特种作业证才能上岗找工作…

📰

喀什市电工证中级通过率揭秘:实操考试心里没底怕挂科怎么办

喀什市电工证中级通过率揭秘:实操考试心里没底怕挂科怎么办 实操考试心里没底怕挂科?你不是一个人。很多人在报考喀什市电工证中级时,最大的担忧不是考试报名流程,而是担心自己在实操考试中表现不佳,导致挂科。而实际上,只要你掌握正确的方法和备考重点…

📰

电工证复审德州去哪里?工地太忙根本没时间复习考试,考前押题怎么搞?

电工证复审德州去哪里?工地太忙根本没时间复习考试,考前押题怎么搞? 工地太忙根本没时间复习考试,很多人觉得电工证复审德州去哪里是个难题,更别说还有考试压力了。其实,复审和考试都有套路,关键在于方法对不对。今天我就从济源劳务班组负责人的角度出…

📰

朱泾办电工证怎么走?电子证书流程全攻略,别再被坑了

朱泾办电工证怎么走?电子证书流程全攻略,别再被坑了 你是不是也在为找工作发愁?别人都说“ 急需特种作业证才能上岗找工作 ”,可你还在为 朱泾办电工证 发愁?别急,今天我就给你讲清楚,怎么一步步拿到 电子证书…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬