小熊奶糖(BearCandy)
小熊奶糖(BearCandy)
发布于 2024-05-08 / 17 阅读
0
0

Linux 内部命令与外部命令

在Linux系统中,内部命令(又称内建命令)和外部命令代表了两种不同类型的命令执行方式:

内部命令(Built-in Commands)

  • 内部命令是shell的一部分,它们的实现代码直接嵌入到shell程序中。
  • 当你输入一个内部命令时,shell直接在进程中处理这个命令,而不需要创建一个新的进程。
  • 内部命令通常执行得更快,因为它们不需要从磁盘加载额外的程序。
  • 它们不依赖于外部程序文件的存在,所以在没有磁盘访问权限或文件系统损坏的情况下,部分内部命令仍可能可用。
  • 内部命令包括如 cd, echo, export, history, source等。

外部命令(External Commands)

  • 外部命令是独立于shell的可执行程序,通常存储在文件系统中的某个目录下(如 /bin, /usr/bin, /usr/local/bin等)。
  • 运行外部命令时,shell会创建一个新的子进程,加载并执行这个程序,然后等待其完成并收集其输出。
  • 外部命令可以是静态链接的二进制文件(如 .exe在Windows中,但Linux中通常是无扩展名或 .bin),也可以是脚本文件(如bash、perl脚本)。
  • 外部命令包括如 ls, grep, find, cp, mv等。

至于 help ls无法正常输出的原因,这是因为 help命令主要用于显示shell内建命令的帮助信息。而 ls是一个外部命令,不属于shell内建的一部分。因此,当你尝试使用 help ls时,并不会得到预期的帮助文档。

要查看外部命令的帮助信息,你应该使用 man ls或者 ls --help

  • man ls会打开手册页(manual page),提供关于 ls命令的详细帮助信息。
  • ls --help则会显示简短的使用说明,快速展示命令的基本用法和选项。

评论