shell 的内建命令和外部命令

本文详细解释了Shell命令中的内建命令与外部命令的区别,包括它们的定义、执行方式及性能差异。并通过type命令演示了如何区分两种类型的命令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文链接:https://www.cnblogs.com/chenny7/p/3705358.html

 一、 定义

        Shell执行的命令可以分为内建命令(built-in)和外部命令(external),前者是构建在shell内部;后者是一个独立的文件(可以是二进制文件,也可以是一个脚本)。

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

       外部命令:它的执行比较复杂,shell进程会fork一个子进程,父进程随后挂起,然后在子进程中exec加载外部文件,子进程返回后,父进程才继续执行。

       从上面的区别可以看出,内建命令的性能要优于外部命令,因为它没有新建进程的开销。

 二、 判断方法:

      type命令可以区别一个命令是内建命令,还是外部命令:

三、注意:

1. Shell会沿着路径$PATH来寻找外部命令,环境变量PATH是一个以冒号分隔的目录列表,

2. 用help命令查看系统的内建命令:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值