我在哪里可以findLinux核心命令的源代码?

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

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

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

我在Ubuntu 12.04上运行

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

你可以在这里find你需要的所有信息:

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

说实话,在这里你可以findls命令的具体来源:

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

只有4984代码行的命令“简单”作为ls …你仍然有兴趣阅读它? 祝你好运! :d

直接链接到coreutils一些受欢迎程序的源代码:

  • cat (767行)
  • chmod (570行)
  • cp (2912行)
  • cut (831行)
  • date (570行)
  • df (1718行)
  • du (1112线)
  • echo (272行)
  • head (1070行)
  • hostname (116行)
  • kill (312行)
  • ln (651行)
  • ls (4954行)
  • md5sum (878行)
  • mkdir (306行)
  • mv (512行)
  • nice (220行)
  • pwd (394行)
  • rm (356行)
  • rmdir (252行)
  • shred (1325线)
  • tail (2301行)
  • tee (220线)
  • touch (437行)
  • wc (801行)
  • whoami (91行)

全部列表在这里。

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

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

你会发现coreutils与其他包列表(滚动到底部)在这个页面上 。

实际上, http : sbase提供了更多sbase资源,请看他们的sbase仓库:

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

他们更清晰,更聪明,更简单和吮吸,例如ls.c只有369 LOC

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

参观例如:

http://ftp.gnu.org/pub/gnu/coreutils/

您可以在线浏览代码。 打开其中一个档案并检查src文件夹。

在其他文章中提到的CoreUtils并不显示我认为你所寻求的大部分function的真正实现。 在大多数情况下,它提供了检索数据的实际function的前端,可以在这里find:

它是build立在Gnulib的lib-subdirectory中的实际源代码之上的

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

你应该可以在Ubuntu上使用这样的命令来收集一个包的源代码,你可以忽略sudo假设你下载到你自己的位置。