如何获取Linux中某个命令的源代码

一句话概括:用apt-get source package_name的方式获取源代码。

学习Linux下系统编程最好的参考例子就是Linux中已有的源代码(源码),比如想实现一个跟ls命令相同功能的程序可以参考ls的源码的内容。在这样的基础上,用户可以开发出自己的实用程序来代替系统中原有的程序,这听起来是一件蛮有趣的事情。PS:同样的,内核的源代码可以通过这种方式获得。

那究竟怎样获取源代码呢?其实这并不复杂,Linux是一个开源的操作系统,运行在Linux系统中的大部分应用程序都是开源的,这以GNU开发的程序尤为显著,其意思是你可以不花费一分钱或者花费极低的代价就能获取到这些程序的源代码。

国内常用的几种Linux系统无非就是RedHat、Debian和SuSe,另外分别对应着三个基本相似的免费版本,CentOS、Ubuntu(Debian免费)和OpenSUSE。

比较简单的方法就是通过Ubuntu这个操作系统中的apt-get命令直接下载某个软件包的源代码。

第一步,确定命令来自哪一个文件。

第二步,确定这个文件来自哪一个包。

CentOS中,

# which ls  
alias ls=‘ls --color=auto‘    
    /bin/ls    
# rpm -qf /bin/ls    
coreutils-8.4-37.el6.x86_64    
#

Ubuntu中,

$ which ls  
/bin/ls    
$ dpkg -S /bin/ls    
coreutils: /bin/ls    
$

第三步,通过apt-get source命令下载源码到当前目录。

$ sudo apt-get source coreutils

第四步,使用源码,源码一般存放在“软件名称-版本号”,目录下的src目录里面,如下图所示:

--end--

时间: 2024-10-11 03:45:06

如何获取Linux中某个命令的源代码的相关文章

小例子: 获取Linux内置命令的源代码(which + dpkg + apt-get source)

需求: 开发ssvm版本管理系统时,想起uname可以获得linux内核的版本信息,于是想下载uname命令的源代码参考看看 示例: $ which uname [查找uname命令的位置] /bin/uname $ dpkg -S /bin/uname [查找uname属于哪一个开发包中的代码] coreutils: /bin/uname $ apt-get source coreutils [下载相关的包的源source] [下载时,若发生如下问题,解决方法看下方] [sh: dpkg-so

12个 Linux 中 grep 命令的超级用法实例

12个 Linux 中 grep 命令的超级用法实例 你是否遇到过需要在文件中查找一个特定的字符串或者样式,但是不知道从哪儿开始?那么,就请grep来帮你吧. grep是每个Linux发行版都预装的一个强有力的文件模式搜索工具.无论何种原因,如果你的系统没有预装它的话,你可以很容易的通过系统的包管理器来安装它(Debian/Ubuntu系中的apt-get和RHEl/CentOS/Fedora系中的yum). $ sudo apt-get install grep #Debian/Ubuntu

linux中find命令详解

http://blog.csdn.net/pipisorry/article/details/39831419 问题: linux中find命令查找时不包含某些目录 find 命令忽略某个或多个子目录的方法 在linux中用find 进行查找的时候,有时候需要忽略某些目录不查找,可以使用 -prune 参数来进行过滤,要忽略的路径参数必须紧跟着搜索的路径之后,否则该参数无法起作用. eg: [email protected]:/tmp1#find ./ -type f    #/tmp1目录下所

linux中ls命令详解

s 命令可以说是linux下最常用的命令之一. -a 列出目录下的所有文件,包括以 . 开头的隐含文件.-b 把文件名中不可输出的字符用反斜杠加字符编号(就象在C语言里一样)的形式列出.-c 输出文件的 i 节点的修改时间,并以此排序.-d 将目录象文件一样显示,而不是显示其下的文件.-e 输出时间的全部信息,而不是输出简略信息.-f -U 对输出的文件不排序.-g 无用.-i 输出文件的 i 节点的索引信息.-k 以 k 字节的形式表示文件的大小.-l 列出文件的详细信息.-m 横向输出文件名

Linux中的命令 make -f 是什么意思

出处:http://cache.baiducontent.com/c?m=9f65cb4a8c8507ed4fece7631046893b4c4380146d96864968d4e414c42246091d21a8e07b770703a79b273b46e5540faab66d2369543de1cc8edb1183fa8f2d2d832735761892044f934fa0951d79866a875a98b86fe3ad863084afa2c4af5344bb55127bf0afd803570

linux中执行命令权限不够怎样处理

在linux中执行命令权限不够就要增加权限,先看遇到的情况 查看权限情况 那就赋予权限 执行命令

linux中查找命令find、locate、whereis、which、type区别

linux中查找命令find.locate.whereis.which.type区别 1. find Java代码 find是最常见和最强大的查找命令,你可以用它找到任何你想找的文件.与查询数据库(/var/lib/locatedb)文件不同,find查找磁盘空间 find的使用格式如下: $ find <指定目录> <指定条件> <指定动作> - <指定目录>: 所要搜索的目录及其所有子目录.默认为当前目录. - <指定条件>: 所要搜索的文件

Linux中常用命令 &lt;一&gt;

本笔记中记录的命令来源于 <Linux C 编程实战> ----------------------------------------------------------------------------- 1.查看当前目录命令 pwd 2.改变当前目录 cd 3.显示目录或文件信息命令 ls 格式: ls [选项] <目录或文件名> 主要选项如下: -a 显示所有的文件和目录 -l  以长格式显示文件信息 -t 将结果按修改时间进行排序,新的文件或目录在前面 -R 递归列出目

linux中nc命令带示例详解

Linux中nc命令是一个功能强大的网络工具,全称是netcat. 语法: nc [-hlnruz][-g<网关...>][-G<指向器数目>][-i<延迟秒数>][-o<输出文件>][-p<通信端口>][-s<来源位址>][-v...][-w<超时秒数>][主机名称][通信端口...] 参数说明: -g<网关> 设置路由器跃程通信网关,最丢哦可设置8个. -G<指向器数目> 设置来源路由指向器,其