1、第4章 基于ARM9和Linux嵌入式系统设计,4.1 嵌入式Linux的开发环境 4.2 嵌入式Linux操作系统常用命令 4.3 Linux开发工具GUN gcc的使用 4.4 GNU make命令和makefile 文件 4.5 GDB调试器简介 4.6 嵌入式Linux下C语言编程 文件的操作 4.7 嵌入式Linux引导程序 4.8 Linux系统在ARM平台上的移植 4.9 综合训练Linux系统及应用程序的烧写,4.1 嵌入式Linux的开发环境,4.1.1 嵌入式Linux开发环境建立 嵌入式LINUX 开发环境有几个方案: 1、基于PC 机WINDOWS 操作系统下的CYGW
2、IN; 2、在WINDOWS 下安装虚拟机后,再在虚拟机中安 装LINXUX 操作系统; 3、直接安装LINUX 操作系统。,4.1.2 嵌入式Linux开发的一般过程,1.了解硬件 ; 2.准备需要使用的Linux工具以及其他工具 ; 3.安排内存地址 ; 4.编写启动代码和机器相关代码 ; 5.编写驱动程序; 6.C库、GUI和系统程序的移植; 7.调试 .,4.2 嵌入式Linux操作系统常用命令,命令形式如下: command option source file(s) target file 1登录和退出 Linux启动后,给出login命令,等待用户登录。 Login: Passw
3、ord: 使用logout命令退出外壳。 2关机或重新启动的shutdown命令 $ shutdown h now 要求系统立即关机 $ shutdown now 要求系统立即关机 $ shutdown +5 要求5分钟后关机 $ shutdown r now 要求立即关机系统并重新启动,3联机帮助 (1)显示帮助手册man 选项 命令名称 常用选项 说 明 -S 根据章节显示,由于一个命令名称可能会有很多类别; -f 只显示出命令的功能而不显示其中详细的说明文件; -w 不显示手册页,只显示将被格式化和显示的文件所在位置; -a 显示所有的手册页,而不是只显示第一个; -E 在每行的末尾显示
4、$符号。 例如:要了解关于这个命令的更多信息,可以使用: $ man echo,(2)系统帮助文档 help命令用于查看所有Shell命令。用户可以通过该命令寻求Shell命令的用法,只需在所查找的命令后输入help命令,就可以看到所查命令的内容了。例如:查看cd命令的使用方法。$ cd -help,(3)whereis命令 whereis命令来查询某个命令存在哪一个目录下。命令格式:whereis 选项 命令名。 说明:不加选项可直接使用whereis命令。 whereis命令的常用选项如下: 章节 说 明 -b 只查找二进制文件 -m 查找主要文件 -s 查找来源 -u 查找不常用的记录文
5、件 例如:查找cd命令二进制文件在什么目录下。命令: $ whereis -b cd,4更改账号密码 使用passwd命令来设置新用户的口令。在设置口令之后,账号即能正常工作。 语法:passwd Old password: New password: Retype new password:,5列出文件或目录 ls 选项 文件目录列表 ls命令中的常用选项如下:-a:显示所有文件及目录,包括以“.”开始的隐藏文件在内的所有文件名; -c:按列输出,纵向排序; -x:按列输出,横向排序; -l:列出目录下文件权限、所有者、文件大小、修改时间及名称; lg 同上,并显示出文件的所有者工作组名;
6、-t :根据文件建立时间的先后次序列出; -A :同 -a ,但不列出 “.“ (目前目录) 及 “ (父目录); -R:递归显示下层子目录即显示出目录下以及所有子目录文件名; -help:显示帮助信息; -version:显示版本信息。,6改变工作目录 语法:cd name 其中name是目录名、路径或目录缩写。cd除了有切换目录的功能外,还有一个功能就是,不管在哪个目录内,只要输入cd命令,不加任何参数,即可回到用户目录内。 $ cd tony 切换到当前目录下的tony子目录 $ cd 切换到上一层目录 $ cd / 切换到系统根目录 $ cd 切换到用户主目录(或运行cd 命令也可以)
7、 $ cd /usr/bin 切换到/usr/bin目录,7. 建立新目录mkdir的命令格式如下: mkdir -m模式 -p目录名 目录 命令中的参数说明如下: m模式:在建立目录时把按模式指定设置目录权限。该目录的权限分为:目录所有者的权限、组中其他人对目录的权限和系统中其他人对目录的权限。这三个权限分别用三个数字之和来表示:对目录的读权限是4、写权限是2、执行权限是1。 -p目录名:建立所有不存在父目录的目录。 目录:要建立的目录。,8删除文件或目录 rm 选项 文件列表 常用选项 说 明 -r 删除文件列表中指定的目录,若不用此标志则不删除目录 -I 指定交互模式。在执行删除前提示确
8、认。任何以Y开始的响应都表示肯定;其他则表示否定。 -f 指定强行删除模式。本标志强迫删除,不用提示。 -V 在删除前回显文件名。 - 指明所有选项结束。用于删除一个文件名与某一选项相同的文件。例如:假定偶然建立了名为-f的文件,又打算删除它,命令rm -f不起任何作用,因为-f被解释成标志而不是文件名;而命令rm - -f能成功地删除文件。,9删除目录的rmdir命令 rmdir 命令是用来删除目录的,一般情况下要删除的目录必须为空目录,如果所给的目录不为空,系统会报告错误。该命令的语法格式如下:rmdir -p 目录列表 命令中的参数说明如下: -p:在删除目录表指定的目录后,若父目录为空
9、,则rmdir也删除父目录。状态信息显示什么被删除,什么没被删除。 目录列表:空格分隔的目录名列表。要删除的目录必须为空。,10显示当前目录 执行pwd命令形式如下: pwd 11改变当前工作目录 该命令使用的语法格式如下: Cd 目录名 命令中的参数说明如下:目录名:改变到所指定的目录名。若没有指定目录,就返回到用户主目录(在HOME环境变量中指定)。,12复制文件的cp命令 Cp 选项 源文件 目标文件 Cp 选项 源文件组 目标目录源文件:要拷贝的文件。 目标文件:目标名。也可以是目录名,这种情况下,源文件名作为目标文件名,而文件放在该目录下。 源文件组:要拷贝文件的由空格分隔的列表。
10、目标目录:目标目录。 常用命令的选项如下: 常用选项 说 明 -a 在备份中保持尽可能多的源文件结构和属。 -b 将要覆盖或删除文件的备份。 -f 删除已存在的目标文件。 -I 提示是否覆盖已存在的目标文件。 -p 保持原先文件的所有者、组权限和时间标志 -r 递归拷贝目录,把所有非目录文件当普通文件拷贝。 -R 递归拷贝目录。,13. 移动或更改文件、目录名称mv -f -i 文件1 文件2mv -f -i 目录1 目录2mv -f -i 文件列表 目录 命令中的参数说明如下: -f:通常情况下,目标文件存在但用户没有写权限时,mv会给出提示。本选项会使mv命令执行移动而不给出提示。 -i:
11、交互模式,当移动的目录已存在同名的目标文件名时,用覆盖方式写文件,但在写入之前给出提示。 文件1: 源文件名。 文件2:目标文件名(新文件名)。 目录1:源目录名。 目录2:目标目录名(新目录名)。 文件列表:用空格分隔的文件名列表。把列表中的文件移动到一个新目录。 目录:目标目录。,14分页查看文件内容用户可以使用more命令,让画面显示满一页时暂停,此时可按空格键继续显示下一个画面,或按Q键停止显示。其命令格式如下:more 文件名 显示文字文件的内容; 或cat文件名| more 逐页显示文字文件的内容; 或ls al | more 显示满一个画面便停止,按空格键继续显示下一画面,按Q键
12、跳离。,15查看文件内容显示文本文件内容的命令是cat命令,用来将文件的内容显示到终端上,其命令语法如下: cat 选项 文件列表 命令中的参数说明如下: -b 计算所有非空输出行,开始为1。 -e 在每行末尾显示$符号。 -n 计算所有输出行,开始为1。 -s 将相连的多个空行用单一空行代替。,14. 查找文件内容 grep 选项 匹配字符串 文件列表 文件列表:需查找的文件列表匹配字符串:希望在文件中查到的串。选项: 说明 -v 列出不匹配串或正则表达式的行。 -c 对匹配的行计数。 -l 只显示包含匹配的文件的文件名。 -h 抑制包含匹配文件的文件名的显示。-n 每个匹配行只按照相对的行
13、号显示。 -i 产生不区分大小写的匹配,缺省状态是区分大小写。,17排序命令 命令的语法格式如下: sort 选项 文件说明:sort命令对指定文件中所有的行进行排序,并将结果显示在标准输出上。如不指定输入文件或使用“- ”,则表示排序内容来自标准输入。,18. 比较文件内容的命令 (1)comm命令 如果想对两个有序的文件进行比较,可以使用comm命令。该命令的使用语法如下: comm - 123 file1 file2说明:该命令是对两个已经排好序的文件进行比较。其中file1和file2是已排序的文件。comm读取这两个文件,然后生成三列输出:仅在file1中出现的行;仅在file2中出
14、现的行;在两个文件中都存在的行。如果文件名用“- ”,则表示从标准输入读取。,(2)diff命令 diff命令用于比较两个文件内容的不同,其命令语法格式如下: diff 参数 原文件 目标文件 参数 说明 a 将所有文件当做文本文件来处理 b 忽略空格造成的不同 B 忽略空行造成的不同 q 只报告什么地方不同,不报告具体的不同信息 H 利用试探法加速对大文件的搜索 I 忽略大小写的变化 L 用pr对输出进行分页 R 在比较目录时比较所有的子目录 S 两个文件相同时才报告 v 在标准输出上输出版本信息并退出,19. 命令的输入和输出 (1) 输入重定向 输入重定向是指把命令(或可执行程序)的标准
15、输入重定向到指定的文件中。重定向操作符使用“文件名可以使用追加重定向操作符“”,其使用语法形式为: 命令文件名,(3) 管道 管道是把一系列命令连接起来,即第一个命令的输出会作为第二个命令的输入通过管道传给第二个命令,第二个命令的输出又会作为第三个命令的输入,以此类推。显示在屏幕上的是管道行中最后一个命令的输出(如果命令行中未使用输出重定向)。 (4) 命令替换 命令替换和重定向有些相似,但区别在于命令替换是将一个命令的输出作为另外一个命令的参数。常用命令格式为: command1 command2 其中,command2的输出将作为command1的参数。需要注意的是这里的符号,被它括起来的
16、内容将作为命令执行,执行后的结果作为command1的参数。,例如: $ cd pwd 该命令将pwd命令列出的目录作为cd命令的参数,结果仍然是停留在当前目录下。 重导与管道举例: $ ls al dir.txt 将ls al命令执行结果输出到dir.txt文件; $ cat data1.txt data2.txt 将data1.txt内容附加到data2.txt 文件之后; $ ls | grep conf 搜索并显示ls命令运行结果中含有“conf”字符串的行; $ yes | rm r mydir 利用yes命令重复输出“y”字符的特性,将结果传给rm命令,如此即可避免重复输入“y”。
17、,20. 链接文件的命令 ln 选项 目标 链接名 ln 选项 目标 目录 链接有两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。建立硬链接时,链接文件和被链接文件必须位于同一个文件系统中,并且不能建立指向目录的硬链接。而对符号链接,则不存在这个问题。默认情况下,ln产生硬链接。 例:$ ln - s lunch /home/xu 用户为当前目录下的文件lunch创建了一个符号链接/home/xu。,21. 改变文件或目录权限 chmod 选项 文件和目录列表 chmod命令的常用选项如下: -c表示只有在文件的权限确实改变时才进行详细说明;
18、-v表示详细说明权限的变化; -R表示递归改变目录及其内容的权限。 chmod命令支持两种文件权限设定的方法: (1)使用字符串设置权限;(2)使用八进制数设置权限 另外,文件和目录的权限还可用八进制数字模式来表示。三个八进制数字分别代表ugo的权限。执行权、读权和写权所对应的数值分别是1,2和4。 若要rwx属性则4+2+1=7; 若要rw-属性则4+2=6; 若要r-x属性则4+1=5。,22改变文件和目录的所有权 chown 选项 用户 文件和目录列表 用户:是用户号或文件/etc/passwd中出现的用户名。 文件和目录列表:用于重新指定所有权的用空格分隔的文件和目录列表。 chown
19、命令的常用选项如下: 常用选项 说 明 -c 只有在文件的权限确实改变时才进行详细说明。 -v 详细说明权限的变化。 -R 递归改变目录及其内容的权限。,23文件压缩 (1) gzip压缩文件 gzip 选项 压缩(解压缩)的文件名 gzip命令各选项的说明如下: 常用选项 说明 -c 将输出写到标准输出上,并保留原有文件。 -d 将压缩文件解压。 -l 对每个压缩文件,显示压缩文件的大小、未压缩文件的大小、压缩比、未压缩文件的名字等详细信息 -r 递归式地查找指定目录并压缩其中的所有文件或者是解压缩。 -t 测试,检查压缩文件是否完整。 -v 对每一个压缩和解压的文件,显示文件名和压缩比。,(2)文件打包tar tar 主选项+辅选项 文件或者目录 常用选项 说明 -c 创建新的档案文件。备份一个目录或是一些文件。 -x 从档案文件中释放文件。 -r 把要存档的文件追加到档案文件的未尾。 -t 列出档案文件的内容,查看已经备份了哪些文件。 tar命令的辅助选项的常用选项如下: F 使用档案文件或设备,这个选项通常是必选的。 K 保存已经存在文件。在还原时,遇到相同文件,不进行覆盖。 M 在还原文件时,把所有文件的修改时间设定为现在。 V 报告tar处理的文件信息。如无此选项,tar不报告文件信息。 Z 用gzip来压缩/解压缩文件,