Linux基础命令之: Linux常用命令
2.patch
(1)作用。
命令跟diff配合使用,把生成的补丁文件应用到现有代码上。
(2)格式。
patch[选项][待patch的文件[patch文件]]。
常用的格式为:patch-pnum[patch文件],其中的-pnum是选项参数,在后面会详细介绍。
(3)常见参数。
patch主要选项参数如表2.27所示。
表2.27 patch命令常见参数列表
选项 | 参数含义 |
-b | 生成备份文件 |
-d | 把dir设置为解释补丁文件名的当前目录 |
-e | 把输入的补丁文件看作是ed脚本 |
-pnum | 剥离文件名中的前NUM个目录部分 |
-t | 在执行过程中不要求任何输入 |
-v | 显示patch的版本号 |
以下对-punm选项进行说明。
首先查看以下示例(对分别位于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
这个patch如果直接应用,那么它会去找“xc.orig/config/cf”目录下的Makefile文件,假如用户源码树的根目录是缺省的xc而不是xc.orig,则除了可以把xc.orig移到xc处之外,还有什么简单的方法应用此patch吗?NUM就是为此而设的:patch会把目标路径名剥去NUM个“/”,也就是说,在此例中,-p1的结果是config/cf/Makefile,-p2的结果是cf/Makefile。因此,在此例中就可以用命令cdxc;patch_p1/pathname/xxx.patch完成操作。
(4)使用实例。
[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);
}
在该实例中,由于patch文件和源文件在同一目录下,因此直接给出了目标文件的目录,在应用了patch之后,hello1.c的内容变为了hello2.c的内容。
(5)使用说明。
n 如果patch失败,patch命令会把成功的patch行补上其差异,同时(无条件)生成备份文件和一个.rej文件。.rej文件里没有成功提交的patch行,需要手工打上补丁。这种情况在源码升级的时候有可能会发生。
n 在多数情况下,patch程序可以确定补丁文件的格式,当它不能识别时,可以使用-c、-e、-n或者-u选项来指定输入的补丁文件的格式。由于只有GNUpatch可以创建和读取新版上下文格式的patch文件,因此,除非能够确定补丁所面向的只是那些使用GNU工具的用户,否则应该使用旧版上下文格式来生成补丁文件。
n 为了使patch程序能够正常工作,需要上下文的行数至少是2行(即至少是有一处差别的文件)。
2.1.5网络相关命令
Linux下网络相关的常见命令如表2.28所示,本书仅以ifconfig和ftp为例进行说明。
表2.28 Linux下网络相关命令
选项 | 参数含义 | 常见选项格式 |
netstat | 显示网络连接、路由表和网络接口信息 | netstat[-an] |
nslookup | 查询一台机器的IP地址和其对应的域名 | nslookup[IP地址/域名] |
finger | 查询用户的信息 | finger[选项][使用者][用户@主机] |
ping | 用于查看网络上的主机是否在工作 | ping[选项]主机名/IP地址 |
ifconfig | 查看和配置网络接口的参数 | ifconfig[选项][网络接口] |
ftp | 利用ftp协议上传和下载文件 | 在本节中会详细讲述 |
telnet | 利用telnet协议访问主机 | telent[选项][IP地址/域名] |
ssh | 利用ssh登录对方主机 | ssh[选项][IP地址] |
1.ifconfig
(1)作用。
用于查看和配置网络接口的地址和参数,包括IP地址、网络掩码、广播地址,它的使用权限是超级用户。
(2)格式。
ifconfig有两种使用格式,分别用于查看和更改网络接口。
①ifconfig[选项][网络接口]:用来查看当前系统的网络配置情况。
②ifconfig网络接口[选项]地址:用来配置指定接口(如eth0、eth1)的IP地址、网络掩码、广播地址等。
(3)常见参数。
ifconfig第二种格式的常见选项参数如表2.29所示。
表2.29 ftp命令选项的常见参数列表
选项 | 参数含义 |
-interface | 指定的网络接口名,如eth0和eth1 |
up | 激活指定的网络接口卡 |
down | 关闭指定的网络接口 |
broadcastaddress | 设置接口的广播地址 |
pointopoint | 启用点对点方式 |
address | 设置指定接口设备的IP地址 |
netmaskaddress | 设置接口的子网掩码 |
(4)使用实例。
首先,在本例中使用ifconfig的第一种格式来查看网络接口配置情况。
[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地址、硬件地址、广播地址、子网掩码、回环地址等。
[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
在此例中,通过指定接口显示出对应接口的详细信息。另外,用户还可以通过指定参数“-a”来查看所有接口(包括非活跃接口)的信息。
接下来的示例指出了如何使用ifconfig的第二种格式来改变指定接口的网络参数配置。
[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)
在此例中,通过将指定接口的状态设置为DOWN,暂时停止该接口的工作。
[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地址、子网掩码等,在之后的ifconfig查看中可以看出确实发生了变化。
(5)使用说明。
用ifconfig命令配置的网络设备参数不重启就可生效,但在机器重新启动以后将会失效,除非在网络接口配置文件中进行修改。
linux操作系统文章专题:linux操作系统详解(linux不再难懂)
评论