點擊上方「嵌入式大雜燴」,「星標公眾號」第一時間查看精彩文章!
上一篇分享了兩個使用的小工具:《如何同時輸出調(diào)試信息到終端及文件?》。有位小伙伴留言問道tee工具的代碼在哪:
這篇文章我們就來簡單分享一下。
首先,我們需要了解Linux下的命令分為大致分為兩類:內(nèi)置命令
與非內(nèi)置命令
。
查看內(nèi)置命令源碼
內(nèi)置命令是Shell自帶的, shell自己進行管理。內(nèi)部命令由shell程序識別并在shell程序內(nèi)部完成運行。比如cd命令
就是一個內(nèi)置命令。我們可以通過help命令(help也是內(nèi)置命令)來查看內(nèi)置命令有哪些:
查看系統(tǒng)當前使用的shell:
我這里的shell用是bash,bash源碼路徑:
http://ftp.gnu.org/gnu/bash/
查看非內(nèi)置命令源碼
非內(nèi)置命令,也即外部命令。外部命令是Linux系統(tǒng)中的實用程序部分, 因為實用程序的功能通常都比較強大,所以其包含的程序量也會很大,在系統(tǒng)加載時并不隨系統(tǒng)一起被加載到內(nèi)存中,而是在需要時才將其調(diào)用內(nèi)存。
ls命令
、tee命令
等都是一個外部命令。這些外部命令都被加入到環(huán)境變量PATH的路徑中,然后我們?nèi)质褂?,全局使用就是我們在任何路徑下都可以使用。我們看一下PATH中有哪些路徑:
其中,ls可執(zhí)行程序就在/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官網(wǎng)查找相關(guān)軟件包:
http://www.gnu.org/software/
找到需要的軟件包,點進去即可找到源碼下載命令:
git clone git://git.sv.gnu.org/coreutils
下載完就可以看到源碼了:
coreutils軟件包包含有很多常用的工具,比如:ls、mv、cat等工具源碼都在里面。其它工具的源碼查找方式如上。不一定都在coreutils
軟件包中,比如上一篇文章分享的script工具在bsdutils
軟件包中:
可能有些系統(tǒng)沒有帶有一些工具,就需要我們編譯安裝。以上就是本次的分享,希望大家喜歡。
猜你喜歡
如何同時輸出調(diào)試信息到終端及文件?
什么是不完全類型?
免責聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務(wù)。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!