我如何读取shell命令的源代码?

问题描述 投票:137回答:7

我想读其中的Linux命令写入与实际的源代码。我已经使用它们积累了一些经验,现在我觉得是时候在更深的层次与我的机器进行交互。

我在这里http://directory.fsf.org/wiki/GNU发现了一些命令。遗憾的是我没能找到诸如“LS”,这在我看来很容易的开始基本命令。

究竟如何阅读,如“ls”的简单shell命令的源代码?我在Ubuntu 12.04上运行

linux command gnu-coreutils
7个回答
158
投票

所有这些基本的命令是coreutils包的一部分。

你可以找到你所需要的所有信息:

http://www.gnu.org/software/coreutils/

如果您想要下载最新的源代码,您应该使用git:

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

为了你的Ubuntu计算机上安装的git,您应该使用apt-get(Git是不包括在标准的Ubuntu安装):

sudo apt-get install git

真相被告知,在这里你可以找到的ls命令具体来源:

http://git.savannah.gnu.org/cgit/coreutils.git/tree/src/ls.c

只有4984行代码的命令“很容易,”作为ls ......你还有兴趣阅读它?祝好运! :d


115
投票

直接链接到源在coreutils一些受欢迎的节目:

Full list here.


6
投票

ls是的coreutils的一部分。你可以用git得到它:

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

你会发现与其他包(滚动到底)上this page上市的coreutils。


5
投票

实际上http://suckless.org提供更健全的来源看他们sbase库:

git clone git://git.suckless.org/sbase

他们是更清晰,更智能,更简单,suckless,如ls.c刚刚369 LOC

之后,它会更容易理解更复杂的GNU代码。


1
投票

在其他帖子提到的coreutils没有显示真正落实其中大部分我认为你所寻求的功能。在大多数情况下,它提供了用于检索数据,这可以在这里找到实际的功能前端:

这是一个在Gnulib实际的源代码在lib-subdirectory建设


1
投票

您可以使用下面的命令有它在github

git clone https://github.com/coreutils/coreutils.git

你可以在src文件夹中的所有源代码。

你需要有git安装。

2012年以来时过境迁,ls源代码现在已经5309线


-1
投票
    cd ~ && apt-get source coreutils && ls -d coreutils*     

您应该能够使用这样的命令在Ubuntu收集一个包的来源,则可以省略sudo假设你下载到你自己的位置。

© www.soinside.com 2019 - 2024. All rights reserved.