bash(CLI)命令在Linux内部如何工作?

时间:2019-02-26 06:54:19

标签: bash shell command command-line-interface

我想了解bash终端如何准确地验证输入的命令,然后为我提供期望的输出。 例如:当我输入“ ls”时,它怎么知道这是一个有效命令,它如何给我文件列表? 我并不是要特别理解“ ls”命令,而是总的来说这些命令是如何工作的。

2 个答案:

答案 0 :(得分:1)

它查找您的$ PATH环境。变量并递归地遍历PATH目录以查找与您的命令匹配的二进制文件。例如/ bin / ls

您可以通过输入'echo $ PATH'来检查PATH,或通过'export PATH = $ PATH:/ one / more / dir'进行更改

还有bash别名,您可以将其设置为将某些命令映射到另一个命令

答案 1 :(得分:0)

我将尝试以一种非常简单的方式进行解释。

它们都是二进制文件。它们作为常规流程运行。它们具有可选和/或必需的命令行参数。它们位于$ PATH环境变量中定义的位置之一中。通常会在/ usr / bin或/ usr / sbin中找到这些二进制文件。

在查看这些位置之前,操作系统首先将查找.bashrc文件中定义的bash别名。 Bash别名类似于C中的#defines。在此处了解有关它们的更多信息:https://mijingo.com/blog/creating-bash-aliases

但是,在执行此操作之前,它会寻找内置命令,即默认情况下随Shell提供的命令。这些是内置在Shell功能中的最常用命令,因此无需每次调用​​Shell便运行进程。

例如:“ cd”是内置的shell,而“ ls”不是

~ # type cd
cd is a shell builtin

~ # type ls
ls is /bin/ls