shell内置命令和外部命令的区别

shell内置命令和外部命令的区别

内部命令实际上是shell程序的一部分,其中包含的是一些比较简单的linux系统命令,这些命令由shell程序识别并在shell程序内部完成运行,通常在linux系统加载运行时shell就被加载并驻留在系统内存中。内部命令是写在bashy源码里面的,其执行速度比外部命令快,因为解析内部命令shell不需要创建子进程。比如:exit,history,cd,echo等。

外部命令是linux系统中的实用程序部分,因为实用程序的功能通常都比较强大,所以其包含的程序量也会很大,在系统加载时并不随系统一起被加载到内存中,而是在需要时才将其调用内存。通常外部命令的实体并不包含在shell中,但是其命令执行过程是由shell程序控制的。shell程序管理外部命令执行的路径查找、加载存放,并控制命令的执行。外部命令是在bash之外额外安装的,通常放在/bin,/usr/bin,/sbin,/usr/sbin……等等。可通过”echo $PATH”命令查看外部命令的存储路径,比如:ls、vi等。

用type命令可以分辨内部命令与外部命令:

内部命令和外部命令最大的区别之处就是性能。内部命令由于构建在shell中而不必创建多余的进程,要比外部命令执行快得多。因此和执行更大的脚本道理一样,执行包含很多外部命令的脚本会损害脚本的性能。

Original: https://www.cnblogs.com/cn-leoblog/p/15616054.html
Author: Leo’sblog
Title: shell内置命令和外部命令的区别

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/711804/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • SpringBoot-swagger

    SpringBoot整合swagger SpringBoot-swagger 13.1 导入相关依赖 io.springfox springfox-swagger-ui 2.9.2…

    技术杂谈 2023年6月21日
    0120
  • [转]钉钉宜搭

    1. 简介 2. 首页 3. 工作台 4. 普通表单 5. 流程表单 6. 报表 7. 外部链接 8. 自定义页面 9. 高级功能 1. 简介 词汇表可以帮助您了解一些特殊词汇的概…

    技术杂谈 2023年5月30日
    099
  • 微服务组件—–SpringCloudAlibaba注册中心Nacos源码(1.4.x版本)分析

    核心功能点 【1】 服务注册:Nacos Client会通过发送REST请求的方式向Nacos Server注册自己的服务,提供自身的元数据,比如ip地址、端口等信息。Nacos …

    技术杂谈 2023年7月23日
    094
  • md5解密异常

    javax.crypto.BadPaddingException: Given final block not properly paddedat com.sun.crypto.p…

    技术杂谈 2023年7月24日
    087
  • 高级 NFC 概览

    将 NFC 标签与 Android 设备结合使用时,用于读取和写入标签数据的主要格式是 NDEF。当设备扫描具有 NDEF 数据的标签时,Android 会尽可能在解析消息和通过 …

    技术杂谈 2023年5月31日
    092
  • 页面多查询条件必选的统一处理思路

    背景 开发中我们可能会遇到会页面对应的数据表量级较大、页面查询条件过多的情况,那么有时候我们可能会限制做查询操作是必须选择至少一个查询条件。 页面效果: 直接查询会提示: 正文 思…

    技术杂谈 2023年7月25日
    0108
  • 【Golang】golang中time类型的before方法

    在比较时间的时候,比较有用的一个方法,判断两个时间的前后关系 a.before(b) 如果a在b之前,就返回true ,否则返回false func TestTimeBefore(…

    技术杂谈 2023年6月1日
    088
  • Django中六个常用的自定义装饰器

    装饰器作用 decorator是当今最流行的设计模式之一,很多使用它的人并不知道它是一种设计模式。这种模式有什么特别之处? 有兴趣可以看看Python Wiki上例子,使用它可以很…

    技术杂谈 2023年7月10日
    069
  • Python实现秒杀某宝商品抢购(附超详细代码)

    前言 618过去了,前两天我干了一件惊天动地的大事,估计这件大事是很多小伙伴都想干的。我居然用python抢购淘宝商品,没想到 吧,最勇敢的还是我。关于抢购的思路以及代码,我将会在…

    技术杂谈 2023年6月21日
    087
  • 设计模式 22 策略模式

    策略模式(Strategy Pattern)属于 行为型模式 生活中会面临很多抉择,每一个抉择会导向不同的结果,这时就会出现策略的选择。 程序中也是一样,而且更加复杂,生活中的抉择…

    技术杂谈 2023年7月25日
    069
  • NO.2Windows桌面图标-间距参数调整

    遇到如下问题: 桌面图标自动排序后间隔过大,且如图二这种指向图标能看到图标之间的间隔虚框,此方法可调整虚框的水平和垂直距离,即调整图标之间的间距。 测试电脑: 华为 mateboo…

    技术杂谈 2023年7月24日
    069
  • HashMap实现原理分析

    1. HashMap的数据结构 数据结构中有数组和链表来实现对数据的存储,但这两者基本上是两个极端。 数组 数组存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时…

    技术杂谈 2023年5月31日
    095
  • ReactHooks的实现必须依赖Fiber么?

    作者:zxg_神说要有光 原文链接:https://juejin.cn/post/7087172219226292237 React 的 hooks 是在 fiber 之后出现的特…

    技术杂谈 2023年7月24日
    070
  • synchronized原理剖析

    synchronized原理剖析 并发编程存在什么问题? 1️⃣ 可见性 可见性:是指当一个线程对共享变量进行了修改,那么另外的线程可以立即看到修改后的最新值。 案例演示:一个线程…

    技术杂谈 2023年6月21日
    0100
  • 使用ThreadLocal请务必remove

    特别注意,web容器的线程是重复使用的,web容器使用了线程池,当一个请求使用完某个线程,该线程会放回线程池被其它请求使用,这就导致一个问题,不同的请求还是有可能会使用到同一个线程…

    技术杂谈 2023年5月31日
    081
  • 安装webgot漏洞实验平台时遇到的java环境配置问题

    6 .安装并注册 依次执行命令: 将已下载的Java版本登记为替代版本,将其改成作为默认版本来使用: update-alternatives –install /usr…

    技术杂谈 2023年7月11日
    070
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球