linux 查看命令源代码,怎么查看linux种一些命令的源代码

如何查看linux种一些命令的源代码

1. 学习linux的时候,对一些命令如何完成其功能很好奇。比如more命令。

2. 于是输入:whereis more,显示在/bin/more下面,但是打开是乱码,查了一些,一般的系统是不会有源代码的,都是编译过用来运行的,more这里是一个命令而不是一个源代码。

3. 于是我下载了linux的源代码。但是我如何知道more命令在哪个文件夹?

我下载的linux文件为:linux-3.16.1

------解决方案--------------------

GNU coreutils covers quite a few commands that you might be interested

git clone git://git.sv.gnu.org/coreutils

------解决方案--------------------

到GNU的官网找到并下载“coreutils”包,里面的“src”文件下是常用的Shell命令的C语言源代码

http://ftp.gnu.org/gnu/coreutils/

------解决方案--------------------

1、对楼主对Linux的好奇及兴趣赞一个!(我当初学的时候没这个想法,直到后来才去找)

2、楼主下载的那个是linux内核代码,命令源码不在那里。楼上已经给出了部分命令的源码。

3、建议楼主看看LFS,手册里有详细的介绍。参考地址:http://oss.org.cn/ossdocs/gnu_linux/lfs/lfs-6.1-cn/index.html

举例:

6.15.2. Contents of Coreutils

安装的程序: basename, cat, chgrp, chmod, chown, chroot, cksum, comm, cp, csplit, cut, date, dd, df, dir, dircolors, dirname, du, echo, env, expand, expr, factor, false, fmt, fold, groups, head, hostid, hostname, id, install, join, link, ln, logname, ls, md5sum, mkdir, mkfifo, mknod, mv, nice, nl, nohup, od, paste, pathchk, pinky, pr, printenv, printf, ptx, pwd, readlink, rm, rmdir, seq, sha1sum, shred, sleep, sort, split, stat, stty, sum, sync, tac, tail, tee, test, touch, tr, true, tsort, tty, uname, unexpand, uniq, unlink, users, vdir, wc, who, whoami, yes

简要描述

basename

去掉文件名中的目录和后缀。

cat

把文本文件的内容发送到标准输出。

chmod

改变文件和目录的权限,权限可以使用符号或者八进制两种表达方式。

chown

改变文件和目录的所有权(包括用户和/或组)。

chroot

使用特定的目录作为执行某个命令或者交互 shell 的根目录。在多数系统中,只有 root 用户能运行这个命令。

cksum

输出指定的每个文件的CRC(循环冗余校验)和字节数。

comm

一行一行对两个已经排序的文件进行比较。

cp

复制文件。

csplit

把一个文件按照给定的模式或者行号分成几块。

cut

从指定的文件中提取特定的列送到标准输出。

date

以特定的格式显示当前时间,或者设置系统日期。

dd

以可选块长度复制文件,默认情况下从标准输入设备输出到标准输出设备。复制过程中,还可以对文件进行一些转换。

df

显示参数中的文件所在分区磁盘空间的使用情况,如果没有给出文件参数就显示所有已经安装的文件系统的可用空间数量。

dir

同ls

dircolors

输出设置 LS_COLOR 环境变量的命令。 LS_COLOR 环境变量用来改变 ls 及相关工具默认的颜色组合。

dirname

显示从文件名去掉不是目录的后缀后的内容。

du

显示参数使用的磁盘空间的数量,对于参数为目录还会列出每个子目录磁盘空间占用情况。

echo

显示给定字符串。

------解决方案--------------------

有一些命令的源码可以到sourceforge 或者github上找。

------解决方案--------------------

楼上已经回答了

我说一点小技巧吧

如果用的是Ubuntu,可以用apt-get source [软件包名]来获取源码

如果单纯是读这些命令的实现方法,看FreeBSD的也不错。我觉得FreeBSD的这些命令较GNU的质(简)朴(单)。没有太多为了适配各种平台而夹杂的丑陋的宏。

可以用svn check FreeBSD的代码看:

svn://svn.freebsd.org/base/head

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值