哪兒有linux命令的源代碼下載?

比如more, less, pwd, grep.....等等, 這些命令不是RedHat或者Ubuntu專有的, 應該有源代碼吧? 另, 類似github這些網站很難找到官方正式的源代碼。


通常命令所在的包裡面都有源代碼。

那麼定位命令所在的包,搜索包的名字下載就行了。

如果是Ubuntu/Debian,用dpkg命令找對應的包:

$ dpkg -S $(which sort)

coreutils: /usr/bin/sort

$ dpkg -S $(which egrep)

grep: /bin/egrep

大部分常用命令都包含在GNU的Coreutils中,Debian/Ubuntu中這些命令用的就是Coreutils的。

http://en.wikipedia.org/wiki/GNU_Core_Utilities

Coreutils的代碼:

http://www.gnu.org/software/coreutils/

OpenBSD中的命令代碼可讀性更好一些:

http://www.openbsd.org/cgi-bin/cvsweb/src/

命令在bin/, sbin/, usr.bin/, usr.sbin/這幾個目錄里

Unix早期版本里的命令代碼也值得一看:

http://minnie.tuhs.org/cgi-bin/utree.pl

這裡是v7的命令代碼:

http://minnie.tuhs.org/cgi-bin/utree.pl?file=V7/usr/src/cmd

書籍的話可以看看

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


再補充一下 @竭銘偉 的答案

debian系用dpkg查到某個命令屬於哪個包(比如就叫package-name)之後可以用

apt-get source package-name

來直接從源里下載到源碼包。

另外rpm系也有對應的兩個命令

rpm -qf filename
yumdowloader --source


你用的是什麼發行版?如果是 Debian / Ubuntu,用 apt-get source &

通常可以直接抓去對應包的源碼。


很多啊,busybox裡面就有呢.


去看該命令的man page,裡面會寫負責維護的人和發布網站。


Linux的命令來源很多,慢慢搜索能找到的

有些命令比如cd是shell的,有些命令比如grep是GNU的,可以去GNU找


有包代碼叫coreutils,裡面應該有部分你要的東西


翻一下LFS吧,會告訴你基系統的全部軟體如何從上游拉取編譯


推薦閱讀:

送什麼禮物能夠從代碼手中搶到程序員的心?
27歲想轉python,是否值得?
如何在word中插入類似CSDN中代碼塊?

TAG:編程 | Linux | 代碼 | 源代碼 | Bash |