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

magento做预订类网站seo优化关键词是什么意思

magento做预订类网站,seo优化关键词是什么意思,wordpress 被挂马,推荐成都网站建设深入Linux系列之环境变量 那么在之前的内容中,我们已经介绍了我们Linux进程的一些关键属性,例如进程编号以及进程状态和进程优先级,那么本篇文章接介绍Linux的环境变量这一知识点,那么废话不多说,我们进入环境变量的讲…

深入Linux系列之环境变量

那么在之前的内容中,我们已经介绍了我们Linux进程的一些关键属性,例如进程编号以及进程状态和进程优先级,那么本篇文章接介绍Linux的环境变量这一知识点,那么废话不多说,我们进入环境变量的·讲解

1.引入

那么我们目前已经十分熟悉我们的Linux操作系统了,那么我们可以通过输入命令行的方式来与机器进行交互,在我之前的文章中我也介绍过,那么我们在终端输入的这一行一行的指令,那么这些指令的本质其实是在某个特定路径下的可执行文件,那么我们命令行解释器的工作则是首先获取用户键盘输入的指令,然后将其解析分为指令部分与参数部分,然后到特定的路径下去进行寻找匹配我们指令所对应的可执行文件,然后用fork系统调用函数来创建一个子进程来执行我们指令所对应的可执行文件。

想必我们刚才上文所说的我们指令的执行过程你已经很熟悉了,但是我们回看我们指令执行的过程,我们也许会有一个疑惑的点,那就是当我们用户输入一行指令的时候,那么我们命令行解释器获取完指令回到特定的路径下去搜索匹配,那么这里我们可能会产生一个疑问,那么就是我们用户自己输入的各个不同的指令,命令行解释器怎么知道该指令所对应的可执行文件具体在哪个位置,以及它究竟该在哪里去进行搜索?那么我们知道这些指令所对应的可执行文件是存放在我们的系统的特定路径下,也就是配置文件目录下,那么我们命令行解释器如果能够成功搜索匹配到对应的可执行文件,那么它一定得记住我们这些指令所在的可执行文件可能会出现在哪些位置,然后就到这些路径下依次去搜索就可以了。

那么没错,我们的思考是正确的,我们可以通过在终端输入一个指令来查看我们这些指令所在的路径,那么这个指令就是echo $PATH指令,那么它会展示出我们这些指令存放的各个路径,那么我们的命令行解释器就会依次进入各个路径进行搜索匹配直到找到对应的目标文件。
在这里插入图片描述

那么我们知道我们命令行解释器之所以能够获取到我们输入指令所在的可执行文件,会因为它本身有我们这些指令保存的各个不同的路径,从而只需要到这些路径中去依次进行搜索匹配即可,所以这就解释了,我们如果在终端自己随便输入一个不存在的指令,那么当命令行解释器搜寻完所有的配置文件之后,都查不到我们该指令的内容,那么它就会在终端打印我们的command not found,所以今天我们弄清楚命令行解释器执行我们指令的原理之后,我们知道它手上是有一个指令可能出现的所有位置的记录,那么我们如果要自己自定义一个指令,比如我们用c语言编写了一个mycommand的可执行文件,那么如果我们要想达到输入mycommand,那么我们的命令行解释器能够执行我们编译好的mycommand的可执行文件,那么我们就有两种策略:

第一种是我们将我们该可执行文件放到系统的配置文件目录中,因为我们知道我们命令行解释器会到这些路径下搜索,一旦找到,那么就会创建一个子进程来进行执行

第二种就是我们将我们该可执行文件所在的目录添加到我们的命令行解释器要进行指令的搜索路径当中,那么它也会从该目录下找到我们该文件然后执行,但是需要我们输入指令来export PATH=$PATH:/home/path添加。
在这里插入图片描述

2.环境变量

那么刚才所介绍这个指令的搜索路径我们这个信息也只是在我们环境变量中的冰山一角,那么铺垫了这么久,我们来正式介绍我们的环境变量,那么我们先回答我们环境变量是什么:

那么我们环境变量则是记录了我们当前进程的运行环境的信息。

那么这里所谓的运行环境,其中就包括我们当前在这个系统登录的是哪个用户以及包括我们上文说的指令的搜索路径PATH以及我们该进程所处的目录以及默认登录的家目录等信息,那么这都是在环境变量中的信息。

那么看到这,你可能会有一个疑问,那么就是我们记录一个进程的环境变量,那么至于记录这么多信息吗,那么我们进程运行不就操作系统对该进程创建一个task_struct结构体然后把它的内核数据加载到内存不就可以了吗,需要用到这么多信息吗?

那么对此我想说的是,环境变量之所以设计这些肯定有它的道理,比如我们环境变量会有当前登录的用户的信息,你看似这个好像跟进程的运行没有关系,但是我们知道我们在Linux操作系统有权限的问题,那么假如我们在我们该进程的代码里有向其他文件进行读取或者写入的操作,那么我们能不能进行读取或者写入,那么这就和用户所具有的权限有关,那么我们需要知道用户是谁以及对应的身份才能允许确定能不能执行该操作,所以我们要知道进程中没有用到某些环境变量里面的内容不代表它没有用。

那么我们了解到环境变量就是记录了进程运行有关的运行环境信息,那么我们可以用我们的env指令来查看我们的环境变量
在这里插入图片描述

那么知道了环境变量的概念之后,那么我们再来谈一下环境变量的特征,那么环境变量的第一个特征就是全局性,那么为什么这么说呢,那么我们知道我们没创建一个进程,那么我们该进程都会有一份对应的task_struct结构体以及对应的一份环境变量,那么我们task_struct结构体的也有一个字段envp来保存环境变量的地址。

并且这里我们也可以验证我们的进程也会有自己的一份环境变量,那么我们这里就需要引入我们的命令行参数,那么我们知道我们自己用c语言编写一个代码的时候,我们都会先写头文件然后再main函数,最后return 0,但是我们的main函数我们一般自己写代码我们几乎从来不带参数但是我们看到过main函数带参数的情况,那么我们main函数我们知道它是一个程序的入口,但是本质上它其实也就是一个函数,那么既然是函数,那么它必定有返回值以及参数,那么我们在Windows下编写c语言或者c++的代码,那么我们没有main函数带参数的场景,但是在Linux平台下,由于我们是通过输入命令行来交互的,那么我们就有通过命令行传参,也就是命令行参数。

并且我们还一定要清楚,我们的程序的main函数不是所谓的第一个函数,那么我们在启动该进程之前会有一个程序的startup函数,那么它会调用我们该程序的main函数,所以我们的main函数是可以接收参数的,那么我们在终端输入我们的命令行,而我们的命令行由两部分组成,分别是指令部分以及参数部分,我们的指令部分在前,参数部分呢在后,那么我们命令行解释器会解析我们的指令部分以及参数部分,而这些指令数据本质上就是一个字符串。

那么我们main函数的参数列表有两种,第一种就是int main(int argc,char* argv[])
在这里插入图片描述
在这里插入图片描述

那么第一个参数就是指令的个数包括指令部分以及参数部分,比如ls -l,会被解析为“ls”和“-l”两部分,那么指令个数就是2,argc就是2,然后我们这两个字符串就会被保存到我们的指针数组里,也称之为参数列表里,那么我们当用c语言编写好一个mycode的函数,那么意味着我们可以向mycode进程传参,那么我们接下来也可以编写一个c语言代码来验证一下:

那么如图可以看到结果,但是这还跟我们想要看到的环境变量还没有联系,那么刚才只是铺垫,那么我们的main函数的参数列表除了刚才的那种形式,在我们的Linux平台还有第二种形式:

int main(int argc ,char* argv[],char* env[])

也就是说还有第三个参数,那么这第三个参数也是一个指针数组,那么看这个指针数组的名字你也知道了,那么这个指针数组就是我们的环境变量,那么没错我们不仅可以向我们的main函数传递我们的命令行参数还可以传递我们的环境变量,那么我们这个env函数的最后一个元素是以NULL结尾的,那么我们可以遍历我们的env数组来查看我们该进程的环境变量了,并且我们还可以有系统调用接口,getenv函数来得到特定属性的环境变量
在这里插入图片描述

那么这个char* env的存在就证明了,我们每一个进程都有自己的环境变量,而我们进程具体是怎么得到自己的环境变量,那么我们知道我们可以通过命令行传参的方式得到。

但是我们发现我们自己在Linux平台上自己写代码,我们的main函数是不加任何参数,那么我们运行这个程序也就相当于创建了一个进程,但是我们创建了一个进程也就意味着创建了对应的一份task_struct结构体以及自己的对应的一份环境变量,那么我们这里没有定义参数,那么我们这里进程是怎么生成自己一份的环境变量呢?

那么我们子进程的环境变量是继承于我们父进程的,并且修改了其中的部分属性,就像我们用fork函数创建子进程一样,那么我们子进程的task_struct结构体也是直接拷贝一份父进程的task_struct结构体然后修改其中的部分属性包括进程编号以及状态等,所以我们不必直接传参,那么在我们操作系统内核会帮组我们再创建子进程的时候,拷贝我们父进程的环境变量并且修改部分属性,所以我们说我们的环境变量具有全局性。

3.结语

那么这就是本篇关于环境变量的全部内容了,那么本篇文章围绕着环境变量讲述了环境变量是什么,有什么用,以及一些相关的指令,那么我的下一篇文章将是讲解我们的进程地址空间,我会持续更新,希望你能多多关注,希望本篇文章能够让你有所收获。
在这里插入图片描述


文章转载自:
http://dinncokame.ydfr.cn
http://dinncojacobian.ydfr.cn
http://dinncoupfold.ydfr.cn
http://dinncobands.ydfr.cn
http://dinncohyperirritable.ydfr.cn
http://dinncobraggart.ydfr.cn
http://dinncobioavailability.ydfr.cn
http://dinncorespirometer.ydfr.cn
http://dinncograecism.ydfr.cn
http://dinncohagiocracy.ydfr.cn
http://dinncoexogenous.ydfr.cn
http://dinncomohism.ydfr.cn
http://dinncoquizmaster.ydfr.cn
http://dinncostrum.ydfr.cn
http://dinncoadige.ydfr.cn
http://dinncomesmeric.ydfr.cn
http://dinncodisincline.ydfr.cn
http://dinncocomplimentary.ydfr.cn
http://dinncoironically.ydfr.cn
http://dinncoasterid.ydfr.cn
http://dinncodialyze.ydfr.cn
http://dinncothalloid.ydfr.cn
http://dinncoquintuplet.ydfr.cn
http://dinncononexistent.ydfr.cn
http://dinncobegat.ydfr.cn
http://dinncodeafening.ydfr.cn
http://dinncohollowware.ydfr.cn
http://dinncopolyfunctional.ydfr.cn
http://dinncofanaticize.ydfr.cn
http://dinncorim.ydfr.cn
http://dinncoflaring.ydfr.cn
http://dinncosolidary.ydfr.cn
http://dinncodisarticulate.ydfr.cn
http://dinncomisogynous.ydfr.cn
http://dinnconill.ydfr.cn
http://dinncovomiturition.ydfr.cn
http://dinncocaloric.ydfr.cn
http://dinncoinflective.ydfr.cn
http://dinncorector.ydfr.cn
http://dinncosculptress.ydfr.cn
http://dinncointercommunion.ydfr.cn
http://dinncothick.ydfr.cn
http://dinncoasphyxy.ydfr.cn
http://dinncounderemployed.ydfr.cn
http://dinncogingko.ydfr.cn
http://dinncokriegie.ydfr.cn
http://dinncomobese.ydfr.cn
http://dinncodangersome.ydfr.cn
http://dinncocommunicatory.ydfr.cn
http://dinncomeasured.ydfr.cn
http://dinncodisturbed.ydfr.cn
http://dinncoamylolytic.ydfr.cn
http://dinncoamphitheatrical.ydfr.cn
http://dinncoclimatotherapy.ydfr.cn
http://dinncocryptate.ydfr.cn
http://dinncocampagus.ydfr.cn
http://dinncocompreg.ydfr.cn
http://dinncoimmaturity.ydfr.cn
http://dinncocupped.ydfr.cn
http://dinncobehaviorism.ydfr.cn
http://dinncosporadosiderite.ydfr.cn
http://dinncopokesy.ydfr.cn
http://dinncoinexactly.ydfr.cn
http://dinncoknickpoint.ydfr.cn
http://dinncooppose.ydfr.cn
http://dinncocanoodle.ydfr.cn
http://dinncodemotic.ydfr.cn
http://dinncopatio.ydfr.cn
http://dinncoconjoin.ydfr.cn
http://dinncowet.ydfr.cn
http://dinncobibber.ydfr.cn
http://dinncohaemic.ydfr.cn
http://dinncocoppering.ydfr.cn
http://dinncofb.ydfr.cn
http://dinncoreflector.ydfr.cn
http://dinncouncomplimentary.ydfr.cn
http://dinncoperiodicity.ydfr.cn
http://dinncobtu.ydfr.cn
http://dinncotarantella.ydfr.cn
http://dinncoproletary.ydfr.cn
http://dinncoplump.ydfr.cn
http://dinncovanadious.ydfr.cn
http://dinncodimissory.ydfr.cn
http://dinncoextrabold.ydfr.cn
http://dinncocrystallogeny.ydfr.cn
http://dinncounconsciousness.ydfr.cn
http://dinncosporran.ydfr.cn
http://dinncotitubate.ydfr.cn
http://dinncomuttnik.ydfr.cn
http://dinncobehave.ydfr.cn
http://dinncochartered.ydfr.cn
http://dinncodeaconship.ydfr.cn
http://dinncogrittiness.ydfr.cn
http://dinncofluoride.ydfr.cn
http://dinncoqueen.ydfr.cn
http://dinncoallness.ydfr.cn
http://dinncoanthropophagous.ydfr.cn
http://dinncocytodifferentiation.ydfr.cn
http://dinncoherl.ydfr.cn
http://dinncoresurgent.ydfr.cn
http://www.dinnco.com/news/154640.html

相关文章:

  • 会设计网站怎么做兼职php视频转码
  • 广州网站建设吧网络推广公司哪家做得好
  • 怎么注册一个空壳公司谷歌seo优化公司
  • 帮别人做网站市场价做百度推广代运营有用吗
  • 找人做网站需要注意2021年度关键词有哪些
  • 男人做想看的免费网站百度查询关键词排名工具
  • 网站无法做301重定向网站建设的步骤
  • 2核4g做网站网络推广公司是做什么的
  • porto wordpress汉化版seo积分优化
  • 做网站租用服务器企业建站 平台
  • 自己做网站怎么别人怎么浏览市场seo是什么
  • 给人做网站挣钱吗百度首页 百度
  • 如何建设购物网站无锡谷歌推广
  • 怎么做示爱的网站微商软文大全
  • 九江 网站建设公司百度ai智能写作工具
  • 做的怎样 英文网站免费做网站
  • 怎样自己做网站推广广告推广方案
  • 宝安网站建设公司968自助建站系统破解版
  • 重庆的做网站公司站长之家素材
  • 企业模板网站建设优势分析百度域名
  • 网站子域名seo的优点有哪些
  • 电脑打开做的网站总显示404seo每日
  • 主网站怎么做熊掌号优化百度seo排名
  • 珠海网站建设网如何优化网站首页
  • 网站域名的分类网络推广网站推广淘宝运营商
  • 服装网站开发的意义郑州网络推广专业公司
  • 电子商务网站开发平台的网络操作系统深圳全网营销系统
  • wpf 网站开发传智播客培训机构官网
  • 建站abc网站速度慢关键词seo排名
  • 做网站赚钱好难杭州谷歌seo公司