在平常的作业中

源代码在线查看: linux命令源码的查看.txt

软件大小: 3 K
上传用户: machao844655
关键词:
下载地址: 免注册下载 普通下载 VIP

相关代码

				# linux命令源码的查看
				# 来源: ChinaUnix博客  作者: 发布时间:2007-01-02 04:23:00
				#
				
				      域名注册
				    * 域名惊喜价格 cn域名1元注册
				    * com域名39.9元
				
				      虚拟主机
				    * 主机按月支付,低至19元/月
				    * 超大流量,可开子站点
				
				      VPS主机
				    * 特惠VPS168元/月,4-8M独享带宽保证
				    * 独立操作系统,无限开站点
				
				
				                    在平常的作业中,有时候老师让自己实现诸如cat等类的程式,有时候叫用shell实现,有时候用c实现,不过我经常一点头绪都没有,不过我想到 linux开源的,命令代码能拿来参考下阿,所以我就想看看linux命令的原始码,于是就开始了摆渡狗狗的搜索过程。从结果来看,有两种情况,一种是给予rpm的包的形式;另一种是基于deb包的形式。具体我也不知道该怎么描述,总之就是一种redhat的源码查看,一种是debian的源码查看。我是用的ubuntu,基于debian的,所以先前按照rpm的方式怎么也不奏效。
				下面我就总结了下:大概就是源码都存放在相应的包里面。
				    新利得里我搜了下coreutils,显示已安装,不过这里安装的应该是软件,也就是命令的执行文件吧应该。不过我没有找到他是否安装了src,也就是原始码。
				PS:
				     Coreutils软件包含有用于展示和设置基本系统特性的工具。
				具体过程一(Linux rwind-ubuntu 2.6.22-14-generic):
				1.首先找到你想查看的命令属于哪个包
				               
				               
				                rwind@rwind-ubuntu:~$ dpkg -S `which ls`
				coreutils: /bin/ls
				coreutils就是源码所在的包,下面就是要下载了。
				同样:
				rwind@rwind-ubuntu:~/source$ dpkg -S `which which`
				debianutils: /usr/bin/which
				debianutils就是which所在的包。
				我第一次犯的错误:把``用成‘’了,这两种不相同阿,前一个是数字键1左边的引号,作用是在shell重组命令行时把``里面的内容当作命令来执行并替换为结果。
				2.下载相应的源码包
				rwind@rwind-ubuntu:~/source$ apt-get -d source "debianutils"正在读取软件包列表... 完成正在分析软件包的依赖关系树       读取状态信息... 完成             需要下载 134kB 的原始码包。获取:1 http://ubuntu.cn99.com feisty/main debianutils 2.17.4build1 (dsc) [479B]获取:2 http://ubuntu.cn99.com feisty/main debianutils 2.17.4build1 (tar) [133kB]下载 134kB,耗时 1s (90.7kB/s)     下载完毕,目前是“仅下载”模式
				d选项是仅仅下载的选项。下载到你目前的工作目录当中。
				3.把你下载的包解压缩,自己去里面找吧,文件挺多的,都什么作用我不清晰,留待以后慢慢研究慢慢发现。
				另外:在网上还发现一些资料,但我都没验证,
				原文如下:
				apt-get install apt-file
				apt-file update
				apt-file search /bin/ls
				这样能知道ls是coreutils提供的
				然后apt-get source coreutils就得到源码了
				当然对于ls,还能用dpkg -S /usr/ls 来查询他属于哪一个包,不过dpkg -S只对已安装的包有效
				二:这是我在网上搜的rpm包格式的。
				以find命令为例:
				  
				第一步,确定命令属于哪个rpm包:
				#rpm   -qf   /usr/bin/find
				findutils-4.1-34
				  
				第二步,查找findutils的源码包findutils-4.1-34.src.rpm,这个一般在发行版的网站上能找到
				  
				第三步,安装源码包:
				rpm   -ivh   findutils-4.1-34.src.rpm
				安装好之后能到/usr/src/RedHat/SOURCE下找到相关的源码包
				大概就是这样了,以后发现有不足的地方还会补充,如果你有什么建议或发现错误,希望能指点指点。谢谢。			

相关资源