Linux基礎(chǔ)命令之: Linux常用命令
2.patch
(1)作用。
命令跟diff配合使用,把生成的補(bǔ)丁文件應(yīng)用到現(xiàn)有代碼上。
(2)格式。
patch[選項(xiàng)][待patch的文件[patch文件]]。
常用的格式為:patch-pnum[patch文件],其中的-pnum是選項(xiàng)參數(shù),在后面會(huì)詳細(xì)介紹。
(3)常見參數(shù)。
patch主要選項(xiàng)參數(shù)如表2.27所示。
表2.27 patch命令常見參數(shù)列表
選項(xiàng) | 參數(shù)含義 |
-b | 生成備份文件 |
-d | 把dir設(shè)置為解釋補(bǔ)丁文件名的當(dāng)前目錄 |
-e | 把輸入的補(bǔ)丁文件看作是ed腳本 |
-pnum | 剝離文件名中的前NUM個(gè)目錄部分 |
-t | 在執(zhí)行過程中不要求任何輸入 |
-v | 顯示patch的版本號(hào) |
以下對-punm選項(xiàng)進(jìn)行說明。
首先查看以下示例(對分別位于xc.orig/config/cf/Makefile和xc.bsd/config/cf/Makefile的文件使用patch命令)。
diff-ruNaxc.orig/config/cf/Makefilexc.bsd/config/cf/Makefile
以下是patch文件的頭標(biāo)記。
---xc.orig/config/cf/Imake.cfFriJul3012:45:471999
+++xc.new/config/cf/Imake.cfFriJan2113:48:442000
這個(gè)patch如果直接應(yīng)用,那么它會(huì)去找“xc.orig/config/cf”目錄下的Makefile文件,假如用戶源碼樹的根目錄是缺省的xc而不是xc.orig,則除了可以把xc.orig移到xc處之外,還有什么簡單的方法應(yīng)用此patch嗎?NUM就是為此而設(shè)的:patch會(huì)把目標(biāo)路徑名剝?nèi)UM個(gè)“/”,也就是說,在此例中,-p1的結(jié)果是config/cf/Makefile,-p2的結(jié)果是cf/Makefile。因此,在此例中就可以用命令cdxc;patch_p1/pathname/xxx.patch完成操作。
(4)使用實(shí)例。
[root@localhostdavid]#diffhello1.chello2.c>hello1.patch
[root@localhostdavid]#patch./hello1.chello1.patch
patchingfile./hello1.c
[root@localhostdavid]#vihello1.c
#includestdio.h>
voidmain()
{
printf(Hello!Thisisyourhome!n);
}
在該實(shí)例中,由于patch文件和源文件在同一目錄下,因此直接給出了目標(biāo)文件的目錄,在應(yīng)用了patch之后,hello1.c的內(nèi)容變?yōu)榱薶ello2.c的內(nèi)容。
(5)使用說明。
n 如果patch失敗,patch命令會(huì)把成功的patch行補(bǔ)上其差異,同時(shí)(無條件)生成備份文件和一個(gè).rej文件。.rej文件里沒有成功提交的patch行,需要手工打上補(bǔ)丁。這種情況在源碼升級(jí)的時(shí)候有可能會(huì)發(fā)生。
n 在多數(shù)情況下,patch程序可以確定補(bǔ)丁文件的格式,當(dāng)它不能識(shí)別時(shí),可以使用-c、-e、-n或者-u選項(xiàng)來指定輸入的補(bǔ)丁文件的格式。由于只有GNUpatch可以創(chuàng)建和讀取新版上下文格式的patch文件,因此,除非能夠確定補(bǔ)丁所面向的只是那些使用GNU工具的用戶,否則應(yīng)該使用舊版上下文格式來生成補(bǔ)丁文件。
n 為了使patch程序能夠正常工作,需要上下文的行數(shù)至少是2行(即至少是有一處差別的文件)。
2.1.5網(wǎng)絡(luò)相關(guān)命令
Linux下網(wǎng)絡(luò)相關(guān)的常見命令如表2.28所示,本書僅以ifconfig和ftp為例進(jìn)行說明。
表2.28 Linux下網(wǎng)絡(luò)相關(guān)命令
選項(xiàng) | 參數(shù)含義 | 常見選項(xiàng)格式 |
netstat | 顯示網(wǎng)絡(luò)連接、路由表和網(wǎng)絡(luò)接口信息 | netstat[-an] |
nslookup | 查詢一臺(tái)機(jī)器的IP地址和其對應(yīng)的域名 | nslookup[IP地址/域名] |
finger | 查詢用戶的信息 | finger[選項(xiàng)][使用者][用戶@主機(jī)] |
ping | 用于查看網(wǎng)絡(luò)上的主機(jī)是否在工作 | ping[選項(xiàng)]主機(jī)名/IP地址 |
ifconfig | 查看和配置網(wǎng)絡(luò)接口的參數(shù) | ifconfig[選項(xiàng)][網(wǎng)絡(luò)接口] |
ftp | 利用ftp協(xié)議上傳和下載文件 | 在本節(jié)中會(huì)詳細(xì)講述 |
telnet | 利用telnet協(xié)議訪問主機(jī) | telent[選項(xiàng)][IP地址/域名] |
ssh | 利用ssh登錄對方主機(jī) | ssh[選項(xiàng)][IP地址] |
1.ifconfig
(1)作用。
用于查看和配置網(wǎng)絡(luò)接口的地址和參數(shù),包括IP地址、網(wǎng)絡(luò)掩碼、廣播地址,它的使用權(quán)限是超級(jí)用戶。
(2)格式。
ifconfig有兩種使用格式,分別用于查看和更改網(wǎng)絡(luò)接口。
①ifconfig[選項(xiàng)][網(wǎng)絡(luò)接口]:用來查看當(dāng)前系統(tǒng)的網(wǎng)絡(luò)配置情況。
②ifconfig網(wǎng)絡(luò)接口[選項(xiàng)]地址:用來配置指定接口(如eth0、eth1)的IP地址、網(wǎng)絡(luò)掩碼、廣播地址等。
(3)常見參數(shù)。
ifconfig第二種格式的常見選項(xiàng)參數(shù)如表2.29所示。
表2.29 ftp命令選項(xiàng)的常見參數(shù)列表
選項(xiàng) | 參數(shù)含義 |
-interface | 指定的網(wǎng)絡(luò)接口名,如eth0和eth1 |
up | 激活指定的網(wǎng)絡(luò)接口卡 |
down | 關(guān)閉指定的網(wǎng)絡(luò)接口 |
broadcastaddress | 設(shè)置接口的廣播地址 |
pointopoint | 啟用點(diǎn)對點(diǎn)方式 |
address | 設(shè)置指定接口設(shè)備的IP地址 |
netmaskaddress | 設(shè)置接口的子網(wǎng)掩碼 |
(4)使用實(shí)例。
首先,在本例中使用ifconfig的第一種格式來查看網(wǎng)絡(luò)接口配置情況。
[root@localhost~]#ifconfig
eth0Linkencap:EthernetHWaddr00:08:02:E0:C1:8A
inetaddr:192.168.1.70Bcast:192.168.1.255
Mask:255.255.255.0
inet6addr:fe80::208:2ff:fee0:c18a/64Scope:Link
UPBROADCASTRUNNINGMULTICASTMTU:1500Metric:1
RXpackets:26931errors:0dropped:0overruns:0frame:0
TXpackets:3209errors:0dropped:0overruns:0carrier:0
collisions:0txqueuelen:1000
RXbytes:6669382(6.3MiB)TXbytes:321302(313.7KiB)
Interrupt:11
loLinkencap:LocalLoopback
inetaddr:127.0.0.1Mask:255.0.0.0
inet6addr:::1/128Scope:Host
UPLOOPBACKRUNNINGMTU:16436Metric:1
RXpackets:2537errors:0dropped:0overruns:0frame:0
TXpackets:2537errors:0dropped:0overruns:0carrier:0
collisions:0txqueuelen:0
RXbytes:2093403(1.9MiB)TXbytes:2093403(1.9MiB)
可以看出,使用ifconfig的顯示結(jié)果中詳細(xì)列出了所有活躍接口的IP地址、硬件地址、廣播地址、子網(wǎng)掩碼、回環(huán)地址等。
[root@localhostworkplace]#ifconfigeth0
eth0Linkencap:EthernetHWaddr00:08:02:E0:C1:8A
inetaddr:192.168.1.70Bcast:192.168.1.255Mask:255.255.255.0
inet6addr:fe80::208:2ff:fee0:c18a/64Scope:Link
UPBROADCASTRUNNINGMULTICASTMTU:1500Metric:1
RXpackets:27269errors:0dropped:0overruns:0frame:0
TXpackets:3212errors:0dropped:0overruns:0carrier:0
collisions:0txqueuelen:1000
RXbytes:6698832(6.3MiB)TXbytes:322488(314.9KiB)
Interrupt:11
在此例中,通過指定接口顯示出對應(yīng)接口的詳細(xì)信息。另外,用戶還可以通過指定參數(shù)“-a”來查看所有接口(包括非活躍接口)的信息。
接下來的示例指出了如何使用ifconfig的第二種格式來改變指定接口的網(wǎng)絡(luò)參數(shù)配置。
[root@localhost~]#ifconfigeth0down
[root@localhost~]#ifconfig
loLinkencap:LocalLoopback
inetaddr:127.0.0.1Mask:255.0.0.0
inet6addr:::1/128Scope:Host
UPLOOPBACKRUNNINGMTU:16436Metric:1
RXpackets:1931errors:0dropped:0overruns:0frame:0
TXpackets:1931errors:0dropped:0overruns:0carrier:0
collisions:0txqueuelen:0
RXbytes:2517080(2.4MiB)TXbytes:2517080(2.4MiB)
在此例中,通過將指定接口的狀態(tài)設(shè)置為DOWN,暫時(shí)停止該接口的工作。
[root@localhost~]#ifconfigeth0210.25.132.142netmask255.255.255.0
[root@localhost~]#ifconfig
eth0Linkencap:EthernetHWaddr00:08:02:E0:C1:8A
inetaddr:210.25.132.142Bcast:210.25.132.255Mask:255.255.255.0
inet6addr:fe80::208:2ff:fee0:c18a/64Scope:Link
UPBROADCASTRUNNINGMULTICASTMTU:1500Metric:1
RXpackets:1722errors:0dropped:0overruns:0frame:0
TXpackets:5errors:0dropped:0overruns:0carrier:0
collisions:0txqueuelen:1000
RXbytes:147382(143.9KiB)TXbytes:398(398.0b)
Interrupt:11
…
從上例可以看出,ifconfig改變了接口eth0的IP地址、子網(wǎng)掩碼等,在之后的ifconfig查看中可以看出確實(shí)發(fā)生了變化。
(5)使用說明。
用ifconfig命令配置的網(wǎng)絡(luò)設(shè)備參數(shù)不重啟就可生效,但在機(jī)器重新啟動(dòng)以后將會(huì)失效,除非在網(wǎng)絡(luò)接口配置文件中進(jìn)行修改。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論