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

cunj1qz1  于 2023-08-03  发布在  Linux
关注(0)|答案(8)|浏览(133)

我想阅读实际的源代码,其中linux命令是写的。我已经获得了一些使用它们的经验,现在我认为是时候与我的机器进行更深层次的交互了。
我在这里找到了一些命令http://directory.fsf.org/wiki/GNU。不幸的是,我找不到基本的命令,比如'ls',这在我看来很容易开始。
我到底如何读取简单shell命令的源代码,比如'ls'?Ubuntu 12.04

dhxwm5r4

dhxwm5r41#

所有这些基本命令都是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个

kq0g1dla

kq0g1dla2#

直接链接到coreutils中一些流行程序的源代码:

Full list here.

7nbnzgx9

7nbnzgx93#

实际上,http://suckless.org提供了更多合理的源代码,请查看他们的sbase存储库:
git clone git://git.suckless.org/sbase
它们更清晰,更智能,更简单,更简单,例如ls.c只有369 LOC -
http://git.suckless.org/sbase/file/ls.c.html
在那之后,理解更复杂的GNU代码会更容易。

bn31dyow

bn31dyow4#

ls是coreutils的一部分。你可以使用git:

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

字符串
您会发现coreutils与this page上的其他软件包(滚动到底部)一起列出。

wmvff8tz

wmvff8tz5#

在其他帖子中提到的CoreUtils并没有显示出我认为你所寻求的大多数功能的真实的实现。在大多数情况下,它为检索数据的实际函数提供前端,可以在这里找到:
它构建在Gnulib之上,实际源代码位于lib-subdirectory中。

iyzzxitl

iyzzxitl6#

你可以在github上使用命令

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

字符串
您可以在src文件夹中找到所有源代码。
您需要安装git
自2012年以来,情况发生了变化,ls源代码现在有5309行

relj7zay

relj7zay7#

BSD发行版实际上是一种阅读源代码的好方法,通过使用它们的存储库,因为它都打包在一个地方,你可以查看源代码的历史演变或变化。那么为什么不使用BSD仓库,比如NetBSDOpenBSD来完成这个任务呢?

00jrzges

00jrzges8#

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

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

相关问题