嵌入式开发中常用的命令

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个斜线之前的目录;

嵌入式Linux应用开发完全手册读书笔记——常用的命令的更多相关文章

  1. 嵌入式Linux应用开发完全手册读书笔记——交叉编译工具选项说明

    交叉编译工具选项说明 arm-linux-gcc 一个c/c++文件要变成可执行文件需要4步:预处理 -> 编译 -> 汇编 -> 链接: 在使用arm-linux-gcc时的常用选 ...

  2. 嵌入式linux应用开发完全手册学习笔记一

    2015.3.25星期三 晴 有两个星期没写学习日记了,找个时间把这段时间做的电子词典和ARM小项目总结一下. 下面的知识点总结,U-BOOT:参考PDF文档:嵌入式linux应用开发完全手册 当虚拟 ...

  3. 嵌入式Linux应用开发完全手册之环境搭建

    @ 目录 0.下载源配置 1.电脑BIOS启动虚拟化 2.linux网卡查看与IP设置 3.windows NAT虚拟网络配置 4.修改 Ubuntu 的 mountd 端口 5.vim设置 6.Mo ...

  4. 驱动开发学习笔记. 0.06 嵌入式linux视频开发之预备知识

    驱动开发读书笔记. 0.06  嵌入式linux视频开发之预备知识 由于毕业设计选择了嵌入式linux视频开发相关的项目,于是找了相关的资料,下面是一下预备知识 UVC : UVC,全称为:USB v ...

  5. 嵌入式Linux驱动开发日记

    嵌入式Linux驱动开发日记 主机硬件环境 开发机:虚拟机Ubuntu12.04 内存: 1G 硬盘:80GB 目标板硬件环境 CPU: SP5V210 (开发板:QT210) SDRAM: 512M ...

  6. Linux内核设计与实现 读书笔记 转

    Linux内核设计与实现  读书笔记: http://www.cnblogs.com/wang_yb/tag/linux-kernel/ <深入理解LINUX内存管理> http://bl ...

  7. 《The Linux Command Line》 读书笔记02 关于命令的命令

    <The Linux Command Line> 读书笔记02 关于命令的命令 命令的四种类型 type type—Indicate how a command name is inter ...

  8. Linux Shell脚本攻略 读书笔记

    Linux Shell脚本攻略 读书笔记 这是一本小书,总共253页,但内容却很丰富,书中的示例小巧而实用,对我这样总是在shell门前徘徊的人来说真是如获至宝:最有价值的当属文本处理,对这块我单独整 ...

  9. 如何使用eclipse进行嵌入式Linux的开发

    如何使用eclipse进行嵌入式Linux的开发 作者:曾宏安,华清远见嵌入式学院高级讲师. 如何使用eclipse进行嵌入式Linux的开发 习惯了在windows环境下开发的程序员在转到Linux ...

随机推荐

  1. Anaconda+tensorflow(不用创建虚拟环境)

    网上大部分教程都是:创建tensorflow虚拟环境(conda create -n tensorflow python=3.6),然后在虚拟环境中pip install tensorflow,但是每 ...

  2. leetcode 将一个二维矩阵进行90度旋转

    import numpy as np import math if __name__ == '__main__': def rotate(matrix): n = len(matrix[0]) for ...

  3. Python使用hashlib模块做字符串加密

    #-*- encoding:gb2312 -*- import hashlib a = "a test string" print 'md5 = %s' % (hashlib.md ...

  4. 100% 加速 WebSAMS 3.0 (轉載)

    今日已經是WebSAMS Upgrade 的最後一日,已經有99.8% 學校成功upgrade WebSAMS 3.0.但有學校向我們反映WebSAMS 3.0 比2.0 慢,經過我們的Enginee ...

  5. List的add方法与addAll方法的区别、StringBuffer的delete方法与deleteCharAt的区别

    List的add方法与addAll方法 区别 add add是将传入的参数作为当前List中的一个Item存储,即使你传入一个List也只会另当前的List增加1个元素 addAll addAll是传 ...

  6. elasticsearch基本概念理解+elasticsearch 的shards unassigned处理方法 -- 最佳运维实践 - 集群规划

    1.es与MySQL的概念对比 2.概念理解 2.1 Index : 一个索引即是文档的集合 2.2 Document : 一个文档即是一个可被索引的基础单元信息,一条记录: 2.3 Replicas ...

  7. 剑指offer35:数组中的逆序对

    1 题目描述 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对.输入一个数组,求出这个数组中的逆序对的总数P.并将P对1000000007取模的结果输出. 即输出P%10 ...

  8. FastAdmin

    FastAdmin是一款基于ThinkPHP5+Bootstrap的极速后台开发框架. 感觉挺好用的. 开发文档https://doc.fastadmin.net/docs/index.html 根据 ...

  9. Linux 多命令语句与重定向

    多命令语句 Linux中我们在shell输入命令一般是一条一条执行,但是我们同样可以用一行语句写出多命令,下面就举出几个常见的方法 “;”分号用法 方式:command1 ; command2 用;号 ...

  10. 二进制协议gob和msgpack介绍

    二进制协议gob和msgpack介绍 本文主要介绍二进制协议gob及msgpack的基本使用. 最近在写一个gin框架的session服务时遇到了一个问题,Go语言中的json包在序列化空接口存放的数 ...