命令究竟是什么?如何识别?

Pan*_*dya 6 command

我想知道 Linux 命令究竟是什么?以及如何识别和定位它们?

换句话说,什么是不同种类/类型/类别的命令?如何识别它们并定位(来源)它。

Pan*_*dya 13

以下来自The Linux Command Line一书。完整的 PDF 教程也可在此处获得

命令可以是四种不同的事物之一:

  1. 一个可执行程序,就像我们在 /usr/bin 中看到的所有文件一样。在此类别中,程序可以是编译后的二进制文件,例如用 C 和 C++ 编写的程序,或用脚本语言编写的程序,例如 shell、perl、python、ruby 等。

  2. 一个命令shell内置本身。bash 支持许多内部称为 shell 内置命令的命令。例如,cd 命令是一个内置的 shell。

  3. 一个壳函数。这些是集成到环境中的微型 shell 脚本。我们将在后面的章节中介绍配置环境和编写 shell 函数,但现在,请注意它们的存在。

  4. 别名。我们可以定义自己的命令,从其他命令构建。

要识别命令的类型,您可以使用type

NAME
    type - Display information about command type.
Run Code Online (Sandbox Code Playgroud)

例子:

$ type ls
ls is aliased to `ls --color=auto'
$ type cd
cd is a shell builtin
Run Code Online (Sandbox Code Playgroud)

要显示命令的位置,您可以使用which

$ which info
/usr/bin/info
$ which init
/sbin/init
Run Code Online (Sandbox Code Playgroud)

希望这有助于新用户了解命令的基本知识。

  • 来源是什么?这显然是从一本书/教程中复制的,但我没有看到任何参考。 (4认同)
  • 这很好。一个建议 - 您可以使用 `command` 代替 `type` 和 `which` - 这是一种可移植的方式。 (3认同)