有位小伙伴留言問道tee工具的代碼在哪:
這篇文章我們就來簡單分享一下。
首先,我們需要了解linux下的命令分為大致分為兩類:內(nèi)置命令與非內(nèi)置命令。
查看內(nèi)置命令源碼
內(nèi)置命令是Shell自帶的, shell自己進(jìn)行管理。 內(nèi)部命令由shell程序識別并在shell程序內(nèi)部完成運(yùn)行。 比如cd命令就是一個(gè)內(nèi)置命令。我們可以通過help命令(help也是內(nèi)置命令)來查看內(nèi)置命令有哪些:
查看系統(tǒng)當(dāng)前使用的shell:
我這里的shell用是bash,bash源碼路徑:
http://ftp.gnu.org/gnu/bash/
查看非內(nèi)置命令源碼
非內(nèi)置命令,也即外部命令。 外部命令是Linux系統(tǒng)中的實(shí)用程序部分, 因?yàn)閷?shí)用程序的功能通常都比較強(qiáng)大,所以其包含的程序量也會很大,在系統(tǒng)加載時(shí)并不隨系統(tǒng)一起被加載到內(nèi)存中,而是在需要時(shí)才將其調(diào)用內(nèi)存。
ls命令、tee命令等都是一個(gè)外部命令。 這些外部命令都被加入到環(huán)境變量PATH的路徑中,然后我們?nèi)质褂茫质褂镁褪俏覀冊谌魏温窂较露伎梢允褂谩N覀兛匆幌翽ATH中有哪些路徑:
其中,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
然后即可下載源碼包到當(dāng)前目錄下。
方法二:
如果是GUN的軟件包可以直接到GUN官網(wǎng)查找相關(guān)軟件包:
http://www.gnu.org/software/
找到需要的軟件包,點(diǎn)進(jìn)去即可找到源碼下載命令:
git clone git://git.sv.gnu.org/coreutils
下載完就可以看到源碼了:
coreutils軟件包包含有很多常用的工具,比如:ls、mv、cat等工具源碼都在里面。其它工具的源碼查找方式如上。不一定都在coreutils軟件包中,比如上一篇文章分享的script工具在bsdutils軟件包中:
可能一些系統(tǒng)沒有帶有一些工具,就需要我們自己編譯安裝。以上就是本次的分享,希望大家喜歡。