如何擷取Linux中某個命令的原始碼

來源:互聯網
上載者:User

標籤:linux源碼   系統命令原始碼   linux原始碼   apt-get   

一句話概括:用apt-get source package_name的方式擷取原始碼。

學習Linux下系統編程最好的參考例子就是Linux中已有的原始碼(源碼),比如想實現一個跟ls命令相同功能的程式可以參考ls的源碼的內容。在這樣的基礎上,使用者可以開發出自己的公用程式來代替系統中原有的程式,這聽起來是一件蠻有趣的事情。PS:同樣的,核心的原始碼可以通過這種方式獲得。

那究竟怎樣擷取原始碼呢?其實這並不複雜,Linux是一個開源的作業系統,運行在Linux系統中的大部分應用程式都是開源的,這以GNU開發的程式尤為顯著,其意思是你可以不花費一分錢或者花費極低的代價就能擷取到這些程式的原始碼。

國內常用的幾種Linux系統無非就是RedHat、Debian和SuSe,另外分別對應著三個基本相似的免費版本,CentOS、Ubuntu(Debian免費)和OpenSUSE。

比較簡單的方法就是通過Ubuntu這個作業系統中的apt-get命令直接下載某個軟體包的原始碼。

第一步,確定命令來自哪一個檔案。

第二步,確定這個檔案來自哪一個包。

CentOS中,

# which ls  
alias ls=‘ls --color=auto‘    
    /bin/ls    
# rpm -qf /bin/ls    
coreutils-8.4-37.el6.x86_64    
#

Ubuntu中,

$ which ls  
/bin/ls    
$ dpkg -S /bin/ls    
coreutils: /bin/ls    
$

第三步,通過apt-get source命令下載源碼到目前的目錄。

$ sudo apt-get source coreutils

第四步,使用源碼,源碼一般存放在“軟體名稱-版本號碼”,目錄下的src目錄裡面,如所示:

650) this.width=650;" title="image" style="border-top:0px;border-right:0px;border-bottom:0px;border-left:0px;" border="0" alt="image" src="http://s3.51cto.com/wyfs02/M00/6C/12/wKiom1U-9q_CplQRAANJxbAEM1w208.jpg" height="221" />

 650) this.width=650;" title="image" style="border-top:0px;border-right:0px;border-bottom:0px;border-left:0px;" border="0" alt="image" src="http://s3.51cto.com/wyfs02/M01/6C/0E/wKioL1U--BbBXsXzAAFozha20fU965.jpg" height="586" />

--end--

本文出自 “通訊,我的最愛” 部落格,請務必保留此出處http://dgd2010.blog.51cto.com/1539422/1639605

如何擷取Linux中某個命令的原始碼

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.