如何查看linux命令源代码
2017-02-08 20:35
381 查看
用Linux一段时间了,有时候想看看ls、cat、more等命令的源代码,在下载的内核源码中用cscope没能找到,在网上搜索了一下,将方 法总结如下:
以搜索ls命令源码为例,先搜索命令所在包,命令如下:
[Java] view
plain copy
lpj@lpj-linux:~$ which ls
/bin/ls
用命令搜索该软件所在包,代码如下:
[Java] view
plain copy
lpj@lpj-linux:~$ dpkg -S /bin/ls
coreutils: /bin/ls
从上一步中可以知道ls命令的实现在包coreutils中,用apt安装(说安装有些歧义,主要是区分apt-get -d)该包的源代码然后解压,代码如下:
[Java] view
plain copy
sudo apt-get source coreutils
cd /usr/src/coreutils-XXX #XXX表示版本号
sudo tar zxvf coreutils-XXX.tar.gz
或者只下载源码,然后手动打补丁再解压,代码如下:
[Java] view
plain copy
sudo apt-get -d source coreutils
cd /usr/src
tar zxvf coreutils-XXX.tar.gz
gzip -d coreutils-XXX.diff.gz #这一步会生成coreutils-XXX.diff文件
patch -p0 < coreutils-XXX.diff
cd coreutils-XXX
tar zxvf coreutils-XXX.tar.gz
OK,这几步执行完后,就可以进入/usr/src/coreutils-XXX/coreutils-XXX/src中查看各命令对应的源代码了
另外:一些常用的命令,例如
basename cat chgrp chmod chown chroot cksum comm
cp csplit cut date dd df dirname du
echo
env expand expr factor false fmt fold groups head hostid hostname id
install join kill link ln
logname ls md5sum mkdir mkfifo mknod mv
nice nl nohup od paste pathchk pinky pr printenv
pwd readlink rm rmdir seq
sha1sum sleep sort split stty su sum sync tac tail tee test touch
tr true tsort tty uname unexpand uniq unlink uptime users
wc who whoami yes
都包含在 coreutils 软件包中,coreutils 软件包的源码可以在
http://ftp.gnu.org/gnu/coreutils/
下载到。
另外,还有一部分命令是 bash 内置的,例如 cd 等,可以在 bash 的源码中找到。
http://ftp.gnu.org/gnu/bash/
以搜索ls命令源码为例,先搜索命令所在包,命令如下:
[Java] view
plain copy
lpj@lpj-linux:~$ which ls
/bin/ls
用命令搜索该软件所在包,代码如下:
[Java] view
plain copy
lpj@lpj-linux:~$ dpkg -S /bin/ls
coreutils: /bin/ls
从上一步中可以知道ls命令的实现在包coreutils中,用apt安装(说安装有些歧义,主要是区分apt-get -d)该包的源代码然后解压,代码如下:
[Java] view
plain copy
sudo apt-get source coreutils
cd /usr/src/coreutils-XXX #XXX表示版本号
sudo tar zxvf coreutils-XXX.tar.gz
或者只下载源码,然后手动打补丁再解压,代码如下:
[Java] view
plain copy
sudo apt-get -d source coreutils
cd /usr/src
tar zxvf coreutils-XXX.tar.gz
gzip -d coreutils-XXX.diff.gz #这一步会生成coreutils-XXX.diff文件
patch -p0 < coreutils-XXX.diff
cd coreutils-XXX
tar zxvf coreutils-XXX.tar.gz
OK,这几步执行完后,就可以进入/usr/src/coreutils-XXX/coreutils-XXX/src中查看各命令对应的源代码了
另外:一些常用的命令,例如
basename cat chgrp chmod chown chroot cksum comm
cp csplit cut date dd df dirname du
echo
env expand expr factor false fmt fold groups head hostid hostname id
install join kill link ln
logname ls md5sum mkdir mkfifo mknod mv
nice nl nohup od paste pathchk pinky pr printenv
pwd readlink rm rmdir seq
sha1sum sleep sort split stty su sum sync tac tail tee test touch
tr true tsort tty uname unexpand uniq unlink uptime users
wc who whoami yes
都包含在 coreutils 软件包中,coreutils 软件包的源码可以在
http://ftp.gnu.org/gnu/coreutils/
下载到。
另外,还有一部分命令是 bash 内置的,例如 cd 等,可以在 bash 的源码中找到。
http://ftp.gnu.org/gnu/bash/
相关文章推荐
- 如何查看linux命令源代码(转自网络)
- 如何查看linux命令源代码
- 如何查看IHTMLWindow2等调用不成功后返回的错误信息
- 如何用VC++60编写查看二进制文件程序
- 如何查看高手的BLOG网站的CSS代码
- 如何提取PSD文件缩略图查看功能
- 博客技巧----如何查看BLOG网站的CSS代码
- 如何在查看PDF文档时使用金山词霸自动取词查询功能
- 如何在网页中设置禁止查看源文件!
- [小技巧]:我如何查看我的可用分
- 如何在对象浏览器中查看自定义注释内容
- 如何创建一个用弹出窗口来查看详细信息的超链接列
- CP How-To:如何使用cPanel查看站点统计数据(awstats)
- [小知识]如何查看IIS6应用程序池所对应的进程ID
- 如何启用AutoTrace 查看SQL执行计划
- CP How-To:如何使用cPanel查看站点原始访问记录(Raw Access Logs)
- 基础知识-如何查看MAC地址
- 如何查看table的栏位信息
- 如何创建一个用弹出窗口来查看详细信息的超链接列
- 如何查看应用程序与MQ 队列管理器连接