如何获取linux下命令源码

1、Ubuntu中系统命令源代码的获取方法

以32位Ubuntu14.04下,获取ls命令的源代码为例,可以使用如下的方法下载源代码:
1)使用which命令查看ls命令的位置,如下:
which ls # 输出:/bin/ls

2)使用dpkg命令查询ls命令所属的包,如下:
dpkg -S /bin/ls # 输出:coreutils: /bin/ls

3)使用apt-get命令来下载ls命令所在的包的源代码,如下:
apt-get source coreutils

注:
1)在使用dpkg时,若出现错误,可以使用sudo命令使其以root权限执行。
2)使用apt-get source下载的源代码保存到当前目录下。。此外,当我们知道了命令所属的包后,也可以到相应的官方网站下载。


作者:jiemingwei
链接:https://www.zhihu.com/question/21823731/answer/19640333
来源:知乎
著作权归作者所有,转载请联系作者获得授权。

通常命令所在的包里面都有源代码。
那么定位命令所在的包,搜索包的名字下载就行了。

如果是Ubuntu/Debian,用dpkg命令找对应的包:
$ dpkg -S $(which sort)
coreutils: /usr/bin/sort
$ dpkg -S $(which egrep)
grep: /bin/egrep

大部分常用命令都包含在GNU的Coreutils中,Debian/Ubuntu中这些命令用的就是Coreutils的。
en.wikipedia.org/wiki/G
Coreutils的代码:
gnu.org/software/coreut

OpenBSD中的命令代码可读性更好一些:
openbsd.org/cgi-bin/cvs
命令在bin/, sbin/, usr.bin/, usr.sbin/这几个目录里

Unix早期版本里的命令代码也值得一看:
minnie.tuhs.org/cgi-bin
这里是v7的命令代码:
minnie.tuhs.org/cgi-bin

书籍的话可以看看
Software Tools, Brian W. Kernighan and P. J. Plauger
Software Tools in Pascal, Brian W. Kernighan and P. J. Plauger
Understanding UNIX/LINUX Programming: A Guide to Theory and Practice, Bruce Molay

Software Tools讲了sort, uniq, comm, grep, vi等一些命令的实现。
Software Tools in Pascal内容和前一本相同,只是用Pascal语言实现的,前一本用的是Ratfar语言。
关于Software Tools可以看看徐宥同学的书评: 编程珠玑番外篇-5.比代码大全好的两本书A « 4G spaces


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值