当前位置:首页 > > 嵌入式大杂烩
[导读]之前有位小伙伴留言问道tee工具的代码在哪儿?这篇文章我们就来简单分享一下。


点击上方「嵌入式大杂烩」,「星标公众号」第一时间查看精彩文章!

上一篇分享了两个使用的小工具:《如何同时输出调试信息到终端及文件?》。有位小伙伴留言问道tee工具的代码在哪:

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

首先,我们需要了解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软件包中:

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

猜你喜欢

如何同时输出调试信息到终端及文件?

什么是不完全类型?

1024G 嵌入式资源大放送!包括但不限于C/C++、单片机、Linux等。在公众号聊天界面回复 1024 ,即可免费获取!

免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读

当我们谈论RISC-V的设计特色,讨论得最多的往往是它开源开放的属性、模块化的指令集设计,还有灵活的特权级架构。但很少有人会深入拆解它的启动流程,去品味这套架构在启动阶段设计里藏着的巧思。我自己在做RISC-V嵌入式开发...

关键字: RISC-V Linux

在操作系统学习和后端开发面试中,“线程间共享哪些资源、又隔离哪些资源”是一个高频问题,很多人对此一知半解:只记得“线程共享进程地址空间”,但具体到哪些内存区域、哪些资源是共享的,哪些是线程私有,总是说不清楚。实际上,理解...

关键字: Linux 线程

在Linux系统的C语言开发中,字节对齐是一个绕不开的基础话题。很多开发者都遇到过这样的困惑:明明计算结构体大小时把每个成员的字节数加起来,结果实际大小却比计算值大上好几倍,甚至修改结构体成员的排列顺序,总大小还会发生变...

关键字: Linux CPU

中国北京(2026年6月23日)—— 业界领先的半导体器件供应商兆易创新GigaDevice(股票代码:603986.SH;3986.HK)宣布与全球领先的软件设计、开发与质量解决方案提供商Qt Group正式达成合作,...

关键字: 嵌入式 GUI 智能家居

在嵌入式开发、工业控制、电力电子等领域,PWM(脉冲宽度调制,Pulse Width Modulation)是应用最广泛的模拟量控制技术之一。小到智能家电的电机调速、LED亮度调节,大到新能源汽车的电机驱动、光伏并网逆变...

关键字: PWM 嵌入式

在电子工程、芯片调试、嵌入式开发等领域,JTAG是绕不开的核心技术术语。很多从业者刚接触时总会疑惑:这个常被挂在嘴边的JTAG到底是什么?实际使用中又该怎么判断一套JTAG接口或设备是否正常?要理清这些问题,得从它的诞生...

关键字: JTAG 嵌入式

把推理放到本地,并不自动等于隐私安全;很多泄露发生在日志、特征和升级包边界。嵌入式AI如果只保护原始数据,不保护模型和中间结果,攻击面仍然很宽。

关键字: 嵌入式 AI 密钥

实验室准确率不低,现场却频繁误触,往往不是模型突然失效,而是决策层没有给噪声和不确定样本留出口。嵌入式AI如果只输出最高分标签,边界样本会被硬塞进错误动作。

关键字: 嵌入式 AI 误触

长时间满负载跑模型时,板子最先拒绝的可能不是算法,而是电源和散热余量。嵌入式AI若把峰值算力当持续能力,延迟会在温升、限流和降频之间突然拉长。

关键字: 嵌入式 AI 热设计

模型能在开发板上跑起来,不等于能在控制周期里稳定跑完。嵌入式AI最先暴露的常不是算力峰值不够,而是算子拆分和内存搬运把推理时间切成了不可预测的碎片。

关键字: 嵌入式 AI 算子
关闭