【环境变量】命令行参数 | 概念 | 理解 | 命令行参数表 | bash进程

news2025/1/12 3:06:00

目录

四组概念

命令行参数概念&理解

查看命令函参数 

命令行字符串&命令行参数表

bash进程


最近有点小忙,可能更新比较慢。

四组概念

  • 竞争性: 系统进程数目众多,而CPU资源只有少量,甚至1个,所以进程之间是具有竞争属性的。为了高效完成任务,更合理竞争相关资源,便具有了优先级。
  • 独立性: 多进程运行,需要独享各种资源,多进程运行期间互不干扰。
  • 并行: 多个进程在多个CPU下分别,同时进行运行,这称之为并行。
  • 并发: 多个进程在一个CPU下采用进程切换的方式,在一段时间之内,让多个进程都得以推进,称之为并发。

并发:在特点的时间范围内,一个CPU调度进程,多进程以上下文切换的方式保证进程同时得以推进。

用户层出现卡顿的情况❓

回答:在运行队列中排队的进程很多,CPU切换的负担过重,出现进程被再次调度的时间很长,或者长时间不被调度的情况,出现进程的卡顿,也就是用户层出现卡顿的情况。


并行:并行的同时存在并发。并发切换速度非常快,用户层感知不到的。并发的历史价值是指多个CPU能让多个进程同时运行,既便宜又能满足用户的需求。(软件技术带来的意义)


独立性(地址空间细讲):任务启动变成进程,多进程运行,进程和进程之间是不影响的。数据的独立(全局/局部,but全局变量可以被子进程看到,局部不可以)


竞争性:硬件资源优先(只有一套),进程是非常多的,进程通过访问硬件来达到自己的任务目的,进程在资源本质上天然就是具有竞争性的。

命令行参数概念&理解

main()函数可以接收参数,这些参数是什么❓表示的什么意义❓ 为什么存在❓

  • main函数的参数可带参数,也可以不带参数(这里讨论带参的)
  • int main ( int argc, char *argv[ ] )
  • 参数 int argc, char *argv[ ]
  • 参数就是命令行参数的形式参数;命令行中输入的是实际参数
  • int argc 表示指针数组中元素的个数有多少(c count)
  • char *argv 表示指针数组(数组中每个元素都是char *类型的元素)
  • >>>>>>char *类型的指针
  1. 指向某个字符的地址
  2. 指向某个字符串的起始地址
  • 在char *argv[ ]中char *类型的元素通常是指向字符串的起始地址的
  • char *argv[ ]的最后一个指针必须指向NULL
  • argc 是不包括NULL的个数的
  • 命令行输入的参数会存在程序

 

查看命令函参数 

编译运行我们发现

  • argc中的元素就是命令行中输入的是参数,即命令行参数
  • argc是根据命令行输入的参数变动的大小的
  • argc 是不包括NULL的个数的
  • char *argv[ ] 是变长数组
  • 命令行输入的参数会存在程序(自己的程序a.out 或者 系统的指令程序)和程序匹配的选项
#include<stdio.h>
#include<unistd.h>
int main(int argc,char *argv[])
{
    for(int i = 0;i < argc;i++)
    {
        printf("argv[%d]->%s\n",i,argv[i]);
    }
    return 0;
}

 

命令行字符串&命令行参数表

  • 整体:命令行字符串
  • 局部:程序的路径&名称 + 和该进程匹配的选项(或者只有程序的路径&名称)
  • 程序:分为用户自己写的程序&选项  和 系统的程序&选项
  1. 用户在命令行输入的参数整体是一个命令行字符串。
  2. 由OS中的进程/模块负责以空格为分割线分割成1个1个字符串(把字符串变成"\0")。
  3. OS中的进程/模块 把这些字符串的地址传给argv数组,形成命令行参数表,argv中的元素都指向这些字符串。
  4. 再以参数的形式传给子进程的main函数。
  5. 命令行参数表前面都是有效字符串的地址,最后必须以NULL收尾。

【自己程序&选项】

 

【系统程序&选项】

【验证argc以NULL收尾】

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

【命令行参数表】

bash进程

有人问到底是谁这么干的❓为什么要这么干❓

回答:bash进程。 

🙂感谢大家的阅读,若有错误和不足,欢迎指正。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1565912.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于蚁群算法的三维路径规划(matlab实现)

作品简介 1 理论基础 1.1 三维路径规划问题概述 三维路径规划指在已知三维地图中&#xff0c;规划出一条从出发点到目标点满足某项指标最优&#xff0c;并且避开了所有三维障碍物的三维最优路径。现有的路径规划算法中&#xff0c;大部分算法是在二维规划平面或准二维规划平面…

一种新的瑞数系列通杀方案(以某监局瑞数6为例)

文章目录 声明案例地址参考代码声明 本文章中所有内容仅供学习交流,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请私信我立即删除! 案例地址 aHR0cHM6Ly93d3cubm1wYS5nb3YuY24vZGF0YXNlYXJjaC9ob21lLWluZGV4Lmh0bWw=然后搜索 关键词 可…

02-JDK新特性-函数式接口

函数式接口 什么是函数式接口 函数式接口(Functional Interface)就是有且仅有一个抽象方法&#xff0c;但是可以有多个非抽象方法的接口。 函数式接口可以被隐式转换为 Lambda 表达式。 我们可以在一个接口上使用 FunctionalInterface 注解&#xff0c;这样做可以检查它是否是…

文献速递:深度学习胰腺癌诊断--螺旋变换与模型驱动的多模态深度学习方案相结合,用于自动预测胰腺癌中TP53突变麦田医学

Title 题目 Combined Spiral Transformation and Model-Driven Multi-Modal Deep Learning Scheme for Automatic Prediction of TP53 Mutation in Pancreatic Cancer 螺旋变换与模型驱动的多模态深度学习方案相结合&#xff0c;用于自动预测胰腺癌中TP53突变 01 文献速递介…

MapReduce [OSDI‘04] 论文阅读笔记

原论文&#xff1a;MapReduce: Simplified Data Processing on Large Clusters (OSDI’04) 1. Map and Reduce Map&#xff1a;处理键值对&#xff0c;生成一组中间键值对Reduce&#xff1a;合并与同一中间键相关的所有中间值process overview&#xff1a;分割输入数据&#x…

【Redis基础篇】详细讲解Redis

这篇文章让你详细了解Redis的相关知识&#xff0c;有代码讲解以及图片剖析&#xff0c;让你更轻松掌握 制作不易&#xff0c;感觉不错&#xff0c;请点赞收藏哟 &#xff01;&#xff01;&#xff01; 目录 1 redis基础 1.1 定义 1.2 SQL和NOSQL不同点 1.3 特征 1.4 Redis…

docker版Elasticsearch安装,ik分词器安装,用户名密码配置,kibana安装

1、安装es和ik分词器 创建映射目录并赋予权限&#xff1a; mkdir -p /docker_data/elasticsearch/conf mkdir -p /docker_data/elasticsearch/data mkdir -p /docker_data/elasticsearch/plugins chmod -R 777 /docker_data/elasticsearch编写配置文件&#xff1a; vi /dock…

基于java+SpringBoot+Vue的校园交友网站设计与实现

基于javaSpringBootVue的校园交友网站设计与实现 开发语言: Java 数据库: MySQL技术: SpringBoot MyBatis工具: IDEA/Eclipse、Navicat、Maven 系统展示 前台展示 后台展示 系统简介 整体功能包含&#xff1a; 校园交友网站是一个为在校师生提供一个交流互动、寻找朋友的…

【数据库系统工程师】软考2024年5月报名流程及注意事项

2024年5月软考数据库系统工程师报名入口&#xff1a; 中国计算机技术职业资格网&#xff08;http://www.ruankao.org.cn/&#xff09; 2024年软考报名时间暂未公布&#xff0c;考试时间上半年为5月25日到28日&#xff0c;下半年考试时间为11月9日到12日。不想错过考试最新消息…

C++核心高级编程 --- 4.类和对象

文章目录 第四章&#xff1a;4.类和对象4.1 封装4.1.1 封装的意义4.1.2 struct与class的区别 4.2 对象的初始化和清理4.2.1 构造函数和析构函数4.2.2 构造函数的分类及调用4.2.3 拷贝构造函数调用时机4.2.4 构造函数调用规则4.2.5 深拷贝与浅拷贝4.2.6 初始化列表4.2.7 类对象作…

Python实现BOA蝴蝶优化算法优化BP神经网络回归模型(BP神经网络回归算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 蝴蝶优化算法(butterfly optimization algorithm, BOA)是Arora 等人于2019年提出的一种元启发式智能算…

使用kubeadm工具搭建Kubernetes集群

本文目录 一、CentOS7最小化安装&#xff08;master&#xff09;1、下载ISO镜像2、安装3、进入centos安装界面4、安装最小化安装必要的一些工具 二、克隆虚拟机&#xff08;node1、node2&#xff09;三、基础配置1、节点规划——部署架构图2、防火墙和SElinux配置2、主机名和ho…

nginx与tomcat的区别?

关于nginx和tomcat的概念 网上有很多关于nginx和tomcat是什么东西的定义&#xff0c;我总结了一下: tomcat是Web服务器、HTTP服务器、应用服务器、Servlet容器、web容器。 Nginx是Web服务器、HTTP服务器、正向/反向代理服务器&#xff0c;。 这里有两个概念是交叉的&#xff…

科技团队治理能力成长路线图

点击&#x1f446;蓝字 关注我们 本文观点&#xff5c;吴穹 主笔&#xff5c;AI小助手 温馨提示&#xff1a;干货长文&#xff0c;建议收藏阅读喔&#xff5e; 引言 2024年3月20日&#xff0c;吴穹博士于上海交通大学上海高级金融学院同一众信托行业金融科技管理者进行了《金融…

软件架构风格_2.调用/返回体系结构风格

调用/返回风格是指在系统中采用了调用与返回机制。利用调用-返回实际上是一种分而治之的策略&#xff0c;其主要思想是将一个复杂的大系统分解为若干子系统&#xff0c;以便降低复杂度&#xff0c;并且增加可修改性。程序从其执行起点开始执行该构件的代码&#xff0c;程序执行…

海外媒体软文发稿:带动海外宣发新潮流,迈向国际舞台

引言 随着全球化的发展&#xff0c;越来越多的中国企业希望在国际舞台上展示自己的实力。而海外媒体软文发稿作为一种全新的海外宣传方式&#xff0c;正逐渐成为带动海外宣发新潮流的有力工具。本文将探讨海外媒体软文发稿的优势和如何迈向国际舞台。 海外媒体软文发稿的优势…

tcpdump + wireshark 服务器抓包分析

tcpdump wireshark 服务器抓包分析 1.tcpdump安装2.tcpdump使用3.安装wireshark4.使用wireshark 本文用以总结使用tcpdump进行抓包&#xff0c;然后使用wireshark工具打开抓包出来的pacp文件进行分析。通过tcpdump可以实时监控到linux服务器中tcp和http、https等通讯的内容和信…

LVGL:拓展部件——日历 lv_calendar

一、概述 此控件特点&#xff1a; 以7x7矩阵的形式展示任何一个月的日期&#xff0c;即在一个7行7列的网格中呈现。显示星期的名称&#xff0c;即每一列对应一个特定的星期几&#xff08;如周一、周二等&#xff09;。高亮显示当前日期&#xff08;即今天&#xff09;。支持高…

强大缓存清理工具 NetShred X for Mac激活版

NetShred X for Mac是一款专为Mac用户设计的强大缓存清理工具&#xff0c;旨在帮助用户轻松管理和优化系统性能。这款软件拥有直观易用的界面&#xff0c;即使是初次使用的用户也能快速上手。 软件下载&#xff1a;NetShred X for Mac激活版下载 NetShred X能够深入扫描Mac系统…

深入理解MySQL:拼接字符串、查询、删除表和创建索引的关键命令

MySQL是一种功能强大的关系型数据库管理系统&#xff0c;广泛应用于各种类型的应用程序中。本文将介绍MySQL中一些常用的关键命令&#xff0c;包括拼接字符串、查询、删除表和创建索引&#xff0c;帮助读者更好地理解和利用MySQL数据库。 mysql拼接字符串 在MySQL中&#xf…