linux命令源碼的查看

來源:互聯網
上載者:User

在平常的作業中,有時候老師讓自己實現諸如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下找到相關的源碼包
大概就是這樣了,以後發現有不足的地方還會補充,如果您有什麼建議或發現錯誤,希望可以指點指點。謝謝。
               
               

本文來自ChinaUnix部落格,如果查看原文請點:http://blog.chinaunix.net/u1/54537/showart_431031.html

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.