![在 Bash 中,为什么“cat”和“ls”等命令实际上是预安装的,却被标记为外部命令?](https://linux22.com/image/199894/%E5%9C%A8%20Bash%20%E4%B8%AD%EF%BC%8C%E4%B8%BA%E4%BB%80%E4%B9%88%E2%80%9Ccat%E2%80%9D%E5%92%8C%E2%80%9Cls%E2%80%9D%E7%AD%89%E5%91%BD%E4%BB%A4%E5%AE%9E%E9%99%85%E4%B8%8A%E6%98%AF%E9%A2%84%E5%AE%89%E8%A3%85%E7%9A%84%EF%BC%8C%E5%8D%B4%E8%A2%AB%E6%A0%87%E8%AE%B0%E4%B8%BA%E5%A4%96%E9%83%A8%E5%91%BD%E4%BB%A4%EF%BC%9F.png)
为什么命令是这样的
“ls”、“猫”、“触摸”、“rm”、“mkdir”
不是内部命令,当你安装 bash 时它们已经存在了?我觉得外部命令应该是可以从其他地方下载的命令。
答案1
因为这些命令不是bash
.尽管它们默认在大多数系统上可用,但它们作为具有单独代码库的单独软件提供。如果删除它们,bash 仍将继续运行,不会出现任何问题。
同时bash
具有内置工具,在 man 的内置部分中进行了描述(或这里)。这些都与外壳密不可分。
此外,shell 有一个限制模式,您无法执行“外部”命令,但内置命令仍然可以执行。