1. 以搜索ls命令源碼為例,先搜索命令所在包,命令如下:

創(chuàng)新互聯(lián)是一家專業(yè)提供京山企業(yè)網(wǎng)站建設,專注與網(wǎng)站制作、成都網(wǎng)站制作、HTML5建站、小程序制作等業(yè)務。10年已為京山眾多企業(yè)、政府機構等服務。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設計公司優(yōu)惠進行中。
lpj@lpj-linux:~$ which ls
/bin/ls
2. 用命令搜索該軟件所在包,代碼如下:
lpj@lpj-linux:~$ dpkg -S /bin/ls
coreutils: /bin/ls
3. 從上一步中可以知道ls命令的實現(xiàn)在包coreutils中,用apt安裝(說安裝有些歧義,主要是區(qū)分apt-get -d)該包的源代碼然后解壓,代碼如下:
sudo apt-get source coreutils
cd /usr/src/coreutils-XXX #XXX表示版本號
sudo tar zxvf coreutils-XXX.tar.gz
或者只下載源碼,然后手動打補丁再解壓,代碼如下:
sudo apt-get -d source coreutils
cd /usr/src
tar zxvf coreutils-XXX.tar.gz
gzip -d coreutils-XXX.diff.gz #這一步會生成coreutils-XXX.diff文件
patch -p0 coreutils-XXX.diff
cd coreutils-XXX
tar zxvf coreutils-XXX.tar.gz
OK,這幾步執(zhí)行完后,就可以進入/usr/src/coreutils-XXX/coreutils-XXX/src中查看各命令對應的源代碼了
linux的這些常用命令的源代碼是不會在內(nèi)核中的。這些是應用程序而已,所以你還是不要在內(nèi)核中去找了。網(wǎng)上有這些應用程序的源代碼。
Linux是開源的,它自帶的功能強大的命令也是開源的,也就是說,我們可以獲得這些命令的源代碼并研究它。那究竟如何獲得系統(tǒng)的命令的源代碼呢?
命令的源代碼是一個軟件包為單元的,放在一個軟件包的源代碼中,若要下載一個命令的源代碼,就要把這個命令所屬的軟件包的源代碼都下載下來。命令的源代碼就在下載的源代碼的相關目錄內(nèi),通常是src目錄,相應的主文件名為cmd.c,其中cmd為具體的命令,如ls命令的主程序文件為ls.c。可查閱“Linux命令大全”了解Linux命令。
隨便寫了個最簡單的,供你參考
vim
test.c
**********************************
#include
stdio.h
#include
unistd.h
int
main()
{
char
*
buff[]
=
{"ls",
"-R",
NULL};
execv("/bin/ls",
buff);
return
0;
}
*******************************
linux終端下:gcc
test.c
-o
test
./test
運行沒問題
C語言實現(xiàn)的ls命令源碼分享
ls 指令可以說是Linux下最常用的指令之一。它有許多的選項,其中有許多是很有用的`,你能否了解呢?下面列出了 ls 指令的絕大多數(shù)選項。
1.列出具體文件 #ls -al //這個最常用,可是往往又不徹底符合要求,
2.列出一切子目錄的文件:#ls -R //上個指令僅僅列出了本目錄下的一切目錄和文件,可是目錄下的文件不會循環(huán)的列出。
3.若是文件過多一屏看不完,怎么辦?并且,關于想找到許多文件中的某個文件的姓名。
3.1分屏顯現(xiàn):#ls -l|more //能在當時屏退出,很有用,但不能一頁一頁翻屏
#ls -l|less //能用pgup,pgdw 翻頁,但不能在當時方位退出
3.2橫向輸出盡可能多的顯現(xiàn)文件姓名:#ls -m
-a 列出目錄下的一切文件,包含以 . 最初的隱含文件。//常用
-m 橫向輸出文件名,并以“,”作分格符。
-c 輸出文件的 i 節(jié)點的修正時刻,并以此排序。
-R 列出一切子目錄下的文件。
-l 列出文件的具體信息。
-s 在每個文件名后輸出該文件的巨細。
-k 以 k 字節(jié)的方式表明文件的巨細。
-i 輸出文件的 i 節(jié)點的索引信息。
本文題目:linux命令ls源碼包,linux ls l命令
當前地址:http://chinadenli.net/article10/dsgisgo.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供服務器托管、建站公司、做網(wǎng)站、動態(tài)網(wǎng)站、App開發(fā)、品牌網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)