如果想進一步瞭解linux系統,熟悉一些系統底層的東西還是非常必要的,我們可以先了解一些linux命令是如何實現相關功能的,那麼如何獲得命令的源代碼呢?本文將詳細介紹一下。
下面以獲取cat命令的源代碼爲例說明:
rpm -qif `which cat` 將顯示如下信息:
--------------------------------------------------------------------------
Name : coreutils Relocations: (not relocatable)
Version : 5.2.1 Vendor: Red Hat, Inc.
Release : 31.8.el4_7.1 Build Date: 2008年10月23日 星期四 21時04分08秒
Install Date: 2009年04月07日 星期二 10時17分33秒 Build Host: ls20-bc2-14.build.redhat.com
Group : 系統環境/基礎 Source RPM: coreutils-5.2.1-31.8.el4_7.1.src.rpm
Size : 7314345 License: GPL
Signature : DSA/SHA1, 2008年10月27日 星期一 22時56分59秒, Key ID 219180cddb42a60e
Packager : Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla>
URL : ftp://alpha.gnu.org/gnu/coreutils/
Summary : GNU 核心工具:一組在 shell 腳本中常用的工具。
Description :
這些是 GNU 的核心工具。該軟件包是老的 GNUfileutils、sh-utils、
和 textutils 軟件包的組合。
--------------------------------------------------------------------------
通過上面的信息,我們可以知道cat命令是來源於coreutils-5.2.1-31.8.el4_7.1.src.rpm源碼包,我們可以到上面信息提到的 ftp://alpha.gnu.org/gnu/coreutils/上去下載tarball,也可以到rpmfind.net網站上去搜索coreutils-5.2.1-31.8.el4_7.1.src.rpm下載此源碼包。
若是下載的tar.gz包,則tar zxvf tar.gz包即可;
若是下載的src.rpm源碼包,則:
1、rpm2cpio coreutils-5.2.1-31.8.el4_7.1.src.rpm| cpio -idv
2、此時會在當前目錄下產生coreutils-5.2.1.tar.bz2文件
3、bzip2 -d coreutils-5.2.1.tar.bz2 解壓,會產生coreutils-5.2.1.tar 文件
4、tar xvf coreutils-5.2.1.tar 此時在當前目錄下將產生coreutils-5.2.1目錄,源碼便在其中。
進入coreutils-5.2.1目錄,下面的src文件夾便是存放cat命令源代碼的地方,當然了除了cat,linux的很多基礎的外置命令的源代碼都存放其中,像cp,chown,chmod,df,ls,rm,dd等等
對了,順便說一下,coreutils-5.2.1目錄下的configure腳本有5w多行哦,裏面體現了很多shell的編程技巧,很值得喜歡shell並且想進一步深入學習shell編程的朋友去拜讀一下哦。
獲取Linux命令源代碼的方法
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
Linux核心技能与应用
wy53780
2020-04-23 14:02:05
Python與家國天下
豌豆花下貓
2019-02-24 22:22:40
linux上安裝Docker(非常簡單的安裝方法)
幸運券發放
2019-02-24 19:38:01
2019年Java面試-併發容器篇
王知無
2019-02-24 15:12:46
淺淡個人學習嵌入式Linux過程
wx5c317e5b736d2
2019-02-24 13:31:30
DHCP服務原理與搭建(Linux系統+路由器,二選一方案)
wx5c7174443c6f9
2019-02-24 13:23:18
Redis安裝與配置
劉遄
2019-02-24 13:12:51
如果同事暗中傷害你,應該怎麼辦?
這個饅頭有餡
2019-02-24 13:59:08
職場中,抱怨越多的員工,越被領導瞧不起!
這個饅頭有餡
2019-02-24 13:59:08
老程序員被裁,應屆生卻能月薪 1.3 萬?這你能忍?
前端高達
2019-02-24 13:48:04
遇到到處蹭吃卻從不請客吃飯的主怎麼辦?
樑軍年
2019-02-24 13:26:35
Linux基本操作命令
wbzjacky
2019-02-24 13:12:38
高標準機房綜合配線安裝
wbzjacky
2019-02-24 13:12:38