例如:想在Linux系統(tǒng)下查看cat命令工具的源碼,方法如下:
創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),湯陰企業(yè)網(wǎng)站建設(shè),湯陰品牌網(wǎng)站建設(shè),網(wǎng)站定制,湯陰網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,湯陰網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
1、查看工具的路徑
$?whereis?cat
cat:?/bin/cat?/usr/share/man/man1/cat.1.gz
2、查看工具所屬的包
$?dpkg?-S?/bin/cat
coreutils:?/bin/cat
coreutils就是cat的源碼包名
3、下載工具源碼包
$?sudo?apt-get?source?coreutils
[sudo]?password?for?lizh:?
正在讀取軟件包列表...?完成
正在分析軟件包的依賴關(guān)系樹???????
正在讀取狀態(tài)信息...?完成???????
需要下載?10.8MB?的源代碼包。
獲取:1??maverick/main?coreutils?8.5-1ubuntu3?(dsc)?[1,891B]
獲?。???maverick/main?coreutils?8.5-1ubuntu3?(tar)?[10.7MB]
獲取:3??maverick/main?coreutils?8.5-1ubuntu3?(diff)?[21.5kB]
下載?10.8MB,耗時(shí)?42秒?(254kB/s)????????????????????????????????????????????
gpgv:?于?2015年07月06日?星期一?13時(shí)49分55秒?CST?創(chuàng)建的簽名,使用?RSA,鑰匙號(hào)?21B2133D
gpgv:?無法檢查簽名:找不到公鑰
dpkg-source:?警告:?對(duì)?./coreutils_8.5-1ubuntu3.dsc?校驗(yàn)簽名失敗
dpkg-source:?info:?extracting?coreutils?in?coreutils-8.5
dpkg-source:?info:?unpacking?coreutils_8.5.orig.tar.gz
dpkg-source:?info:?applying?coreutils_8.5-1ubuntu3.diff.gz
ls -al命令來觀察文件權(quán)限,每個(gè)文件的權(quán)限都用10位表示,其中第一段占1位,表示第一個(gè)字符代表這個(gè)文件的類型(目錄,文件或鏈接文件)。
若為“d”則是目錄,若為“-”則是文件,若為“l(fā)”則表示鏈接文件,若為“”則表示為設(shè)備文件里面的可供存儲(chǔ)的周邊設(shè)備,若為“c”則表示為設(shè)備文件里面的串行端口設(shè)備,如鍵盤鼠標(biāo)。
第二段占3位,表示權(quán)限,均為[rwx]的三個(gè)參數(shù)的組合。其中r表示可讀,w表示可寫,x表示可執(zhí)行,如果沒有權(quán)限,則會(huì)顯示減號(hào)“-”。
擴(kuò)展資料:
Linux命令注意事項(xiàng):
Linux的命令(也包括文件名等等)對(duì)大小寫是敏感的,也就是說,如果你輸入的命令大小寫不對(duì)的話,系統(tǒng)是不會(huì)做出你期望的響應(yīng)的。
Linux常用的命令:
clear,這個(gè)命令是用來清除屏幕的,它不需要任何參數(shù),和dos下面的cls具有相同的功能,如果你覺得屏幕太紊亂,就可以使用它清除屏幕上的信息。
目錄切換(cd),使用cd(Change Directory)命令可以在不同目錄之間切換。
列出目錄中的文件(ls),在Linux命令行終端中使用的最多的命令就是這個(gè)ls,它可以幫助我們列出當(dāng)前目錄下都有哪些文件。
參考資料來源:百度百科-Linux命令
1.ash
(1)簡(jiǎn)介
ash --a shell
這是由Kenneth Almquist在1989年編寫的,ash是Linux下的許多命令解釋器中的一個(gè),它的許多特性接近于SYSTEM V的shell。
(2)部分參數(shù)說明
ash [ -efIijnsxz ] [ +efIijnsxz ] [ -c命令] [ 參數(shù) ]
-c 命令:若用-c參數(shù),則ash從標(biāo)準(zhǔn)輸入中讀入命令(在執(zhí)行完-c帶的命令之后)。
-s:若用-s參數(shù),則ash從標(biāo)準(zhǔn)輸入中讀入命令(在執(zhí)行完-c帶的命令之后)。
如果不跟-c -s參數(shù)則ash以所跟的第一個(gè)參數(shù)為文件名,從此文件中讀入命令。如無參數(shù)則ash缺省設(shè)定-s參數(shù),從標(biāo)準(zhǔn)輸入中讀入命令,直到輸入exit。
如果參數(shù)0的第一個(gè)字母是"-"則ash確定為login shell,ash將從/etc/profile或用戶的根目錄中的.profile讀入相應(yīng)的設(shè)置和環(huán)境變量。
-e:若用-e參數(shù),則ash執(zhí)行命令后返回值為非零值時(shí)則退出ash。
-f:若用-f參數(shù),則ash關(guān)閉自動(dòng)產(chǎn)生文件名功能。
-j:打開伯克利UNIX風(fēng)格的工作控制。
-n:讀入命令但是并不執(zhí)行。
(3)范例
ash -c ls
ash執(zhí)行l(wèi)s這個(gè)命令后退回原先的目錄和shell。
ash -s
ash執(zhí)行一個(gè)新的shell,現(xiàn)在可以在這個(gè)shell中工作,按(Ctrl-D)或輸入exit后,則退回原先的目錄和shell,所設(shè)定的環(huán)境變量返回原先的值。
2.at
(1)簡(jiǎn)介
at,batch,atq,atrm:安排、檢查、刪除隊(duì)列中的工作。
由Thomas Koenig編寫。
(2)部分參數(shù)說明
at [-V] [-q隊(duì)列] [-f文件名] [-mldbv] 時(shí)間
at -c 作業(yè) [作業(yè)…]
atq [-V] [-q隊(duì)列] [-v]
atrm [-V] 作業(yè) [作業(yè)…]
batch [-V] [-q隊(duì)列] [-f文件名] [-mv] [時(shí)間]
at在設(shè)定的時(shí)間執(zhí)行作業(yè)。
atq列出用戶排在隊(duì)列中的作業(yè),如果是超級(jí)用戶,則列出隊(duì)列中的所有工作。
atrm刪除隊(duì)列中的作業(yè)。
batch用低優(yōu)先級(jí)運(yùn)行作業(yè),只要系統(tǒng)的loadavg(系統(tǒng)平均負(fù)載)1.5(或者在atrun中設(shè)定的值)它就開始執(zhí)行作業(yè)。
-V:若用-V參數(shù),則顯示版本號(hào)到標(biāo)準(zhǔn)錯(cuò)誤輸出。
-q隊(duì)列:若用-q參數(shù),則指定可選隊(duì)列名稱,隊(duì)列名稱可以是a到z或A到Z之間的任意字母。at的缺省隊(duì)列名是c,batch的缺省隊(duì)列名是E,隊(duì)列的字母順序越高,則隊(duì)列的優(yōu)先級(jí)越低。如果是大寫字母的話則提交給batch,如果atq使用-q參數(shù),則只顯示這個(gè)隊(duì)列中的作業(yè)。
-m:執(zhí)行完作業(yè)后即使此作業(yè)并沒有輸也給提交作業(yè)的用戶發(fā)送提示mail。
-f文件名:從文件中讀取作業(yè)。
-l:等于atq。
-d:等于atrm。
-b:等于batch。
時(shí)間:這是用戶設(shè)定的作業(yè)開始執(zhí)行的時(shí)間。時(shí)間的格式分成三個(gè)部分:時(shí)間、日期、偏移量??山邮艿臅r(shí)間形式是HHMM或HH:MM,在一天中指定的時(shí)間運(yùn)行,如果時(shí)間過去了就在第二天執(zhí)行??梢栽跁r(shí)間后加入AM或PM使其在上午或下午運(yùn)行,也可以指定在哪一天執(zhí)行,給出日期的格式應(yīng)為MMDDYY或MM/DD/YY或MM.DD.YY,也可以給出偏移量:
時(shí)間+計(jì)數(shù)時(shí)間間隔
時(shí)間間隔可以是minutes,hours,days,weeks。
也可以指定today讓作業(yè)在今天執(zhí)行,指定tommorow讓作業(yè)在明天執(zhí)行。
(3)注意事項(xiàng)
如果沒有指定-f選項(xiàng),是at從標(biāo)準(zhǔn)輸入讀入所有的命令,所以可以通過管道、重定向或交互輸入來輸入命令。
超級(jí)用戶可以在任何情況下使用at系列的命令。一般用戶使用at系列命令的權(quán)利由文件/etc/at.allow,/etc/at.deny控制。如果/etc/at.allow存在,則只有列在這個(gè)文件中的用戶才能使用at系列的命令。如果/etc/at.allow文件不存在,則檢查/etc/at.deny這個(gè)文件。只要不列在這個(gè)文件中的用戶都可以使用at系列的命令。缺省的配置是/etc/at.deny,是一個(gè)空文件,這表明所有的用戶都可以使用at系列的命令。
(4)范例
at -f work 4pm + 3 days
在三天后下午4點(diǎn)執(zhí)行文件work中的作業(yè)。
at -f work 10am Jul 31
在七月31日上午10點(diǎn)執(zhí)行文件work中的作業(yè)。
3.banner
banner:打印大標(biāo)題。
banner在標(biāo)準(zhǔn)輸出上打印高質(zhì)量的標(biāo)題,如果沒有輸入要打印的文字,則其等待從標(biāo)準(zhǔn)輸入輸入一行文字。其標(biāo)題由"*"組成。由Mark Horton編寫。
(2)部分參數(shù)說明
/usr/bin/banner [ -wn ]信息
-w寬度 輸出寬度從131到n,n缺省為80列。
(3)注意事項(xiàng)
不能打印字符: ,,[,],\,^,_,{,},|,-。信息長(zhǎng)度為10個(gè)英文字符,如果用空格分開字符串,還是連續(xù)打印字符串,兩個(gè)字符串可以被括在引號(hào)(")中。這命名banner把這些字任串置于同一行中。
4.bash
(1)簡(jiǎn)介
bash:GNU Bourne-Again Shell
自由軟件基金會(huì)(Free Software Foundation Inc)擁有bash版權(quán)。
bash是Linux下的許多命令解釋器中的一個(gè),同sh兼容,并且包含了ksh和csh中一些有用的特性。遵從IEEE Posix Shell and Tools specification(IEEE Working Group 1003.2)。
首先uname -r看一下你當(dāng)前的linux內(nèi)核版本
1、linux的源碼是在/usr/src這個(gè)目錄下,此目錄有你電腦上各個(gè)版本的linux內(nèi)核源代碼,用uname -r命令可以查看你當(dāng)前使用的是哪套內(nèi)核,你把你下載的內(nèi)核源碼也保存到這個(gè)目錄之下。
2、配置內(nèi)核 make menuconfig,根據(jù)你的需要來進(jìn)行選擇,設(shè)置完保存之后會(huì)在當(dāng)前目錄下生成.config配置文件,以后的編譯會(huì)根據(jù)這個(gè)來有選擇的編譯。
3、編譯,依次執(zhí)行make、make bzImage、make modules、make modules
4、安裝,make install
5、.創(chuàng)建系統(tǒng)啟動(dòng)映像,到 /boot 目錄下,執(zhí)行 mkinitramfs -o initrd.img-2.6.36 2.6.36
6、修改啟動(dòng)項(xiàng),因?yàn)槟阍趩?dòng)的時(shí)候會(huì)出現(xiàn)多個(gè)內(nèi)核供你選擇,此事要選擇你剛編譯的那個(gè)版本,如果你的電腦沒有等待時(shí)間,就會(huì)進(jìn)入默認(rèn)的,默認(rèn)的那個(gè)取決于 /boot/grub/grub.cfg 文件的設(shè)置,找到if [ "${linux_gfx_mode}" != "text" ]這行,他的第一個(gè)就是你默認(rèn)啟動(dòng)的那個(gè)內(nèi)核,如果你剛編譯的內(nèi)核是在下面,就把代表這個(gè)內(nèi)核的幾行代碼移到第一位如:
menuentry 'Ubuntu, with Linux 3.2.0-35-generic' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
gfxmode $linux_gfx_mode
insmod gzio
insmod part_msdos
insmod ext2
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set=root 9961c170-2566-41ac-8155-18f231c1bea5
linux/boot/vmlinuz-3.2.0-35-generic root=UUID=9961c170-2566-41ac-8155-18f231c1bea5 ro quiet splash $vt_handoff
initrd/boot/initrd.img-3.2.0-35-generic
}
當(dāng)然你也可以修改 set default="0"來決定用哪個(gè),看看你的內(nèi)核在第幾位,default就填幾,不過我用過這種方法,貌似不好用。
重啟過后你編譯的內(nèi)核源碼就成功地運(yùn)行了,如果出現(xiàn)問題,比如鼠標(biāo)不能用,usb不識(shí)別等問題就好好查查你的make menuconfig這一步,改好后就萬事ok了。
最后再用uname -r看看你的linux內(nèi)核版本。是不是你剛下的那個(gè)呢!有沒有成就感?