找出命令是解析为别名、磁盘文件、shell函数、内置命令还是保留字。使用type可以发现您的Linux命令是如何执行的,并更好地理解您的系统。
听从我的命令
当我们打开终端窗口并开始向Linux计算机发出命令时,我们很少会停下来思考操作系统中的哪些软件组件正在响应我们的命令并为我们执行它们。我们键入命令,获得结果,然后继续我们的工作负载。
了解这些命令是如何执行的,可以让我们更好地理解我们的Linux或其他类似Unix的操作系统是如何构建的。看一看引擎盖下的情况可以让我们成为一名更有见识的司机。
我们向命令行发出的指令属于以下类别之一:
别名:用户(或系统)定义的命令,它会导致发生其他通常冗长或复杂的命令序列。 磁盘文件:二进制可执行文件,如/usr/bin/top。 外壳函数:可以在命令行上使用或包含在脚本中的用户(或系统)定义的函数。 内置命令:由shell本身执行的命令,如pwd。 保留字:外壳程序保留的字,如if和elif。它们也称为关键字。
type命令告诉我们任何Linux命令属于哪个类别。以下是理解命令输出的快速教程。
TYPE命令
让我们快速浏览一下每个命令类别的示例。
type date
DATE命令是一个可执行的磁盘文件。
type ls
ls命令是一个别名,默认情况下包装底层ls命令以使用--color=auto选项。
type lowdown
lowdown命令是在用于研究本文的通勤者上设置的用户定义函数。它提供一些系统资源的快速快照。它是whami、w、free和df的组合。
type pwd
pwd命令是Bash shell的内置命令。
type elif
elif命令是Bash shell保留字。
使用多个命令
您可以同时向TYPE提供多个命令以进行标识。
type date top ls
t选项
该类型将接受的所有选项都没有名称。这样我们就可以拿出我们的名字本,自己给它们洗礼了。如果你认为-t选项代表“简洁”,那你就不会大错特错了。它将回答从打字减少到单字回答。
type -t date
type -t pwd
type -t lowdown
-a选项
让我们称其为“全部”选项。它列出了命令所在的所有位置。请注意,如果您还使用-p选项,则此选项将不起作用。
例如,如果您的别名与基础命令同名,则可以获取有关该别名和命令的信息。
type -a ls
-f选项
f选项强制type不搜索用户或系统定义的函数。可以将此选项视为“函数搜索关闭”。请注意,如果命令是函数,则键入将报告找不到该命令。
type -f top
type -f lowdown
-P选项
如果使用-P选项,键入将仅搜索$PATH中的目录。所以我们可以称这个选项为“path”。请注意,这个选项使用的是大写的“P”。
type -P date chmod adduser
p选项
如果使用-p命令选项,则仅当命令是硬盘文件时,键入才会响应。请注意,此选项使用小写“p”。
type -p mount
type -p ls
type -p -a ls
type不会为ls提供任何响应,因为ls是别名,而不是磁盘文件。
但是,如果我们包括-a选项,以便type查找ls命令的所有实例,它将列出ls别名使用的底层磁盘文件。
简略的 / 概括的 / 简易判罪的 / 简易的
这很好,很简单,但仍然很有启发性。
我们倾向于认为我们在终端窗口中键入的任何内容都是“命令”,我们就到此为止。但实际上,在Linux系统中,命令的实现方式多种多样。类型可以让您找出是哪一个。