Linux系统,常用命令的来源很多,有些命令是shell自带的,比如cd,通过执行help命令,可以查看当前系统所有的内置命令。
用type <cmd_name>来查看一个命令是否为内置命令。
用 help <cmd_name>来查看内置命令的帮助文件。
有些命令是GNU套装里面带有的,比如grep。
一般来说,命令所在的包里面有对于的源代码,下面给出几种找源代码的方法:
1. 定位命令包配合apt来搜索
如果是Ubunut/Debian系统,以ls命令为例子,
大部分常用命令都包含在GNU的Coreutils里面。可以在 http://www.gnu.org/software/coreutils/ 这个网站下到Coreutils的代码,也可以通过 apt-get source package-name 来直接从源中下载到源码包:以coreutils为例子。
OpenBSD中的命令代码可读性更好一些:
http://www.openbsd.org/cgi-bin/cvsweb/src/
命令在bin/, sbin/, usr.bin/, usr.sbin/这几个目录里
2. BusyBox精简版命令
BusyBox官方网站上面,也有常用程序的源代码,官网地址为:http://www.busybox.net/ 常用终端程序源码放在coreutils文件夹下。
3. 通过man帮助来查看指定命令
如果想要查看指定命令的源码,可以在终端下执行 man <cmd_name> ,打开后直接按Shift+G,跳到尾部,在REPORTING BUGS一节中,会找到对于命令的维护人员和代码下载网站链接。
相关参考链接: 如何在Linux终端中获取命令帮助