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

问题描述 投票:1回答:1

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

bash shell command command-line-interface
1个回答
1
投票

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

你可以输入'echo $ PATH'来检查你的PATH,或者通过'export PATH = $ PATH:/ one / more / dir'来改变它

还有bash别名,你可以设置它们将一些命令映射到另一个命令


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
© www.soinside.com 2019 - 2024. All rights reserved.