linux下命令源码
2016-05-09 22:51
627 查看
一般来说,不同的命令可能隶属于不同的软件包,这样就没有一个地方会有所有命令的源代码。(命令的个数也会与你所安装的软件包有关) 但是,一些常用的命令,例如 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/ =======================================================================================================
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 ,如果只是参考的话 , 那么就无关紧要了
相关文章推荐
- 对于linux下system()函数的深度理解
- Centos上传下载小工具lrzsz
- linux线程资源回收
- 制作Linux启动盘并安装Linux系统到实体机
- CentOS6.8 upgrade gcc to gcc4.8
- CentOS7.0 PHP卸载以及安装
- Linux下查看文件和文件夹大小
- ArchLinux添加程序快捷方式
- linux基础之sed命令
- centos6.3 安装github
- 10大白帽黑客专用的 Linux 操作系统
- vi编辑器的使用
- 快速诊断Linux性能
- Linux(Ubuntu)下如何安装JDK
- linux基本命令(18)——locate命令
- Linux查看机器负载
- Linux 下配置网卡的别名即网卡子IP的配置 转
- linux 下查看系统资源和负载,以及性能监控
- linux基本命令(17)——whereis命令
- Ubuntu14.04交叉编译Linux内核