Linux基礎命令之: Linux常用命令
2.patch
(1)作用。
命令跟diff配合使用,把生成的補丁文件應用到現有代碼上。
(2)格式。
patch[選項][待patch的文件[patch文件]]。
常用的格式為:patch-pnum[patch文件],其中的-pnum是選項參數,在后面會(huì )詳細介紹。
(3)常見(jiàn)參數。
patch主要選項參數如表2.27所示。
表2.27 patch命令常見(jiàn)參數列表
選項 | 參數含義 |
-b | 生成備份文件 |
-d | 把dir設置為解釋補丁文件名的當前目錄 |
-e | 把輸入的補丁文件看作是ed腳本 |
-pnum | 剝離文件名中的前NUM個(gè)目錄部分 |
-t | 在執行過(guò)程中不要求任何輸入 |
-v | 顯示patch的版本號 |
以下對-punm選項進(jìn)行說(shuō)明。
首先查看以下示例(對分別位于xc.orig/config/cf/Makefile和xc.bsd/config/cf/Makefile的文件使用patch命令)。
diff-ruNaxc.orig/config/cf/Makefilexc.bsd/config/cf/Makefile
以下是patch文件的頭標記。
---xc.orig/config/cf/Imake.cfFriJul3012:45:471999
+++xc.new/config/cf/Imake.cfFriJan2113:48:442000
這個(gè)patch如果直接應用,那么它會(huì )去找“xc.orig/config/cf”目錄下的Makefile文件,假如用戶(hù)源碼樹(shù)的根目錄是缺省的xc而不是xc.orig,則除了可以把xc.orig移到xc處之外,還有什么簡(jiǎn)單的方法應用此patch嗎?NUM就是為此而設的:patch會(huì )把目標路徑名剝去NUM個(gè)“/”,也就是說(shuō),在此例中,-p1的結果是config/cf/Makefile,-p2的結果是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文件和源文件在同一目錄下,因此直接給出了目標文件的目錄,在應用了patch之后,hello1.c的內容變?yōu)榱薶ello2.c的內容。
(5)使用說(shuō)明。
n 如果patch失敗,patch命令會(huì )把成功的patch行補上其差異,同時(shí)(無(wú)條件)生成備份文件和一個(gè).rej文件。.rej文件里沒(méi)有成功提交的patch行,需要手工打上補丁。這種情況在源碼升級的時(shí)候有可能會(huì )發(fā)生。
n 在多數情況下,patch程序可以確定補丁文件的格式,當它不能識別時(shí),可以使用-c、-e、-n或者-u選項來(lái)指定輸入的補丁文件的格式。由于只有GNUpatch可以創(chuàng )建和讀取新版上下文格式的patch文件,因此,除非能夠確定補丁所面向的只是那些使用GNU工具的用戶(hù),否則應該使用舊版上下文格式來(lái)生成補丁文件。
n 為了使patch程序能夠正常工作,需要上下文的行數至少是2行(即至少是有一處差別的文件)。
2.1.5網(wǎng)絡(luò )相關(guān)命令
Linux下網(wǎng)絡(luò )相關(guān)的常見(jiàn)命令如表2.28所示,本書(shū)僅以ifconfig和ftp為例進(jìn)行說(shuō)明。
表2.28 Linux下網(wǎng)絡(luò )相關(guān)命令
選項 | 參數含義 | 常見(jiàn)選項格式 |
netstat | 顯示網(wǎng)絡(luò )連接、路由表和網(wǎng)絡(luò )接口信息 | netstat[-an] |
nslookup | 查詢(xún)一臺機器的IP地址和其對應的域名 | nslookup[IP地址/域名] |
finger | 查詢(xún)用戶(hù)的信息 | finger[選項][使用者][用戶(hù)@主機] |
ping | 用于查看網(wǎng)絡(luò )上的主機是否在工作 | ping[選項]主機名/IP地址 |
ifconfig | 查看和配置網(wǎng)絡(luò )接口的參數 | ifconfig[選項][網(wǎng)絡(luò )接口] |
ftp | 利用ftp協(xié)議上傳和下載文件 | 在本節中會(huì )詳細講述 |
telnet | 利用telnet協(xié)議訪(fǎng)問(wèn)主機 | telent[選項][IP地址/域名] |
ssh | 利用ssh登錄對方主機 | ssh[選項][IP地址] |
1.ifconfig
(1)作用。
用于查看和配置網(wǎng)絡(luò )接口的地址和參數,包括IP地址、網(wǎng)絡(luò )掩碼、廣播地址,它的使用權限是超級用戶(hù)。
(2)格式。
ifconfig有兩種使用格式,分別用于查看和更改網(wǎng)絡(luò )接口。
①ifconfig[選項][網(wǎng)絡(luò )接口]:用來(lái)查看當前系統的網(wǎng)絡(luò )配置情況。
②ifconfig網(wǎng)絡(luò )接口[選項]地址:用來(lái)配置指定接口(如eth0、eth1)的IP地址、網(wǎng)絡(luò )掩碼、廣播地址等。
(3)常見(jiàn)參數。
ifconfig第二種格式的常見(jiàn)選項參數如表2.29所示。
表2.29 ftp命令選項的常見(jiàn)參數列表
選項 | 參數含義 |
-interface | 指定的網(wǎng)絡(luò )接口名,如eth0和eth1 |
up | 激活指定的網(wǎng)絡(luò )接口卡 |
down | 關(guān)閉指定的網(wǎng)絡(luò )接口 |
broadcastaddress | 設置接口的廣播地址 |
pointopoint | 啟用點(diǎn)對點(diǎn)方式 |
address | 設置指定接口設備的IP地址 |
netmaskaddress | 設置接口的子網(wǎng)掩碼 |
(4)使用實(shí)例。
首先,在本例中使用ifconfig的第一種格式來(lái)查看網(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的顯示結果中詳細列出了所有活躍接口的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
在此例中,通過(guò)指定接口顯示出對應接口的詳細信息。另外,用戶(hù)還可以通過(guò)指定參數“-a”來(lái)查看所有接口(包括非活躍接口)的信息。
接下來(lái)的示例指出了如何使用ifconfig的第二種格式來(lái)改變指定接口的網(wǎng)絡(luò )參數配置。
[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)
在此例中,通過(guò)將指定接口的狀態(tài)設置為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)使用說(shuō)明。
用ifconfig命令配置的網(wǎng)絡(luò )設備參數不重啟就可生效,但在機器重新啟動(dòng)以后將會(huì )失效,除非在網(wǎng)絡(luò )接口配置文件中進(jìn)行修改。
linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)
評論