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 -ruNa xc.orig/config/cf/Makefile xc.bsd/config/cf/Makefile
以下是patch文件的头标记。
--- xc.orig/config/cf/Imake.cf Fri Jul 30 12:45:47 1999
+++ xc.new/config/cf/Imake.cf Fri Jan 21 13:48:44 2000
这个patch如果直接应用,那么它会去找"xc.orig/config/cf"目录下的Makefile文件,假如用户源码树的根目录是缺省的xc而不是xc.orig,则除了可以把xc.orig移到xc处之外,还有什么简单的方法应用此patch吗?NUM就是为此而设的:patch会把目标路径名剥去NUM个"/",也就是说,在此例中,-p1的结果是config/cf/Makefile,-p2的结果是cf/Makefile。因此,在此例中就可以用命令cd xc;patch _p1 < /pathname/xxx.patch完成操作。
(4)使用实例。
[root@localhost david]# diff hello1.c hello2.c >hello1.patch
[root@localhost david]# patch ./hello1.c < hello1.patch
patching file ./hello1.c
[root@localhost david]# vi hello1.c
#include <stdio.h>
void main()
{
printf("Hello!This is your home!\n");
}
在该实例中,由于patch文件和源文件在同一目录下,因此直接给出了目标文件的目录,在应用了patch之后,hello1.c的内容变为了hello2.c的内容。
(5)使用说明。
n 如果patch失败,patch命令会把成功的patch行补上其差异,同时(无条件)生成备份文件和一个.rej文件。.rej文件里没有成功提交的patch行,需要手工打上补丁。这种情况在源码升级的时候有可能会发生。
n 在多数情况下,patch程序可以确定补丁文件的格式,当它不能识别时,可以使用-c、-e、-n或者-u选项来指定输入的补丁文件的格式。由于只有GNU patch可以创建和读取新版上下文格式的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 |
Linux Shell 用户切换 su useradd 操作系统 相关文章:
- REDIce-Linux--灵活的实时Linux内核(11-12)
- linux文件系统基础(02-09)
- Linux标准趋向统一(11-12)
- linux基础技术(02-09)
- LINUX的目录树(02-09)
- 在Windows下启动Linux(02-09)
