2012-07-17 102 views
115

我想读取linux命令写入的实际代码。我已经获得了一些使用它们的经验,现在我认为是时候在更深层次上与我的机器进行交互了。我在这里找到了一些命令http://directory.fsf.org/wiki/GNU哪里可以找到Linux核心命令的源代码?

不幸的是,我无法找到基本的命令,比如'ls',这在我看来很容易开始。

你碰巧知道一些网页,书或任何其他的东西开始?

我在Ubuntu 12.04

+1

可能重复shell命令](http://stackoverflow.com/questions/8417373/source-code-of-shell-commands) – Kevin 2012-07-18 02:32:50

+0

嗨,我也找到一个实用程序,它是util-linux。你可以在这里找到它(https://github.com/karelzak/util-linux) – acgtyrant 2014-12-16 09:10:22

+0

'ls'不是Linux的一部分,它是Gnu的一部分。 Gnu运行在Linux和其他内核上。 – 2017-08-31 17:19:10

回答

129

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

你可以找到所有您需要的信息在这里:

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

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

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

在其上安装的git你Ubuntu机器,你应该使用apt-get(git不包含在标准的Ubuntu安装中):

sudo apt-get install git

真相被告知,在这里你可以找到的ls命令特定源:对命令“很容易,”作为ls

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

只有4984行代码?你是否还在有兴趣阅读它?祝你好运! :d

+2

OMG!我认为这有点容易...呃路径比预期的更长更难:-) – 2012-07-17 23:26:36

+13

尝试[猫的来源](http://git.savannah.gnu.org/cgit/coreutils.git /tree/src/cat.c)。它只有767行。 – 2014-09-23 23:08:36

+2

'只有4984条代码行...' - 看起来在4年零3个月里'ls'已经成为另外57条更复杂的行。 – sherrellbc 2016-10-14 13:43:54

6

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

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

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

+0

或在线浏览回购...例如。 http://git.savannah.gnu.org/cgit/coreutils.git/tree/src/ls.c – Useless 2012-07-17 18:06:58

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

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

86

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

Full list here.

+0

感谢列表中的行数。 :) – 2016-08-23 05:52:11

+0

你有'su'吗? – Arin 2018-02-09 00:15:24

3

实际上,通过http://suckless.org看到他们的sbase库:

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

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

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

1

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

它在Gnulib与实际源代码建立在[来源的代码lib-subdirectory

相关问题