linux-command 详解:builtin 内建命令——掌控 Bash 命令查找优先级与同名冲突
文档教程【免费下载链接】linux-commandLinux命令大全搜索工具内容包含Linux命令手册、详解、学习、搜集。https://git.io/linux项目地址https://gitcode.com/GitHub_Trending/linux/linux-command点击查看免费下载builtin是 Bash 提供的一个特殊内建命令用于强制执行某个 bash 内建命令并且在解析命令时优先于同名的 shell 函数与外部命令。本文以 command/builtin.md 为骨架结合仓库中 enable、type、alias、command、help 等命令手册系统讲解 builtin 的语法、返回值、命令优先级机制并通过可复现的终端示例帮你彻底解决同名命令到底执行哪一个的问题。命令简介与概要builtin命令的作用非常单一执行指定的 bash 内建命令。其标准语法为builtin [shell-builtin [arg ...]]shell-builtin可选要调用的 bash 内建命令名称arg可选传递给该内建命令的一个或多个参数。当不带任何参数执行builtin时什么都不会发生它本身不列出内建命令列表只有当给出内建命令名时它才会将剩余参数完整转交给对应的内建命令执行。主要用途用于执行指定的 bash 内建命令builtin命令调用的 bash 内建命令优先于同名的外部命令及同名的 shell 函数——这是它区别于普通命令调用的核心价值。换句话说builtin为脚本作者提供了一条绕过函数遮蔽、直达内建实现的通道。当你定义了与内建命令同名的 shell 函数又想调用真正的内建版本时builtin就是最直接的解法。返回值builtin返回其调用的内建命令的执行返回值但存在两个例外场景会报错传递的名字不是 bash 内建命令该内建命令被禁用了关于禁用内建命令见下文 enable 命令 一节。因此builtin的返回值可以理解为内建命令执行结果的透传这使其可以安全地用于脚本中的条件判断例如if builtin type -t echo; then echo echo 是内建命令 fi核心原理Bash 的命令查找优先级理解builtin首先要理解 Bash 解析一个命令名时的查找顺序。仓库中 type 命令手册给出了命令类型的完整集合别名alias、关键字keyword、函数function、内建builtin、文件file这正是 Bash 自上而下的查找优先级。command/builtin.md 中给出的同名情况下的优先级顺序为builtin 内建命令 函数 内建命令 外部命令其中builtin 内建命令特指通过builtin强制调用的内建命令。将这个特例还原到 Bash 完整的查找链路实际规则是别名 关键字 函数 内建命令 外部命令$PATH 中查找而builtin echo ...会将内建命令这一层提升到函数之前从而优先于同名的 shell 函数执行只有当builtin调用的名字并非内建命令或已被禁用时才可能回落报错而不是自动转去执行函数或外部命令。用 type 命令验证类型type命令是验证上述优先级的最佳工具。在未定义同名函数、未禁用内建命令的前提下# type 返回命令类型builtin type -t echo # 输出builtin # printf 同时是内建命令以及可执行文件GNU coreutils优先作为内建处理 type -t printf # 输出builtin # 没有内建版本的外部命令类型为 file type -t chmod # 输出file # bash 关键字 type -t for # 输出keyword可见type -t返回的永远是优先级最高的那个类型这从侧面印证了内建命令 外部命令的查找次序。相关的-a列出 PATH 中全部可执行路径、-p、-P、-f选项的详细行为可参考 command/type.md。实战示例同名命令的执行控制示例一函数遮蔽内建命令后用 builtin 找回内建行为这是builtin最典型的应用场景。假设当前 shell 中echo是内建命令我们为其定义一个同名函数# 关于外部命令优先级最高的情况请参考 enable 命令 # 此时内建命令优先使用 echo the Great Wall # 调用内建命令 type返回命令的类型builtin type -t echo # 定义 echo 函数 echo() { printf 123\n } # 此时同名函数优先使用显示123 echo # 调用内建命令 type返回命令的类型function type -t echo # 此时内建命令优先使用 builtin echo -e backslash \\逐步解读未定义函数前echo直接命中内建命令type -t echo返回builtin定义echo函数后普通调用echo命中函数输出123type -t echo变为function使用builtin echo -e backslash \\时绕开函数层强制执行内建的echo并正确解析-e选项与转义字符输出backslash \。这个例子同时演示了builtin的两个关键点强制指定内建命令、参数原样透传-e与转义序列均由内建 echo 处理。示例二builtin 调用 alias 输出系统别名builtin也可以与其他内建命令组合。比如强制调用内建alias输出当前系统环境下的全部命令别名builtin alias # 输出示例不同发行版略有差异 alias cpcp -i alias l.ls -d .* --colortty alias llls -l --colortty alias lsls --colortty alias mvmv -i alias rmrm -i alias whichalias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde注意builtin alias与直接执行alias在无同名函数遮蔽时结果一致若环境中存在名为alias的函数builtin alias能确保执行的是内建版本。关于别名的定义、持久化写入~/.bashrc或/etc/bash.bashrc与删除可分别参考 command/alias.md 与 command/unalias.md。与 enable 命令配合管理内建命令builtin手册的注意事项明确指出如果要调用的内建命令被禁用了包括builtin本身那么执行会报错。启用与禁用内建命令由 enable 负责其语法为enable [-a] [-dnps] [-f filename] [name ...]常用选项选项作用-a打印所有内建命令无论是否禁用-n禁用指定内建命令或显示已禁用的内建命令-d移除从动态库中加载的内建命令-f从动态库中加载内建命令-p以可复用格式打印-s只显示处于启用状态的 POSIX 标准内建命令-ns打印处于禁用状态的 POSIX 标准内建命令-as打印 POSIX 标准内建命令无论是否禁用典型用法# 禁用两个 POSIX 标准内建命令 enable -n set source # 打印处于禁用状态的 POSIX 标准内建命令 enable -ns # 打印 POSIX 标准内建命令无论是否禁用 enable -as # 打印处于启用状态的 POSIX 标准内建命令 enable -s# 禁用 echo、pwd 两个内建命令 enable -n echo pwd # 打印所有内建命令无论是否禁用 enable -a # 打印处于启用状态的内建命令 enable # 打印处于禁用状态的内建命令 enable -n # 重新启用 pwd 内建命令 enable pwd禁用内建命令后优先级链会发生改变。以echo为例引用 command/enable.md 的说明当内建命令echo未被禁用时若要调用外部命令echo只能显式写全路径/usr/bin/echo当禁用了内建echo后优先级顺序变为函数 外部命令。若环境中没有echo函数那么调用echo命中的就是$PATH中的外部命令。这也解释了 command/builtin.md 中关于外部命令优先级最高的情况请参考 enable 命令的注释默认情况下内建命令优先级高于外部命令只有通过enable -n禁用它外部命令才能上位。同时请注意enable自身也是可以被禁用的内建命令——一旦enable -n enable生效后续将无法再用enable启用或禁用任何内建命令包括builtin也会受禁用影响。与 command 命令的对比仓库中的 command/command.md 讲解了另一个容易混淆的命令command同样用于调用并执行指定的命令但执行时不查询 shell 函数且只能够执行 shell 内部的命令。例如command echo Linux # 输出Linux两者对比如下对比项builtincommand执行范围仅限 bash 内建命令命令执行时不查询 shell 函数是否绕过函数是优先于函数是不查询函数是否可执行外部命令否非内建会报错视具体参数与 shell 实现而定典型用途强制调用内建实现在脚本中安全地调用命令避免函数干扰一句话总结当你明确知道要执行的是内建命令本身时用builtin当你只想绕过函数层、按正常路径执行命令时用command。常见陷阱与注意事项builtin是 bash 内建命令相关帮助信息请使用help命令查看。help是另一个 bash 内建命令只能显示内建命令的帮助信息外部命令需用man或info。常用选项包括-d简要描述、-mman 手册格式、-s仅输出命令格式。例如help shopt会直接输出shopt的完整用法详见 command/help.md。被禁用的内建命令无法通过builtin调用。包括builtin自己——若builtin被enable -n builtin禁用任何builtin调用都会报错。builtin不是万能的命令执行器。它只识别内建命令传入外部命令名或 shell 关键字如for不会执行而是返回失败。脚本中谨慎定义同名函数。source方式执行的 bash 脚本若定义了与内建命令同名的函数会改变脚本内部及当前终端环境的命令解析行为而通过sh调用或直接执行的脚本不受终端别名影响详见 command/alias.md 的注意事项。当函数与内建命令冲突时builtin是可靠的逃生通道。扩展阅读command/builtin.md本文主题文档命令语法、返回值与全部示例command/enable.md启用/禁用内建命令改变命令优先级的关键工具command/type.md用type -t验证命令类型与查找优先级command/command.md与 builtin 功能相近的command命令command/alias.md 与 command/unalias.md别名的定义、持久化与删除command/help.md获取 bash 内建命令帮助信息的方法赞分享文档教程【免费下载链接】linux-commandLinux命令大全搜索工具内容包含Linux命令手册、详解、学习、搜集。https://git.io/linux项目地址https://gitcode.com/GitHub_Trending/linux/linux-command点击查看免费下载相关推荐DebugSwift WebSocket帧分析iOS应用实时消息收发调试终极指南 DebugSwift WebSocket帧分析iOS应用实时消息收发调试终极指南 DebugSwift 是一款强大的iOS应用调试工具包专门为开发者提Home Assistant 停止 Amcrest / Dahua 摄像头 PTZ 巡游amcrest.stop_tour 动作完整指南Home Assistant 停止 Amcrest / Dahua 摄像头 PTZ 巡游amcrest.stop_tour 动作完整指南 amcrest.st文档教程为什么你的机器学习模型表现不佳用Featexp诊断特征问题的完整教程为什么你的机器学习模型表现不佳用Featexp诊断特征问题的完整教程 你是否曾经花费大量时间构建机器学习模型却发现预测效果总是不尽如人意 数据科学家们上一篇Vue-ECharts 终极指南如何实现惊艳的3D数据可视化与Three.js完美结合下一篇DINOv3零样本分割终极实践指南无需训练的高质量图像语义分割创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

质量数据散落在MES、ERP、WMS里?QMS如何把孤岛连成一张追溯网

质量数据散落在MES、ERP、WMS里?QMS如何把孤岛连成一张追溯网

你有没有过这种时刻——客户一封投诉邮件进来,说某批次产品到了终端发现异常。你第一反应不是查原因,而是先想:数据在哪儿?生产记录在生产系统里,物料信息在资源系统里,出入库在仓储系统里,检验…

2026/10/1 6:53:27 阅读更多 →
为社交网络设计图数据结构:从 BFS 最短路径到亿级用户架构(system-design-primer 实战)

为社交网络设计图数据结构:从 BFS 最短路径到亿级用户架构(system-design-primer 实战)

文档教程后端 【免费下载链接】system-design-primer Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards. 项目地址: https://gitcode.com/GitHub_Trending/sy/system-design-primer 点击查看 免费下载 本…

2026/10/1 6:51:53 阅读更多 →
Content Refresh 内容刷新编辑实战:用 copy-editing 技能体系让旧内容持续产生流量与 AI 引用

Content Refresh 内容刷新编辑实战:用 copy-editing 技能体系让旧内容持续产生流量与 AI 引用

AI 技能人工智能 【免费下载链接】marketingskills Marketing skills for Claude Code and AI agents. CRO, copywriting, SEO, analytics, and growth engineering. 项目地址: https://gitcode.com/GitHub_Trending/mar/marketingskills 点击查看 免费下载 导读 …

2026/10/1 6:51:40 阅读更多 →

最新新闻

C语言void完全指南:void指针、函数设计与编译避坑

C语言void完全指南:void指针、函数设计与编译避坑

1. void到底代表了什么:先把它说透 C语言里,void可能是看着最简单、用起来门道最多的关键字。我在嵌入式开发和通用容器库中没少和它打交道。这一篇我打算把void的用法从头到尾捋一遍:从“空类型”的定义,到函数设计、void指针、以…

2026/10/1 17:53:24 阅读更多 →
OpenClaw 接入 EvoMap 教程:用 curl 与 cron 让 AI Agent 自动进化

OpenClaw 接入 EvoMap 教程:用 curl 与 cron 让 AI Agent 自动进化

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 17:53:24 阅读更多 →
昇腾960超节点如何破解十万亿参数大模型万卡协同难题

昇腾960超节点如何破解十万亿参数大模型万卡协同难题

1. 十万亿参数时代的算力焦虑到底卡在哪1.1 从千卡到万卡,规模膨胀带来的不是线性增长大模型参数从百亿级跳到万亿级,再到十万亿级,很多人第一反应是“堆卡就行了”。但真正在集群里调过任务的人都知道,卡的数量翻十倍&#xff0c…

2026/10/1 17:53:24 阅读更多 →
单卡复现PaperClip:基于KV Cache压缩的LLM长上下文显存优化指南

单卡复现PaperClip:基于KV Cache压缩的LLM长上下文显存优化指南

先纠正一个容易搞混的印象:PaperClip 这名字看着像办公用品,实际上在 LLM 推理优化圈子里指代的是基于 KV Cache 压缩思路的一类开源项目。我花了两个周末把它读到源码级别,又在自己那台单卡机器上完整复现了一遍,期间踩了不少坑。…

2026/10/1 17:53:24 阅读更多 →
模型中立:构建可替换、可隔离、可验证的大模型架构

模型中立:构建可替换、可隔离、可验证的大模型架构

1. 什么是“模型中立”:一场悄悄发生的架构革命最近在好几个技术团队的内部分享会上,我都听到同一个词被反复提起:“模型中立”。不是“模型微调”,不是“RAG优化”,更不是“提示工程进阶”——而是把大模型从一个嵌入…

2026/10/1 17:53:24 阅读更多 →
Jenkins实战:从零搭建自动化部署流水线

Jenkins实战:从零搭建自动化部署流水线

我做了这么多年持续集成和交付,见过太多团队在 Jenkins 上栽跟头。有的卡在安装环境,有的被插件依赖搞到崩溃,还有的明明配置好了却总是构建失败,最后干脆回到手工打包上传的老路。说实话,Jenkins 本身并不难&#xff…

2026/10/1 17:52:24 阅读更多 →

日新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 1:01:17 阅读更多 →

周新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/30 13:14:22 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/30 18:13:06 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/9/30 13:14:49 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 1:01:17 阅读更多 →