我想读其中的Linux命令写入与实际的源代码。 我已经使用它们积累了一些经验,现在我觉得是时候在更深的层次与我的机器进行交互。
我在这里找到了一些命令http://directory.fsf.org/wiki/GNU 。 遗憾的是我没能找到诸如“LS”,这在我看来很容易的开始基本命令。
究竟如何阅读,如“ls”的简单shell命令的源代码? 我在Ubuntu 12.04上运行
我想读其中的Linux命令写入与实际的源代码。 我已经使用它们积累了一些经验,现在我觉得是时候在更深的层次与我的机器进行交互。
我在这里找到了一些命令http://directory.fsf.org/wiki/GNU 。 遗憾的是我没能找到诸如“LS”,这在我看来很容易的开始基本命令。
究竟如何阅读,如“ls”的简单shell命令的源代码? 我在Ubuntu 12.04上运行
所有这些基本的命令是一部分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
直接链接到源在一些热门项目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://suckless.org看看他们sbase
库:
git clone git://git.suckless.org/sbase
他们是更清晰,更智能,更简单,suckless,如ls.c
刚刚369 LOC
之后,它会更容易理解更复杂的GNU代码。
在其他帖子提到的coreutils没有显示真正落实其中大部分我认为你所寻求的功能。 在大多数情况下,它提供了用于检索数据,这可以在这里找到实际的功能前端:
这是在建立Gnulib用在实际的源代码LIB-子目录
您可以使用下面的命令有它在github
git clone https://github.com/coreutils/coreutils.git
你可以在src文件夹中的所有源代码。
你需要有git的安装。
2012年以来时过境迁, ls
的源代码现在已经5309线
cd ~ && apt-get source coreutils && ls -d coreutils*
您应该能够使用这样的命令在Ubuntu收集一个包的来源,则可以省略sudo
假设你下载到你自己的位置。