嵌入式Linux应用开发完全手册读书笔记——常用的命令
嵌入式开发中常用的命令
grep命令
用法:grep [option] PATTERN [FILE...]
例如:
-
在内核目录下查找包含“request_irq”字样的文件
grep "request_irq" * -R
注:*表示查找当前目录下的所有文件、目录,-R表示递归查找子目录;
-
在内核的kernel目录下查找包含“request_irq”字样的文件
grep "request_irq" kernel -R
注:kernel表示当前目录下的kernel子目录下查找,-R表示递归查找它的所有目录;
find命令
用法:find [-H] [-L] [-P] [path...] [expression]
例如:
-
在内核目录下查找文件名包含“fb”字样的文件
find -name "*fb*"
-
在内核的drivers/net目录下查找文件名中包含“fb”字样的文件
find drivers/net -name "*fb*"
注:drivers/net必须是find命令的第一个参数;
tar命令
该命令具有打包、解包、压缩和解压缩等4种功能,常用的压缩、解压缩方式有两种:gzip和bzip2;
一般而言,以".gz"、"z"结尾的文件是用gzip方式进行压缩的,以".bz2"结尾的文件是用bzip2方式进行压缩的,后缀名中有"tar"字样时表示这是一个文件包;
tar命令有5个常用的选项:
选项 | 功能 |
---|---|
c | 表示创建,用来生成文件包 |
x | 表示提取,从文件包中提取文件 |
z | 使用gzip方式进行处理,它与“c”结合就表示压缩,与“x”结合就表示解压缩 |
j | 使用bzip2方式进行处理,它与“c”结合就表示压缩,与“x”结合就表示解压缩 |
f | 表示文件,后面接着一个文件名 |
diff和patch命令
diff命令常用来比较文件、目录,也可以用来制作补丁文件;
常用选项如下:
选项 | 功能 |
---|---|
-u | 表示在比较结果中输出上下文中一些相同的行,这有利于人工定位 |
-r | 表示递归比较各个子目录下的文件 |
-N | 将不存在的文件当做空文件 |
-w | 忽略对空格的比较 |
-B | 忽略对空行的比较 |
例如:
假设linux-2.6.22.6目录中是原始的内核,linux-2.6.22.6_ok目录中是修改过的内核,可以使用以下命令制作补丁文件linux-2.6.22.6_ok.diff(原始目录在前,修改过的目录在后),命令如下:
diff -urNwB linux-2.6.22.6 linux-2.6.22.6_ok > linux-2.6.22.6_ok.diff
由于linux-2.6.22.6是标准的代码,可以从网上自由下载,要发布linux-2.6.22.6_ok中所做的修改时,只需要提供补丁文件linux-2.6.22.6_ok.diff(通常是很小的);
patch命令是用来打补丁,就是依据补丁文件来修改原始文件;
比如对上面的例子,可以使用以下命令将补丁文件linux-2.6.22.6_ok.diff应用到原始目录linux-2.6.22.6中,假设linux-2.6.22.6_ok.diff和linux-2.6.22.6位于同一个目录下,命令如下:
cd linux-2.6.22.6
patch -p1 < ../linux-2.6.22.6_ok.diff
patch命令中最重要的选项是“-pn”,补丁文件中指明了要修改的文件的路径,“-pn”则表示忽略路径中第n个斜线之前的目录;