Linux中命令执行的过程

执行命令

  • 输入命令后回车
    申请shell(命令解释器)程序找到输入的命令所对应的可执行程序或代码,并由其分析后提交给内核分配资源将其运行起来。
    shell有好多种,可以自己找找具体区别,反正都是用的bash,通过cat命令可以查看当前系统有哪些shell类型。
    当让也可以查看自己正在使用那种shell类型,简单就用echo ${SHELL}

    当让也可以查看自己正在使用那种shell类型,简单就用echo ${SHELL}

  • 在shell中可执行的命令有两类

     内部命令:由shell自带的,而且通过某命令形式提供
     			help 可以查看内部命令列表
     			enable cmd 启用内部命令
     			enable -n cmd 禁用内部命令(但是,例如有时候你发现你禁用了pwd命令,但是还是能使用pwd查看路径,这其实是因为你用的pwd不是内部命令,而是外部命令。再往下看你就懂了)
     			enable -n 查看所有禁用的内部命令
     外部命令:在文件系统路径下有对应的可执行程序文件
     		查看命令路径可以用whereis commad
    
  • 区别指令的命令是内部命令还是外部命令

    type command
    在这里插入图片描述
    builtin是内置命令的意思。

  • 执行指令时shell怎么找命令所对应的可执行程序或者代码呢?
    以bash为例
    解释器优先从bash自带的命令也就是内部命令(在内存中)中找,找到了自然就直接执行了,没找到呢?就在外部命令中找,也就是磁盘中存在的可执行程序或代码,这里就存在一个优先级,我们知道内存中是有一块Cache的,这里面有从硬盘中缓存过来的数据,我们使用过的命令自然也在其中,优先从这里面找,找不到也不是就放弃了,直接去硬盘里面找,此时就通过PATH环境变量来找,PATH里存放的就是路径可以看一下
    在这里插入图片描述
    从第一个路径找,一个又一个直到最后一个路径,如果找不到,那么就会停止,然后输出错误信息。
    在这里插入图片描述
    想要不报错应该很简单了,把命令放到PATH内容里有的路径里,或者在PATH里新添加命令对应文件的路径。是不是很简单。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值