在哪里可以找到终端命令的代码?

在哪里可以找到终端命令的代码?

我希望能够看到每次在终端中输入“ls”或“cd”时执行的代码。这样我就可以修改现有程序并编写新程序。这些程序是用什么语言编写的?

答案1

在哪里可以找到终端命令的代码?

在哪里找到它取决于命令。有多个位置。

关于你提到的两个:

GNU 核心实用程序

ls是 GNU Coreutils 的一部分。您可以获得所有 GNU 核心实用程序的源代码(因此不仅限于ls维基百科核心实用程序列表) 在gnu.org. 从命令行使用 git (git需要安装):

git clone git://git.sv.gnu.org/coreutils

ls也可以在网上找到git.savannah.gnu.org。所有其他命令也都可以在那里访问。

  • Shell 内建命令

cd是 shell 的内置函数,因此是 的一部分bash。您可以在以下位置找到 bash 的源代码:ftp.gnu.org。这也将是所有内置函数的源代码。

bash 定义了以下内置命令::、.、[、alias、bg、bind、break、builtin、case、cd、command、compgen、complete、continue、declare、dirs、disown、echo、enable、eval、exec、exit、export、fc、fg、getopts、hash、help、history、if、jobs、kill、let、local、logout、popd、printf、pushd、pwd、read、readonly、return、set、shift、shopt、source、suspend、test、times、trap、type、typeset、ulimit、umask、unalias、unset、until、wait、while。


这些程序是用什么语言编写的?

C或者C++

因此,我想修改现有的程序并编写新的程序

最好使用现有工具并对其进行添加:创建一个名为的脚本ls2,然后向该脚本添加功能以模仿ls+ 您的添加。您的添加可以是作为触发函数的参数的额外字母。最大的优势:您可以用您喜欢的语言编写它。更安全,因为您不会弄乱正常命令,如果您打算为这些工具编写新功能,您应该加入它们各自的邮件列表。

相关内容