关于Linux内外部命令的解释

使用type命令可以查看到命令是外部命令还是内部命令。

不同命令的执行过程不同,内部命令默认开机加载进内存中,当执行内部命令的时候就直接从内存中放到CPU里面直接运行了,外部命令对应的程序在硬盘上,就需要把硬盘中的文件加载到内存中再到CPU才可以运行。

执行速度:内部命令>外部命令,但是我们从感官上不会有任何区别,例如1ms和10ms的差距对我们而言没有太大的区别

内部命令集成在shell中,是随着开机就会自动加载并在后台运行,开机就会加载/bin/bash

例如echo是属于内部命令,集成在shell中

例如hostname属于外部命令。执行hostname会把磁盘中的文件加载到内存中并执行

 使用type -a echo 可以看到echo命令既是内部命令又是外部命令,使用echo命令系统运行会优先执行内部的命令。

提供了外部命令是提供容错机制,用的shell如果不是/bin/bash,如果里面不包含echo命令,那此时即可变成转为使用外部命令/usr/bin/echo,提供外部命令做备用。

为何要区分内部命令和外部命令,不把外部命令都放到内部命令里面随着开机加载,其实原因很简单,很多外部命令不是常用,只需要在执行的时候临时调用即可,执行完后再从内存中删除掉那就可以不占用内存,让开机不用加载这么多,即可减轻系统负载。

help命令可以列出所有内部命令的

 使用命令,他会优先从内部命令查找,如果找不到,即从搜索外部命令的列表($PATH变量)中搜索,按目录顺序查找如果按上述顺序都没查到命令即报错

 补充:alias的使用

 执行顺序:alias -> 内部命令 ->外部命令(当alias和内部命令、外部命令重名则优先alias)

当alias和外部命令或者内部命令重名。使用斜杠\+命令可以运行不用alias的命令,用原始命令

永久修改alias别名配置,配置好后source .bashrc

第一次执行外部命令时,把命令从磁盘中放到内存中执行,第二次执行直接从内存中拿。从hash表可以看到执行过的命令,hits表示执行的次数。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

元智科创(点子工作室)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值