linux命令源碼的查看

    在平常的作業中,有時候老師讓自己實現諸如cat等類的程序,有時候叫用shell實現,有時候用c實現,但是我經常一點頭緒都沒有,不過我想到linux開源的,命令代碼可以拿來參考下阿,所以我就想看看linux命令的源代碼,於是就開始了擺渡狗狗的搜索過程。從結果來看,有兩種情況,一種是給予rpm的包的形式;另一種是基於deb包的形式。具體我也不知道該怎麼描述,總之就是一種redhat的源碼查看,一種是debian的源碼查看。我是用的ubuntu,基於debian的,所以先前按照rpm的方式怎麼也不奏效。

下面我就總結了下:大概就是源碼都存放在相應的包裏面。
    新利得裏我搜了下coreutils,顯示已經安裝,不過這裏安裝的應該是軟件,也就是命令的執行文件吧應該。但是我沒有找到它是否安裝了src,也就是源代碼。
PS:
Coreutils軟件包含有用於展示和設置基本系統特性的工具。

具體過程一(Linux rwind-ubuntu 2.6.22-14-generic):
1.首先找到你想查看的命令屬於哪個包

rwind@rwind-ubuntu:~$ dpkg -S `which ls`

coreutils: /bin/ls

coreutils就是源碼所在的包,下面就是要下載了。
同樣:

rwind@rwind-ubuntu:~/source$ dpkg -S `which which`

debianutils: /usr/bin/which

debianutils就是which所在的包。
我第一次犯的錯誤:把``用成‘’了,這兩種不一樣阿,前一個是數字鍵1左邊的引號,作用是在shell重組命令行時把``裏面的內容當作命令來執行並替換爲結果。
2.下載相應的源碼包
rwind@rwind-ubuntu:~/source$ apt-get -d source "debianutils"
正在讀取軟件包列表... 完成
正在分析軟件包的依賴關係樹      
讀取狀態信息... 完成            
需要下載 134kB 的源代碼包。
獲取:1 http://ubuntu.cn99.com feisty/main debianutils 2.17.4build1 (dsc) [479B]
獲取:2 http://ubuntu.cn99.com feisty/main debianutils 2.17.4build1 (tar) [133kB]
下載 134kB,耗時 1s (90.7kB/s)    
下載完畢,目前是“僅下載”模式

d選項是僅僅下載的選項。下載到你目前的工作目錄當中。
3.把你下載的包解壓縮,自己去裏面找吧,文件挺多的,都什麼作用我不清楚,留待以後慢慢研究慢慢發現。

另外:
在網上還發現一些資料,但我都沒驗證,
原文如下:

apt-get install apt-file

apt-file update

apt-file search /bin/ls

這樣可以知道ls是coreutils提供的 然後apt-get source coreutils就得到源碼了 當然對於ls,還可以用dpkg -S /usr/ls 來查詢它屬於哪一個包,不過dpkg -S只對已安裝的包有效



二:這是我在網上搜的rpm包格式的。
以find命令爲例:

第一步,確定命令屬於哪個rpm包:
#rpm   -qf   /usr/bin/find
findutils-4.1-34

第二步,查找findutils的源碼包findutils-4.1-34.src.rpm,這個一般在發行版的網站上可以找到

第三步,安裝源碼包:
rpm   -ivh   findutils-4.1-34.src.rpm
安裝好之後可以到/usr/src/RedHat/SOURCE下找到相關的源碼包

大概就是這樣了,以後發現有不足的地方還會補充,如果您有什麼建議或發現錯誤,希望可以指點指點。謝謝。
<script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"16"},"share":{}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];</script>
閱讀(200) | 評論(0) | 轉發(0) |
給主人留下些什麼吧!~~
評論熱議
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章