linux下命令源码

一般来说,不同的命令可能隶属于不同的软件包,这样就没有一个地方会有所有命令的源代码。(命令的个数也会与你所安装的软件包有关)但是,一些常用的命令,例如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 touchtr 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/

=======================================================================================================
lpj@lpj-linux:~$ which ls /bin/ls用命令搜索该软件所在包,代码如下:
lpj@lpj-linux:~$ dpkg -S /bin/ls coreutils: /bin/ls从上一步中可以知道ls命令的实现在包coreutils中,用apt安装(说安装有些歧义,主要是区分apt-get -d)该包的源代码然后解压,代码如下:
sudo apt-get source coreutils cd /usr/src/coreutils-XXX #XXX表示版本号 sudo tar zxvf coreutils-XXX.tar.gz 或者只下载源码,然后手动打补丁再解压,代码如下:
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.gzOK,这几步执行完后,就可以进入/usr/src/coreutils-XXX/coreutils-XXX/src中查看各命令对应的源代码了

===========================================================================================================
在 shadow-utils  这个软件包里面, 

http://ftp.devil-linux.org/pub/devel/sources/1.2/shadow-4.0.17.tar.bz2 

解压后有个 src目录 ,下面即有 useradd的源代码  , 不过要编译成功必须保证 shadow目录的完整性, 里面包含了头文件和makefile ,如果只是参考的话 , 那么就无关紧要了

 
时间: 2024-10-25 18:04:10

linux下命令源码的相关文章

Linux下MySQL源码编译安装(eg:mysql-5.6.27.tar.gz )

Linux下MySQL源码安装(eg:mysql-5.6.27.tar.gz ): 1:准备MySQL源码安装包: mysql-5.6.27.tar.gz.cmake-3.3.2.tar.gz.ncurses-6.0.tar.gz 注:centos请安装: yum install -y ncurses-devel yum install -y perl-Module-Install.noarch 网址: https://cmake.org/download/ ftp://invisible-is

Linux下mysql源码安装笔记_Mysql

1.假设已经有mysql-5.5.10.tar.gz以及cmake-2.8.4.tar.gz两个源文件 (1)先安装cmake(mysql5.5以后是通过cmake来编译的) [root@ rhel5 local]#tar -zxv -f cmake-2.8.4.tar.gz [root@ rhel5 local]#cd cmake-2.8.4 [root@ rhel5 cmake-2.8.4]#./configure [root@ rhel5 cmake-2.8.4]#make [root@

Linux 下MySQL源码安装完整版

    在Linux中安装MySQL,通常为RPM与源码方式安装.对于生产环境而言,由于需要自定义诸如安装路径.数据文件位置.字符集以及支持的存储引擎等多以源码方式来进行安装.之前有写过一篇关于源码安装的文章,Linux下基于源码方式安装MySQL 5.6,但不是很完整,因此该文可以作为其补充.以下为具体安装步骤,供大家参考.   1.安装前的有关描述必备的包和工具  gcc/g++ :MySQL 5.6开始,需要使用g++进行编译.  cmake  :MySQL 5.5开始,使用cmake进行

Linux下基于源码方式安装MySQL 5.6

    MySQL为开源数据库,因此可以基于源码实现安装.基于源码安装有更多的灵活性.也就是说我们可以针对自己的硬件平台选用合适的编译器来优化编译后的二进制代码,根据不同的软件平台环境调整相关的编译参数,选择自身需要选择不同的安装组件,设定需要的字符集等等一些可以根据特定应用场景所作的各种调整.本文描述了如何在源码方式下安装MySQL.   1.安装环境及介质#安装环境SZDB:~ # cat /etc/issueWelcome to SUSE Linux Enterprise Server 1

linux下MySQL源码包的安装

实验环境 VMware 6.5.2 +redhatEnterprise 5 AS 实验目的 初步涉及源码包的安装,以简单实现其功能为目的,不对原理进行深层讨论 内核版本: 今天尝试安装MySQL的源码包 mysql-4.0.27.tar.gz 下载源码包 copy 到linux [root@localhost ~]# cd /tmp [root@localhost tmp]# ls gconfd-laowu scim-helper-manager-socket-root gconfd-root

Linux下MeeGo源码下载 — repo+git

     MeeGo的源码是通过git工具来管理的,我们可以通过源码的git地址进行下载,但是http://meego.gitorious.org/此网址上面提供的都是模块的git地址,如果一个模块一个模块下载的话,那岂不累死,呵呵~所以通过安装repo工具,用repo工具进行全部下载.1.git安装 sudo apt-get install git-core curl  2.repo安装   首先在用户主目录下面创建一个文件夹bin,然后把该路径加入到环境path里面,具体方法如下:    

linux 下LAMP源码的安装部署

一.软件包 下载apache: http://labs.renren.com/apache-mirror//httpd/ 下载php:http://www.php.net/downloads.php 下载mysql: http://www.mysql.com/downloads/mysql/ 二.安装apache 1).tar zxvf httpd-2.0.64.tar.gz cd httpd-2.0.64 2). ./configure --prefix=/usr/local/apache2

Linux下git源码安装【转】

转自:http://blog.csdn.net/u012889638/article/details/51167123 版权声明:本文为博主原创文章,未经博主允许不得转载. 版本信息:CentOS release 5.5 (Final)                     Git version 2.8.0.git 1.下载 git 最新版本的源代码 wget http://www.codemonkey.org.uk/projects/git-snapshots/git/git-latest

Linux下查看并下载命令源码包(根据命令/应用程序逆向获取并且安装其所属源码包)

使用linux的过程中,我们会熟悉各种命令,偶尔我们不禁会问,这些命令是怎么实现的,学习他们其实是学习linux高级系统编程很快捷的方法. 这些命令的源码肯定是存放在相应的包里面,但是是哪些包呢? 发行版的包管理器为我们提供了很方便的命令接口,供我们查找我们指定命令所在的包 比如我们以最普通的uname命令来说明, 使用我们使用whereis或者which命令可以查找命令的绝对位置 通过rpm或者dpkg命令搜索命令所属的包信息 下载并安装对应的源码source包,即可得到源码 CentOS等r