Linux 内置命令与外部命令超详解(区别、原理、查找、执行流程)
️ 标签LinuxShell内置命令外部命令Linux命令详解运维入门 适用人群Linux 初学者、运维、后端开发、计算机专业学生 文章亮点通俗易懂讲解内建命令、外部命令本质区别、执行流程、如何区分、使用场景零基础也能看懂可直接发布 CSDN一、前言我们每天在 Linux 终端输入各种命令cd、pwd、ls、mkdir、echo、date……但很多人不知道Linux 命令分为两大类内置命令内建命令 Shell Built-in外部命令外部磁盘可执行文件很多面试也常问cd 为什么不需要外部程序ls 和 cd 有什么本质区别内置命令和外部命令执行流程有什么不同本文一次性讲透看完彻底搞懂。二、什么是内置命令内建命令2.1 定义内置命令是Shell 程序内部自带的命令没有独立的可执行文件随 Shell 启动常驻内存。2.2 特点无独立磁盘程序执行不创建子进程速度极快直接在当前 Shell 进程中运行不需要去磁盘搜索路径始终可用不需要依赖环境变量 PATH2.3 常见内置命令plaintextcd、pwd、echo、exit、history、type、alias、unset、source三、什么是外部命令3.1 定义外部命令是独立的可执行二进制文件 放在系统bin、sbin等目录下。3.2 特点有独立可执行文件执行时会创建子进程需要根据 PATH 路径搜索文件磁盘查找、加载运行速度比内置慢文件删除后命令就失效3.3 常见外部命令ls、mkdir、rm、cp、mv、cat、ping、ifconfig、systemctl四、如何区分内置命令 外部命令使用type命令一秒区分。示例 1内置命令type cd输出cd is a shell builtin表示cd 是内置命令示例 2外部命令type ls输出ls is /usr/bin/ls表示ls 是外部可执行文件示例 3既有内置也有外部部分命令既有内置版本也有外部版本type echo五、内置命令与外部命令核心区别对比项内置命令外部命令存在形式Shell 内部自带独立可执行文件磁盘文件无有/bin、/usr/bin是否创建子进程不创建创建子进程执行速度极快较慢是否依赖 PATH不依赖依赖 PATH 环境变量常驻内存是用时加载用完释放示例cd、pwd、exit、echols、mkdir、rm、cat六、执行原理与流程6.1 内置命令执行流程输入命令Shell 直接识别为内置当前进程执行无需磁盘搜索、无需创建子进程速度非常快6.2 外部命令执行流程输入命令Shell 判断不是内置去PATH 路径依次搜索可执行文件找到对应二进制程序fork 创建子进程→ exec 加载运行子进程结束退出流程更长、速度更慢七、为什么 cd 是内置命令很多同学疑惑 为什么cd不能做成外部命令原因核心cd 的作用是切换当前 Shell 进程的工作目录如果 cd 是外部命令会创建子进程子进程切换目录主 Shell 进程目录完全不会变化所以cd 必须是内置命令只能在当前 Shell 进程内生效。八、查找外部命令所在路径8.1 which 命令查找外部命令真实路径which ls which mkdir8.2 whereis 命令查找命令、源码、帮助文档whereis ls8.3 查看 PATH 环境变量echo $PATH外部命令只能在 PATH 包含的目录中找到。九、典型面试题总结什么是 Linux 内置命令Shell 内部自带无独立程序不创建子进程执行快。什么是 Linux 外部命令独立可执行文件依赖 PATH执行创建子进程。cd 为什么必须是内置命令切换目录需要修改当前 Shell 进程环境子进程无法影响父进程。怎么判断命令是内置还是外部使用type 命令内置命令和外部命令哪个快内置命令更快不创建进程、不磁盘查找。十、总结内置命令Shell 自带、无文件、不创建子进程、速度快外部命令独立可执行文件、依赖 PATH、创建子进程用type可以快速区分命令类型cd、pwd、exit、history都是典型内置ls、mkdir、rm、cat都是典型外部理解两者区别是 Linux 基础 面试必备知识点版权声明本文为原创 Linux 技术文章CSDN 首发详细解析内置命令与外部命令原理、区别、执行流程适合学习与面试复习禁止未经授权转载、抄袭、搬运。