如何查看Linux命令工具的源码?

这篇文章我们就来简单分享一下。

首先,我们需要了解Linux下的命令分为大致分为两类:内置命令非内置命令

查看内置命令源码

内置命令是Shell自带的, shell自己进行管理。内部命令由shell程序识别并在shell程序内部完成运行。比如cd命令就是一个内置命令。我们可以通过help命令(help也是内置命令)来查看内置命令有哪些:

查看系统当前使用的shell:

我这里的shell用是bash,bash源码路径:

http://ftp.gnu.org/gnu/bash/

查看非内置命令源码

非内置命令,也即外部命令。外部命令是Linux系统中的实用程序部分, 因为实用程序的功能通常都比较强大,所以其包含的程序量也会很大,在系统加载时并不随系统一起被加载到内存中,而是在需要时才将其调用内存。

ls命令tee命令等都是一个外部命令。这些外部命令都被加入到环境变量PATH的路径中,然后我们全局使用,全局使用就是我们在任何路径下都可以使用。我们看一下PATH中有哪些路径:

其中,ls可执行程序就在/bin路径下:

怎么查看外部命令的源码呢?方法如下:

1、查看命令工具所在绝对路径。

2、搜索工具所属包。

3、下载工具源码包。

下面以tee工具为例:

1、查看tee工具绝对路径,输入如下命令:

whereis tee

tee工具绝对路径:/usr/bin/tee

2、搜索tee工具所属包,输入如下命令:

dpkg -S /usr/bin/tee

tee工具所属源码包:coreutils

3、下载coreutils源码包,输入如下命令:

方法一:

sudo apt-get source coreutils

可能会遇到如下问题:

原因:没有指定源代码URI。

输入如下命令:

sudo sed -i -- 's/#deb-src/deb-src/g' /etc/apt/sources.list && sudo sed -i -- 's/# deb-src/deb-src/g' /etc/apt/sources.list
sudo apt-get update

然后即可下载源码包到当前目录下。

方法二:

如果是GUN的软件包可以直接到GUN官网查找相关软件包:

http://www.gnu.org/software/

找到需要的软件包,点进去即可找到源码下载命令:

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

下载完就可以看到源码了:

coreutils软件包包含有很多常用的工具,比如:ls、mv、cat等工具源码都在里面。其它工具的源码查找方式如上。不一定都在coreutils软件包中,比如上一篇文章分享的script工具在bsdutils软件包中:

可能有些系统没有带有一些工具,就需要我们编译安装。以上就是本次的分享,希望大家喜欢。

(0)

相关推荐

  • Linux常用内置命令有哪些?Linux应该如何学习

    Linux里有一些特殊的命令,称为内置命令(直接内置在BASH解释器中),它们天生就与其他的普通命令不同,因为它们从系统启动成功的那一刻就已经在内存里安家了.当其他普通命令还在慢悠悠地从磁盘上读取程序 ...

  • PS教程连载第38课:Photoshop描边路径

    PS教程连载第38课 Photoshop描边路径 格式:mp4视频 素材领取:请查看文章底部 路径的描边命令与填充命令是紧靠在一起的. 我们可以使用与执行"填充路径"命令相同的方法 ...

  • Linux:常用shell命令

    常看当前目录列表 ls 删除目录或文件 rm 文件路径 rm -rf 文件路径 (不提示你是否确认删除,不推荐使用) 复制目录或文件 cp 文件路径 目标文件路径 移动目录或文件 mv 文件路径 目标 ...

  • 自动化篇 | 聊聊 ADB

    第一时间获取 Python 技术干货! 阅读文本大概需要 8 分钟. 对于 Android 端的自动化测试,ADB 的重要性不言而喻,很多开源的自动化框架操作大都是利用 ADB 命令来完成. 下面对 ...

  • 迅为3399开发板Linux固件编译-安装源码依赖包-编译Linux源码

    一 安装 Linux 源码依赖包 如果您使用的是搭建好编译环境的 Ubuntu16.04 虚拟机镜像,Linux 源码依赖包已经安装好了,不必重 复安装 使用如下命令安装所需的软件包: 1.sudo ...

  • 吐血整理的万字Linux内核源码规范

    从编码风格错误开始 快速修改编码风格的工具 scripts/checkpatch.pl scripts/Lindent astyle Linux 内核代码风格 1 缩进 2 把长的行和字符串打散 3 ...

  • ss命令查看网络状态参数选项有哪些?Linux命令

    ss命令是类似并将取代netstat的工具,它能用来查看网络状态信息,包括TCP.UDP连接.端口等.netstat命令用于显示本机网络的连接状态.运行端口和路由表等信息.而ss命令优点是能够显示更多 ...

  • 设计模式(十五)——命令模式(Spring框架的JdbcTemplate源码分析)

    设计模式(十五)——命令模式(Spring框架的JdbcTemplate源码分析)

  • 查看Linux系统信息都有哪些命令?Linux系统怎么学习

    Linux系统的优势基因快速.批量.自动化.智能化管理系统及处理业务.和Windows系统使用鼠标点击的可视化管理大不相同,Linux系统通过Linux命令完成管理系统的相关操作.那么对于Linux系 ...

  • 模块一 Go语言基础知识-命令源码文件

    我们已经知道,环境变量 GOPATH 指向的是一个或多个工作区,每个工作区中都会有以代码包为基本组织形式的源码文件. 这里的源码文件又分为三种,即:命令源码文件.库源码文件和测试源码文件,它们都有着不 ...

  • rsync文件同步工具常见模式有哪些?Linux命令

    互联网时代发展迅速,Linux运维技术的需求更多推进不少.市场对于Linux运维人才的需求也在逐渐加大.Linux行业崛起,在云计算大环境下,市场上对高级运维人员的需求将越来越大.文件同步工具rsyn ...

  • 「翔博精选指标」屠龙工具 通达信选股公式 副图 源码 贴图

    做价值的传播者,一路同行,一起成长 适用软件:通达信 公式说明:不包含未来函数,不加密,副图公式 指标公式描述 屠龙工具 通达信选股公式 副图 源码 贴图 VAR1:=(C-MA(C,6))/MA(C ...

  • 右键查看源码,我发现了微信公众号的秘密···

    来自公众号:小白学黑客 程序员,尤其是前端程序员可能都知道什么是F12大法:按下F12,启动浏览器的调试窗口,网页的秘密一览无遗. 通过浏览器的调试窗口,我们可以看到浏览器和web服务器的所有通信数据 ...