我在哪里可以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代码。
在其他文章中提到的CoreUtils并不显示我认为你所寻求的大部分function的真正实现。 在大多数情况下,它提供了检索数据的实际function的前端,可以在这里find:
它是build立在Gnulib的lib-subdirectory中的实际源代码之上的
cd ~ && apt-get source coreutils && ls -d coreutils*
你应该可以在Ubuntu上使用这样的命令来收集一个包的源代码,你可以忽略sudo
假设你下载到你自己的位置。