如果想进一步了解 linux系统,熟悉一些系统底层的东西还是非常必要的,我们可以先了解一些linux命令是如何实现相关功能的,那么如何获得命令的源代码呢?下面我们详细介绍一下。

  下面以获取cat命令的源代码为例说明:

  rpm -qif `which cat` 将显示如下信息:

  --------------------------------------------------------------------------

  Name : coreutils Relocations: (not relocatable)

  Version : 5.2.1 Vendor: Red Hat, Inc.

  Release : 31.8.el4_7.1 Build Date: 2008年10月23日 星期四 21时04分08秒

  Install Date: 2009年04月07日 星期二 10时17分33秒 Build Host: ls20-bc2-14.build.redhat.com

  Group : 系统环境/基础 Source RPM: coreutils-5.2.1-31.8.el4_7.1.src.rpm

  Size : 7314345 License: GPL

  Signature : DSA/SHA1, 2008年10月27日 星期一 22时56分59秒, Key ID 219180cddb42a60e

  Packager : Red Hat, Inc.

  URL : ftp://alpha.gnu.org/gnu/coreutils/

  Summary : GNU 核心工具:一组在 shell 脚本中常用的工具。

  Description :

  这些是 GNU 的核心工具。该软件包是老的 GNUfileutils、sh-utils、

  和 textutils 软件包的组合。

  --------------------------------------------------------------------------

  通过上面的信息,我们可以知道cat命令是来源于coreutils-5.2.1-31.8.el4_7.1.src.rpm源码包,我们可以到上面信息提到的 ftp://alpha.gnu.org/gnu/coreutils/上去下载tarball,也可以到rpmfind.net网站上去搜索coreutils-5.2.1-31.8.el4_7.1.src.rpm下载此源码包。

  若是下载的tar.gz包,则tar zxvf tar.gz包即可;

  若是下载的src.rpm源码包,则:

  1、rpm2cpio coreutils-5.2.1-31.8.el4_7.1.src.rpm| cpio -idv

  2、此时会在当前目录下产生coreutils-5.2.1.tar.bz2文件

  3、bzip2 -d coreutils-5.2.1.tar.bz2 解压,会产生coreutils-5.2.1.tar 文件

  4、tar xvf coreutils-5.2.1.tar 此时在当前目录下将产生coreutils-5.2.1目录,源码便在其中。

  进入coreutils-5.2.1目录,下面的src文件夹便是存放cat命令源代码的地方,当然了除了cat,linux的很多基础的外置命令的源代码都存放其中,像cp,chown,chmod,df,ls,rm,dd等等

  对了,顺便说一下,coreutils-5.2.1目录下的configure脚本有5w多行哦,里面体现了很多shell的编程技巧,很值得喜欢shell并且想进一步深入学习shell编程的朋友去拜读一下哦。

linux如何实现相关功能源代码相关推荐

  1. 用友nc65 uap开发找产品功能源代码

    用友nc65  uap开发找产品功能源代码 1.目标:在我们开发中,很多时候我们看到产品有的功能二开的时候需要使用相关功能,这个时候怎么去参考产品相关功能源代码呢?如我们需要收款结算录入节点的联查凭证 ...

  2. linux htb 源代码,LINUX TC:HTB相关源码

    LINUX TC:HTB相关源码 收藏 HTB(hierarchy token buffer)是linux tc(traffic control)模块中的排队队列的一种.它的配置比CBQ要简单.同时实 ...

  3. Ftp服务器上的文件剪切功能,linux 用来设置文件系统相关功能(文件传输) 命令:ftp...

    ftp命令用来设置文件系统相关功能.ftp服务器在网上较为常见,Linux ftp命令的功能是用命令的方式来控制在本地机和远程机之间传送文件,这里详细介绍Linux ftp命令的一些经常使用的命令,相 ...

  4. putty上传文件到linux_基于windows安装部署putty小工具及相关功能介绍

    概述 PuTTY是一个Telnet.SSH.rlogin.纯TCP以及串行接口连接软件.较早的版本仅支持Windows平台,在最近的版本中开始支持各类Unix平台,并打算移植至Mac OS X上.除了 ...

  5. Linux 如何安装程序的源代码软件包/源码程序包/源码包?

    文章目录 一.安装源码包的三个步骤 (一)执行命令 configure,进行配置/检测 (二)执行命令 make,编译源码 (三)执行命令 make install,安装软件 二.源码包安装示例 (一 ...

  6. linux命令——帮助相关命令

    linux命令--帮助相关命令 文章目录 linux命令--帮助相关命令 1.man命令 命令概述: 使用语法: 参数用法: 参考示例: man命令帮助信息的结构以及意义 man命令中常用按键以及用途 ...

  7. 【文献心得】Linux 实时化相关

    文章目录 [1]石伟民. 基于ARM9的嵌入式实时linux系统平台构建[D].中北大学,2010. [1]刘涛. 一种嵌入式实时Linux的设计与实现[D].电子科技大学,2007. [1]朱春飞. ...

  8. Linux之用户组相关操作 groupadd groupdel

    Linux之用户组相关操作  groupadd  groupdel 1. 创建用户组 命令 说明 groupadd 创建(添加)用户组 创建用户组效果图: [grep是搜索功能,详情博文:https: ...

  9. linux 内核抓包功能实现基础(一)设计思路

    linux平台下面已经有了抓包工具tcpdump, 非常经典,使用起来也非常方便.但是因为某些系统架构上或者其它方面的原因,有时候tcpdump并不能满足产品实际需要,公司的产品是电信运营商相关的软硬 ...

最新文章

  1. 使用RxJava实现ImageView的拖动、旋转和缩放
  2. c、c++---linux上的GetTickCount函数
  3. linux 故障注入_libfiu
  4. jquery官网打不开难以下载,不妨试试webjars
  5. 使用IntelliJ IDEA导入 Flink 消费kafka报错 Error: A JNI error has occurred, please check your installation an
  6. 基于主动学习和克里金插值的空气质量推测
  7. 信息学奥赛C++语言:成绩等级
  8. RMAN 系列(四) ---- RMAN 备份
  9. 配置nginx负载均衡
  10. 希望是一个全新的开始
  11. 【细胞分割】基于matlab GUI分水岭算法细胞分割计数【含Matlab源码 637期】
  12. linux 分区100g整数,160GB硬盘双系统整数分区推荐方案
  13. MATHEMATICS FOR MACHINE LEARNING部分翻译
  14. 取消一个项目git版本控制
  15. 文档管理系统解决方案
  16. 腾讯组织了一个联盟,但无法阻止字节跳动拿走一半游戏广告
  17. Unity2019版本打包一直停留在 detecting current sdk tools version的解决方案
  18. 基于JavaScript实现的网页版贪吃蛇
  19. 3.3 伴随矩阵法求逆矩阵
  20. CASCAN拍照式三维扫描仪精密测量叶轮和逆向设计综合技术解决方案

热门文章

  1. 要想工作效率高,我们到底需要多少睡眠?
  2. Android实现简单的检测手机自由落体关闭屏幕
  3. Test传送门(更新中)
  4. 从零搭建自己的SpringBoot后台框架(七)
  5. 【机器学习实战】第2章 k-近邻算法(kNN)
  6. CSS3手机端侧滑菜单 4种滑动菜单特效
  7. iOS开发必备指南合集之游戏接入GameCenter 指南
  8. 浅析C#合并多个WORD文档的具体实现方法
  9. 用正则表达式捕获标识符——随便说
  10. vuepc端实现数据加载_多模态注意力机制+多模态数据,完全实现端到端课堂活动检测|ICASSP 2020...