linux是开源的,其自带的命令也是开源的,因此我们可以获得这些命令的源代码进行研究。
命令的源代码是以一个软件包为单元的,放在一个软件包的源代码中,若要下载一个命令的源代码,就要把这个命令所属的软件包源代码都下载下来。命令的源代码通常在源代码码的src目录中,相应的主文件名为cmd.c,其中cmd为具体的命令。
以hexdump命令来说明如何获得命令的源代码:
1)使用which命令查看hexdump命令的具体位置,如下
which hexdump
输出:/usr/bin/hexdump
2)使用dpkg(Debian的包管理器)查询hexdump命令所属的包,如下
dpkg -S /usr/bin/hexdump
输出:bsdmainutils:/usr/bin/hexdump
3)使用apt-get命令来下载hexdump所在包的源码,如下
apt-get source bsdmainutils
输出:将bsdmainutils包下载到当前目录,hexdump的源码位于bsdmainutils-8.2.3ubuntu1/usr.bin/hexdump下