嵌入式Linux系统安装说明

上传人:枫** 文档编号:567617601 上传时间:2024-07-21 格式:PPT 页数:160 大小:3.72MB
返回 下载 相关 举报
嵌入式Linux系统安装说明_第1页
第1页 / 共160页
嵌入式Linux系统安装说明_第2页
第2页 / 共160页
嵌入式Linux系统安装说明_第3页
第3页 / 共160页
嵌入式Linux系统安装说明_第4页
第4页 / 共160页
嵌入式Linux系统安装说明_第5页
第5页 / 共160页
点击查看更多>>
资源描述

《嵌入式Linux系统安装说明》由会员分享,可在线阅读,更多相关《嵌入式Linux系统安装说明(160页珍藏版)》请在金锄头文库上搜索。

1、嵌入式嵌入式 Linux系统安装系统安装说明说明VMware VMware 虚拟机安装虚拟机安装虚拟虚拟linuxlinux好处:好处: linuxlinux的损坏不影响的损坏不影响的损坏不影响的损坏不影响windowswindows操作系统操作系统操作系统操作系统 双击双击VMware-workstation VMware-workstation 文件夹中的文件夹中的VMware-workstation-VMware-workstation-5.0.0-13124 5.0.0-13124 文件文件, ,按着提示一步一步的操作就可按着提示一步一步的操作就可3.1嵌入式嵌入式LINUXOS3.1

2、.1 LINUX OS 概述概述是是自自由由开开放放软软件件,用用户户可可以以通通过过网网络络或或者者其其他他途途径径免免费费获获得得,并并可可以以任任意意修改其源代码;修改其源代码;强强大大的的网网络络功功能能,体体现现在在对对internet internet 使使用用的的支支持持,LinuxLinux免免费费提提供供了了大大量量支支持持internetinternet的的软软件件;还还体体现现在在文文件件传传输输能能力力上上,通通过过一一些些命命令令完完成成内内部部信信息息或者文件的传输;还可以建立或者文件的传输;还可以建立webweb服务器等相关的网络工作站服务器等相关的网络工作站移移

3、植植性性好好,现现在在支支持持大大部部分分处处理理器器平平台台,例例如如:x86x86、armarm、ti ti、intel intel 、IBMIBM等等3.2安安装装Linux1启动虚拟机软件启动虚拟机软件 点击右方蓝字标示的点击右方蓝字标示的New Virtual machine New Virtual machine 图标图标处,该按钮,出现下示图面处,该按钮,出现下示图面按图示选择后,点击下一步按钮。出现下面图面,输入自己的虚拟按图示选择后,点击下一步按钮。出现下面图面,输入自己的虚拟机名和安装的位置机名和安装的位置. .点击下一步后,出现如下图面。直接选择默认选点击下一步后,出现如

4、下图面。直接选择默认选项就可以项就可以选选选选usehost-onlynetworkingusehost-onlynetworking(与(与(与(与windowswindows操作系统共存)操作系统共存)操作系统共存)操作系统共存)点击下一步,出现如下图面。对于磁盘空间来讲尽量要点击下一步,出现如下图面。对于磁盘空间来讲尽量要大些,大些,1010G G 以上为好,以上为好,点击完成即可。出现下面虚拟机界面,从界面中可以看点击完成即可。出现下面虚拟机界面,从界面中可以看出出Red Hat Linux Red Hat Linux 的所示窗面已经出现,但还没有直正安的所示窗面已经出现,但还没有直正

5、安装好装好linuxlinux,现在将现在将Red Hat 9.0 Red Hat 9.0 安装盘安入光驱中,点击安装盘安入光驱中,点击Star this virtual machine Star this virtual machine 虚拟机系统将自动检测光驱,进虚拟机系统将自动检测光驱,进行行Linux Linux 的安装的安装图3.1 boot提示窗口 2光盘介质的检测光盘介质的检测图3.2 光盘介质检测窗口 图3.3 “欢迎”窗口 3选择默认语言选择默认语言图3.4 语言选择窗口 4选择安装类型选择安装类型 在在在在接接接接下下下下来来来来的的的的“ “键键键键盘盘盘盘配配配配置置置

6、置” ”和和和和“ “鼠鼠鼠鼠标标标标配配配配置置置置” ”窗窗窗窗口口口口进进进进行行行行正正正正确确确确的的的的选选选选择择择择后后后后,就就就就进进进进入入入入如如如如图图图图3.53.5所所所所示示示示的的的的安安安安装装装装类类类类型选择窗口。型选择窗口。型选择窗口。型选择窗口。RedHatLinuxRedHatLinux提供了提供了提供了提供了“ “个人桌面个人桌面个人桌面个人桌面” ”、“ “工作工作工作工作站站站站” ”、“ “服务器服务器服务器服务器” ”和和和和“ “定制定制定制定制”4”4个选项,可以根据个选项,可以根据个选项,可以根据个选项,可以根据自己的实际需要选择相

7、应的安装类型。自己的实际需要选择相应的安装类型。自己的实际需要选择相应的安装类型。自己的实际需要选择相应的安装类型。 图3.5 安装类型选择窗口 ,选定制创建创建Linux分区分区图3.6 磁盘分区设置窗口,选自动分区 (1)自动分区)自动分区 如如如如果果果果是是是是全全全全新新新新的的的的计计计计算算算算机机机机,上上上上面面面面没没没没有有有有任任任任何何何何操操操操作作作作系系系系统统统统,建建建建议议议议使使使使用用用用自自自自动动动动分分分分区区区区功功功功能能能能,它它它它会会会会自自自自动动动动根根根根据据据据磁磁磁磁盘盘盘盘以及内存的大小,分配磁盘空间和以及内存的大小,分配磁

8、盘空间和以及内存的大小,分配磁盘空间和以及内存的大小,分配磁盘空间和SWAPSWAP空间。空间。空间。空间。(2)手动分区)手动分区如果硬盘上有其他操作系统或是需要保留其如果硬盘上有其他操作系统或是需要保留其如果硬盘上有其他操作系统或是需要保留其如果硬盘上有其他操作系统或是需要保留其他分区上的数据,建议采用他分区上的数据,建议采用他分区上的数据,建议采用他分区上的数据,建议采用DiskDruidDiskDruid程序进行程序进行程序进行程序进行手动分区。手动分区。手动分区。手动分区。 为为为为LinuxLinux建立文件分区可以有两种方法:一建立文件分区可以有两种方法:一建立文件分区可以有两种

9、方法:一建立文件分区可以有两种方法:一种是利用空闲的磁盘空间新建一个种是利用空闲的磁盘空间新建一个种是利用空闲的磁盘空间新建一个种是利用空闲的磁盘空间新建一个LinuxLinux分区;分区;分区;分区;另一种是编辑一个现有的分区,使它成为另一种是编辑一个现有的分区,使它成为另一种是编辑一个现有的分区,使它成为另一种是编辑一个现有的分区,使它成为LinuxLinux分区。如果没有空闲的磁盘空间,就需要将现有分区。如果没有空闲的磁盘空间,就需要将现有分区。如果没有空闲的磁盘空间,就需要将现有分区。如果没有空闲的磁盘空间,就需要将现有的分区删除后,再建立的分区删除后,再建立的分区删除后,再建立的分区

10、删除后,再建立LinuxLinux分区。分区。分区。分区。 挂载点挂载点挂载点挂载点 它指定了该分区对应它指定了该分区对应它指定了该分区对应它指定了该分区对应LinuxLinux文件系统的哪个文件系统的哪个文件系统的哪个文件系统的哪个目录。目录。目录。目录。 文件系统类型文件系统类型文件系统类型文件系统类型它指定了该分区的文件系统类型,可选项有它指定了该分区的文件系统类型,可选项有它指定了该分区的文件系统类型,可选项有它指定了该分区的文件系统类型,可选项有ext2ext2、ext3ext3、或或或或 vfatvfat等。等。等。等。 允许的驱动器允许的驱动器大小大小指分区的大小(以指分区的大

11、小(以MB为单位)。为单位)。建立分区建立分区点击新建后开始分区:点击新建后开始分区:挂载点为挂载点为挂载点为挂载点为/ /bootboot,容量可以是容量可以是100100MBMB,文件系统文件系统是是ext3ext3交换分区交换分区交换分区交换分区,文件类型为,文件类型为swapswap,一般都将交换分区一般都将交换分区设成内存的两倍,假设内存容量是设成内存的两倍,假设内存容量是128128MBMB,则交则交换分区容量可以设为换分区容量可以设为256256MBMB挂载点为挂载点为挂载点为挂载点为“/”“/”,选择文件系统为,选择文件系统为ext3ext3,可以将可以将剩余的容量空喊容量全部

12、分配给根分区剩余的容量空喊容量全部分配给根分区7网络配置网络配置图3.10 网络配置 8防火墙配置防火墙配置 RedRedHatHatLinuxLinux为为为为增增增增加加加加系系系系统统统统安安安安全全全全性性性性,提提提提供供供供了了了了防防防防火墙保护,在此可以选择适当的安全级别。火墙保护,在此可以选择适当的安全级别。火墙保护,在此可以选择适当的安全级别。火墙保护,在此可以选择适当的安全级别。(1)高级)高级(2)中级)中级(3)无防火墙)无防火墙图3.12 防火墙配置 9设置根口令设置根口令 设设设设置置置置根根根根口口口口令令令令的的的的窗窗窗窗口口口口如如如如图图图图3.133.

13、13所所所所示示示示。必必必必须须须须输输输输入入入入一一一一个根口令。个根口令。个根口令。个根口令。口令为口令为口令为口令为123456123456根口令必须至少包括根口令必须至少包括根口令必须至少包括根口令必须至少包括6 6个字符,键入的口令个字符,键入的口令个字符,键入的口令个字符,键入的口令不会在屏幕上显示。不会在屏幕上显示。不会在屏幕上显示。不会在屏幕上显示。 图3.13 设置根口令123456 11安装软件包安装软件包图3.15 软件包组 (选设计程序包图3.16 安装软件包 12创建引导盘创建引导盘当软件包安装完毕后,安装程序进入当软件包安装完毕后,安装程序进入创建引导盘窗口,如

14、图创建引导盘窗口,如图3.17所示。所示。图3.17 创建引导盘 选不引导13配置配置XWindow(1)配置视频卡配置视频卡图3.18 配置视频卡 (2)配置显示器)配置显示器图3.19 显示器配置 (3)定制图形化配置)定制图形化配置图3.20 定制图形化配置 3.3安装后的系统配置安装后的系统配置3.3.1 设置代理设置代理可可以以设设置置系系统统的的日日期期和和时时间间、给给系系统统添添加加用用户户、安安装装软软件件、在在RedHat网网络络中中注注册册机机器器以以及及完完成成其其他他任任务务。设设置置代代理理将将允允许许用用户户从从一一开开始始就就配配置置环环境境,从从而而使使用用户

15、户能能够快速地开始使用够快速地开始使用RedHatLinux系统。系统。图3.21 设置代理 1创建用户账号创建用户账号图3.22 创建用户账号 2设置时间和日期设置时间和日期图3.23 日期和时间 3在在RedHat网络中注册网络中注册图3.24 在Red Hat网络中注册 4额外光盘额外光盘图3.25 额外光盘 3.3.2 配置工具配置工具1X配置工具配置工具 在在在在shellshell提提提提示示示示下下下下键键键键入入入入“ “redhat-config-xfree86”redhat-config-xfree86”命令,会启动命令,会启动命令,会启动命令,会启动X X配置工具。使用方

16、法见配置工具。使用方法见配置工具。使用方法见配置工具。使用方法见3.23.2节。节。节。节。2软件包管理工具软件包管理工具软件包管理工具可以帮助用户在安装后再安软件包管理工具可以帮助用户在安装后再安软件包管理工具可以帮助用户在安装后再安软件包管理工具可以帮助用户在安装后再安装或删除某些软件包。装或删除某些软件包。装或删除某些软件包。装或删除某些软件包。 图3.26 软件包管理工具 3.3安装完后系统配置安装完后系统配置3.3.1网络配置网络配置 配置配置IP IP 地址、地址、NFS NFS 服务、防火墙服务、防火墙3.3.2 配置minicom3.3.3 建立虚拟建立虚拟linux linu

17、x 与与 windows windows 资源共享资源共享3.3.1网络配置网络配置从红帽开始进入从红帽开始进入从红帽开始进入从红帽开始进入eth0eth0设置设置双击设备双击设备eth0 eth0 的蓝色区域,进入以太网设置界面的蓝色区域,进入以太网设置界面3.3.1网络配置网络配置3.3.1网络配置网络配置3.3.1网络配置网络配置3.3.1网络配置网络配置在系统设置菜单中选择服务器设置菜单,再选中服务菜在系统设置菜单中选择服务器设置菜单,再选中服务菜单,将单,将iptables iptables 服务的勾去掉服务的勾去掉, ,并并确保确保nfs nfs 选项选中。选项选中。配置配置NFS

18、NFS:点击主菜单运行系统设置点击主菜单运行系统设置-服务器设置服务器设置-NFS NFS 服务器服务器(英文为:(英文为:SETUP-SYSTEMSETUP-SYSTEMSERVICE-NFSSERVICE-NFS),),点击增加出现如下在界面,在目录点击增加出现如下在界面,在目录( (Drictory)Drictory):中填入需要共享的路径,中填入需要共享的路径,在主机在主机( (Hosts)Hosts):中填入允许进行连接的主机中填入允许进行连接的主机IP IP 地址。地址。并选择允许客户对共享目录的操作并选择允许客户对共享目录的操作为只读(为只读(ReadReadonlyonly)或

19、读写或读写( (Read/write)Read/write)3.3.1网络配置网络配置3.3.1网络配置网络配置3.3.1网络配置网络配置3.3.1网络配置网络配置3.3.1网络配置网络配置我们也可以手工编写我们也可以手工编写/ /etc/exports etc/exports 文件,其格式如下:文件,其格式如下:共享目录共享目录 可以连接的主机(读写权限,其他参数)可以连接的主机(读写权限,其他参数)/ /home/nfs 192.168.0.* (rw sync)home/nfs 192.168.0.* (rw sync)表示将本机的表示将本机的/ /home/nfshome/nfs目录共

20、享给目录共享给ip ip 地址为地址为192.168.0.1192.168.0.1192.168.0.254 192.168.0.254 的所有计算的所有计算机,可以读取和写入机,可以读取和写入配置完成后,可用如下办法简单测试一下配置完成后,可用如下办法简单测试一下NFS NFS 是否配置是否配置好了:在宿主机上自己好了:在宿主机上自己mount mount 自己,自己,看是否成功就可以判断看是否成功就可以判断NFS NFS 是否配好了是否配好了Mount 192.168.121:/home/nfs :/mnt/yaffsMount 192.168.121:/home/nfs :/mnt/3.

21、3.1网络配置网络配置其中192.168.0.10 应为主机的IP 地址。然后到/mnt/yaffs目录下看是否可以列出/home/nfs 目录下的所有文件和目录,可以则说明mount 成功,NFS 配置成功。3.3.2 配置minicom在在在在linuxlinux终端上输入终端上输入终端上输入终端上输入minicomsminicoms进入进入进入进入minicomminicom的配的配的配的配置界面置界面置界面置界面3.3.2 配置minicom按上下键选择按上下键选择Serial port setupSerial port setup,进入端口设置界面,这进入端口设置界面,这里有几个重要

22、选项改为如下值:里有几个重要选项改为如下值:(在(在Change which setting Change which setting 后按哪个字母就进入哪项的配后按哪个字母就进入哪项的配置,如按置,如按A A 进行端口号配置。)进行端口号配置。)ASerial Device ASerial Device :/dev/ttyS0 /dev/ttyS0 (端口号使用串口端口号使用串口1 1)EBPS/par/bits EBPS/par/bits :/115200 8N1 /115200 8N1 (波特率)波特率)F F,E E 硬件流,软件流都改为硬件流,软件流都改为NONO,若要使用若要使用P

23、C PC 机的串口机的串口2 2 来接板子的串口来接板子的串口1 1 做监做监控,改为:控,改为:/ /dev/ttyS1 dev/ttyS1 即可。即可。3.3.选好后按选好后按ESC ESC 键退出到图键退出到图1.4.11 1.4.11 所示画面,选择所示画面,选择Save Save setup as df1 setup as df1 保存退出,以后只要保存退出,以后只要启动启动minicom minicom 就是该配置,无需再做改动就是该配置,无需再做改动3.3.2 配置3.3.3 建立虚拟linux 与 windows 资源共享3.3.3 建立虚拟linux 与 windows 资源

24、共享3.3.3 建立虚拟linux 与 windows 资源共享拷贝拷贝vmaretools-5.00-13124.tar.gz文件到文件到linux文件夹中,例如(文件夹中,例如(/tmp/)。)。Tarzxvfvmaretool-5.00-13124.tar.gz生成生成vmware-tools-destrib文件夹文件夹进入,进入,./vmware-install.pl软件安装完成软件安装完成3.3.3 建立虚拟linux 与 windows 资源共享3.3.3 建立虚拟linux 与 windows 资源共享第四章交叉编译器概述与使用 4.1 4.1概述:概述: RPMSRPMSRPM

25、SRPMS是一个用于是一个用于是一个用于是一个用于Linux-2.4.18-rmk7-pxa1Linux-2.4.18-rmk7-pxa1Linux-2.4.18-rmk7-pxa1Linux-2.4.18-rmk7-pxa1内核的交叉内核的交叉内核的交叉内核的交叉编译器包,它其中包括交叉编译、汇编、链接、二进制编译器包,它其中包括交叉编译、汇编、链接、二进制编译器包,它其中包括交叉编译、汇编、链接、二进制编译器包,它其中包括交叉编译、汇编、链接、二进制文件转换工具、所需要的库函数等等文件转换工具、所需要的库函数等等文件转换工具、所需要的库函数等等文件转换工具、所需要的库函数等等 ,所谓交叉编

26、译器所谓交叉编译器所谓交叉编译器所谓交叉编译器就是一种在就是一种在就是一种在就是一种在Redhat LinuxRedhat LinuxRedhat LinuxRedhat Linux操作系统操作系统操作系统操作系统 + + + + X86X86X86X86的体系结构下,的体系结构下,的体系结构下,的体系结构下,编译经过移植的编译经过移植的编译经过移植的编译经过移植的linuxlinuxlinuxlinux操作系统,生成内核,该内核能够操作系统,生成内核,该内核能够操作系统,生成内核,该内核能够操作系统,生成内核,该内核能够在另外一种软硬件环境下运行的编译工具,如在另外一种软硬件环境下运行的编译

27、工具,如在另外一种软硬件环境下运行的编译工具,如在另外一种软硬件环境下运行的编译工具,如linuxlinuxlinuxlinux操作操作操作操作系统系统系统系统 + + + + ARMARMARMARM的体系结构。交叉编译其实就是在一个平台的体系结构。交叉编译其实就是在一个平台的体系结构。交叉编译其实就是在一个平台的体系结构。交叉编译其实就是在一个平台上生成能够在另一个平台上运行的代码上生成能够在另一个平台上运行的代码上生成能够在另一个平台上运行的代码上生成能够在另一个平台上运行的代码 4.2 交叉编译器的安装首先,首先,cpr/rmp/optcd/opt/rpmrpmUvh*.rpm在在/o

28、pt文件夹中生成文件夹中生成host,target文件夹文件夹交叉编译器安装完成交叉编译器安装完成4.3交叉编译器的使用交叉编译器的使用4.3.1Bootloader(Vivi)中配置)中配置4.3.2kernel配置配置4.3.1Bootloader(Vivi)中配置)中配置Vivi文件夹中编辑文件夹中编辑Makefile文件文件修改修改修改修改: :linux-include-dir=/opt/host/armv41/includelinux-include-dir=/opt/host/armv41/includeCross-compile=/opt/host/armv41/bin/arm

29、v41-Cross-compile=/opt/host/armv41/bin/armv41-unknown-linux-unknown-linux-Arm-gcc-libs=/opt/host/armv41/lib/gcc-Arm-gcc-libs=/opt/host/armv41/lib/gcc-lib/armv41-unknown-linuxlib/armv41-unknown-4.3.2kernel中配置中配置在在kernel文件夹修改文件夹修改Makefile文件文件Cross-compile=/opt/host/armv41/bin/armv41-Cross-compile=/opt

30、/host/armv41/bin/armv41-unknown-linux-unknown-linux-第五章开发工具介绍第五章开发工具介绍5.1shell常见命令常见命令5.2vi编辑器编辑器5.3makefile文件制作文件制作5.1shell常见命令常见命令ShellShell的原意是外壳,用于形容事务外部的架构。的原意是外壳,用于形容事务外部的架构。的原意是外壳,用于形容事务外部的架构。的原意是外壳,用于形容事务外部的架构。LinuxLinux系统的系统的系统的系统的shellshell作为操作系统的外壳,为用户作为操作系统的外壳,为用户作为操作系统的外壳,为用户作为操作系统的外壳,为

31、用户提供使用操作系统的接口。提供使用操作系统的接口。提供使用操作系统的接口。提供使用操作系统的接口。它是命令语言、命令解释程序及程序设计语言的它是命令语言、命令解释程序及程序设计语言的它是命令语言、命令解释程序及程序设计语言的它是命令语言、命令解释程序及程序设计语言的统称,负责用户和操作系统之间的沟通,把用户统称,负责用户和操作系统之间的沟通,把用户统称,负责用户和操作系统之间的沟通,把用户统称,负责用户和操作系统之间的沟通,把用户下达的命令解释给系统去执行下达的命令解释给系统去执行下达的命令解释给系统去执行下达的命令解释给系统去执行Linux操作系统的操作系统的shell版本很多,有版本很多

32、,有ash,bsh,bash,csh,ksh,zsh等,等,redhatlinux默认的默认的shell为为bash,同时支持同时支持ash,ksh,Shell命令分类命令分类cp(copy)cp(copy)功能说明:复制文件或目录。功能说明:复制文件或目录。功能说明:复制文件或目录。功能说明:复制文件或目录。语法:语法:语法:语法:cpcp属性属性属性属性源文件或目录源文件或目录源文件或目录源文件或目录 目标文件或目录目标文件或目录目标文件或目录目标文件或目录目的目录目的目录目的目录目的目录 补充说明:补充说明:补充说明:补充说明:cpcp指令用在复制文件或目录,如同时指定两个以上的文件或目

33、录,且最后的目的地是指令用在复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是指令用在复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是指令用在复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到该目录中。若同时指定多个文一个已经存在的目录,则它会把前面指定的所有文件或目录复制到该目录中。若同时指定多个文一个已经存在的目录,则它会把前面指定的所有文件或目录复制到该目录中。若同时指定多个文一个已经存在的目录,则它会把前面指定的所有文件或目录复制到该目录中。若同时指定多个文件或目录,而最后的目的地并非

34、是一个已存在的目录,则会出现错误信息。件或目录,而最后的目的地并非是一个已存在的目录,则会出现错误信息。件或目录,而最后的目的地并非是一个已存在的目录,则会出现错误信息。件或目录,而最后的目的地并非是一个已存在的目录,则会出现错误信息。参数:参数:参数:参数:- -a a或或或或- -archivearchive此参数的效果和同时指定此参数的效果和同时指定此参数的效果和同时指定此参数的效果和同时指定-dpRdpR参数相同。参数相同。参数相同。参数相同。 - -b b或或或或- -backupbackup删除,覆盖目标文件之前的备份,备份文件会在字尾加上一个备份字符串。删除,覆盖目标文件之前的备

35、份,备份文件会在字尾加上一个备份字符串。删除,覆盖目标文件之前的备份,备份文件会在字尾加上一个备份字符串。删除,覆盖目标文件之前的备份,备份文件会在字尾加上一个备份字符串。 - -d d或或或或- -no-dereferenceno-dereference当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录。文件或目录连接的原始文件或目录。文件或目录连接的原始文件或目录。

36、文件或目录连接的原始文件或目录。 - -f f或或或或- -forceforce强行复制文件或目录,不论目标文件或目录是否已存在。强行复制文件或目录,不论目标文件或目录是否已存在。强行复制文件或目录,不论目标文件或目录是否已存在。强行复制文件或目录,不论目标文件或目录是否已存在。 - -i i或或或或- -interactiveinteractive覆盖既有文件之前先询问用户。覆盖既有文件之前先询问用户。覆盖既有文件之前先询问用户。覆盖既有文件之前先询问用户。 - -l l或或或或- -linklink对源文件建立硬连接,而非复制文件。对源文件建立硬连接,而非复制文件。对源文件建立硬连接,而非

37、复制文件。对源文件建立硬连接,而非复制文件。 - -p p或或或或- -preservepreserve保留源文件或目录的属性。保留源文件或目录的属性。保留源文件或目录的属性。保留源文件或目录的属性。 - -P P或或或或- -parentsparents保留源文件或目录的路径。保留源文件或目录的路径。保留源文件或目录的路径。保留源文件或目录的路径。 - -r r递归处理,将指定目录下的文件与子目录一并处理。递归处理,将指定目录下的文件与子目录一并处理。递归处理,将指定目录下的文件与子目录一并处理。递归处理,将指定目录下的文件与子目录一并处理。 - -s s或或或或- -symbolic-li

38、nksymbolic-link对源文件建立符号连接,而非复制文件。对源文件建立符号连接,而非复制文件。对源文件建立符号连接,而非复制文件。对源文件建立符号连接,而非复制文件。 - -SS 或或或或- -suffix=suffix=用用用用-bb参数备份目标文件后,备份文件的参数备份目标文件后,备份文件的参数备份目标文件后,备份文件的参数备份目标文件后,备份文件的字尾会被加上一个备份字符串,预设的备份字尾字符串是符号字尾会被加上一个备份字符串,预设的备份字尾字符串是符号字尾会被加上一个备份字符串,预设的备份字尾字符串是符号字尾会被加上一个备份字符串,预设的备份字尾字符串是符号。 - -u u或或

39、或或- -updateupdate使用这项参数后只会在源文件的更改时间较目标文件更新时或是名称相互对使用这项参数后只会在源文件的更改时间较目标文件更新时或是名称相互对使用这项参数后只会在源文件的更改时间较目标文件更新时或是名称相互对使用这项参数后只会在源文件的更改时间较目标文件更新时或是名称相互对应的目标文件并不存在,才复制文件。应的目标文件并不存在,才复制文件。应的目标文件并不存在,才复制文件。应的目标文件并不存在,才复制文件。 - -helphelp在线帮助。在线帮助。在线帮助。在线帮助。 - -sparse=sparse=设置保存稀疏文件的时机。设置保存稀疏文件的时机。设置保存稀疏文件的

40、时机。设置保存稀疏文件的时机。 - -versionversion显示版本信息。显示版本信息。显示版本信息。显示版本信息。rmrmrm命令用于命令用于命令用于命令用于删删除文件或目除文件或目除文件或目除文件或目录录。 rmrm命令会命令会命令会命令会强强制制制制删删除文件,如果想要在除文件,如果想要在除文件,如果想要在除文件,如果想要在删删除除除除时时提示确提示确提示确提示确认认,可用可用可用可用rm-irm-i命令。命令。命令。命令。 如果要如果要如果要如果要删删除目除目除目除目录录,可用,可用,可用,可用rm-rrm-r命令。命令。命令。命令。rm-rrm-r命令在命令在命令在命令在删删除

41、除除除目目目目录时录时,每,每,每,每删删除一个文件或目除一个文件或目除一个文件或目除一个文件或目录录都会都会都会都会显显示提示,如果目示提示,如果目示提示,如果目示提示,如果目录录太大,响太大,响太大,响太大,响应应每个提示是不每个提示是不每个提示是不每个提示是不现实现实的。的。的。的。这时这时可以用可以用可以用可以用 rm-rfrm-rf命命命命令来令来令来令来强强制制制制删删除目除目除目除目录录,这样这样即使用了即使用了即使用了即使用了- -i i标标志也当无效志也当无效志也当无效志也当无效处处理。理。理。理。mvmvmv命令用于移命令用于移命令用于移命令用于移动动文件和更名文件。例如:

42、文件和更名文件。例如:文件和更名文件。例如:文件和更名文件。例如: $ $mvye.txt/homemvye.txt/home将当前目将当前目将当前目将当前目录录下的下的下的下的ye.txtye.txt文件移文件移文件移文件移动动到到到到/ /homehome目目目目录录下,下,下,下, $ $mvye.txtye1.txtmvye.txtye1.txt将将将将ye.txtye.txt文件改名文件改名文件改名文件改名为为ye1.txtye1.txt。 类类似于跟似于跟似于跟似于跟cpcp命令,命令,命令,命令,mvmv命令也可以一次移命令也可以一次移命令也可以一次移命令也可以一次移动动多个文件

43、,多个文件,多个文件,多个文件,在此不再在此不再在此不再在此不再赘赘叙叙叙叙chmod(changemode)chmod(changemode)功能说明:变更文件或目录的权限功能说明:变更文件或目录的权限功能说明:变更文件或目录的权限功能说明:变更文件或目录的权限chmodchmodchmodchmod 文件或目录文件或目录文件或目录文件或目录.u u u u:UserUserUserUser,即文件或目录的拥有者。即文件或目录的拥有者。即文件或目录的拥有者。即文件或目录的拥有者。g g g g:GroupGroupGroupGroup,即文件或目录的所属群组。即文件或目录的所属群组。即文件或

44、目录的所属群组。即文件或目录的所属群组。o o o o:OtherOtherOtherOther,除了文件或目录拥有者或所属群组之外,其除了文件或目录拥有者或所属群组之外,其除了文件或目录拥有者或所属群组之外,其除了文件或目录拥有者或所属群组之外,其他用户皆属于这个范围。他用户皆属于这个范围。他用户皆属于这个范围。他用户皆属于这个范围。a a a a:AllAllAllAll,即全部的用户,包含拥有者,所属群组以及其即全部的用户,包含拥有者,所属群组以及其即全部的用户,包含拥有者,所属群组以及其即全部的用户,包含拥有者,所属群组以及其他用户他用户他用户他用户r r r r:读取权限,数字代号为

45、读取权限,数字代号为读取权限,数字代号为读取权限,数字代号为4444。w w w w:写入权限,数字代号为写入权限,数字代号为写入权限,数字代号为写入权限,数字代号为2222。x x x x:执行或切换权限,数字代号为执行或切换权限,数字代号为执行或切换权限,数字代号为执行或切换权限,数字代号为1111。ln(link)ln(link)功能说明:连接文件或目录。功能说明:连接文件或目录。功能说明:连接文件或目录。功能说明:连接文件或目录。语法:语法:语法:语法:lnln属性属性属性属性 源文件或目录源文件或目录源文件或目录源文件或目录 目标文件或目录目标文件或目录目标文件或目录目标文件或目录

46、lnln指令用在连接文件或目录,如同时指定两个以上的文件指令用在连接文件或目录,如同时指定两个以上的文件指令用在连接文件或目录,如同时指定两个以上的文件指令用在连接文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则会或目录,且最后的目的地是一个已经存在的目录,则会或目录,且最后的目的地是一个已经存在的目录,则会或目录,且最后的目的地是一个已经存在的目录,则会把前面指定的所有文件或目录复制到该目录中把前面指定的所有文件或目录复制到该目录中把前面指定的所有文件或目录复制到该目录中把前面指定的所有文件或目录复制到该目录中- -b b或或或或- -backupbacku

47、p删除,覆盖目标文件之前的备份。删除,覆盖目标文件之前的备份。删除,覆盖目标文件之前的备份。删除,覆盖目标文件之前的备份。 - -d d或或或或- -F F或或或或- -directorydirectory建立目录的硬连接。建立目录的硬连接。建立目录的硬连接。建立目录的硬连接。 - -f f或或或或- -forceforce强行建立文件或目录的连接,不论文件或强行建立文件或目录的连接,不论文件或强行建立文件或目录的连接,不论文件或强行建立文件或目录的连接,不论文件或目录是否存在。目录是否存在。目录是否存在。目录是否存在。 - -i i或或或或- -interactiveinteractive覆

48、盖既有文件之前先询问用户。覆盖既有文件之前先询问用户。覆盖既有文件之前先询问用户。覆盖既有文件之前先询问用户。 - -n n或或或或- -no-dereferenceno-dereference把符号连接的目的目录视为一般把符号连接的目的目录视为一般把符号连接的目的目录视为一般把符号连接的目的目录视为一般文件。文件。文件。文件。 - -s s或或或或- -symbolicsymbolic对源文件建立符号连接,而非硬连接对源文件建立符号连接,而非硬连接对源文件建立符号连接,而非硬连接对源文件建立符号连接,而非硬连接grepgrep功能说明:查找文件里符合条件的字符串。功能说明:查找文件里符合条件

49、的字符串。语法:语法:语法:语法:grepgrep属性属性属性属性文件或目录文件或目录文件或目录文件或目录.补充说明:补充说明:补充说明:补充说明:grepgrep指令用于查找内容包含指定的范本样式指令用于查找内容包含指定的范本样式指令用于查找内容包含指定的范本样式指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,的文件,如果发现某文件的内容符合所指定的范本样式,的文件,如果发现某文件的内容符合所指定的范本样式,的文件,如果发现某文件的内容符合所指定的范本样式,预设预设预设预设grepgrep指令会把含有范本样式的那一列显示出来。指令会把含有范本样式的那一列显

50、示出来。指令会把含有范本样式的那一列显示出来。指令会把含有范本样式的那一列显示出来。- -HH在显示符合范本样式的那一列之前,表示该列所属的在显示符合范本样式的那一列之前,表示该列所属的在显示符合范本样式的那一列之前,表示该列所属的在显示符合范本样式的那一列之前,表示该列所属的文件名称。文件名称。文件名称。文件名称。- -ii忽略字符大小写的差别。忽略字符大小写的差别。忽略字符大小写的差别。忽略字符大小写的差别。- -ww只显示全字符合的列。只显示全字符合的列。只显示全字符合的列。只显示全字符合的列。- -xx只显示全列符合的列。只显示全列符合的列。只显示全列符合的列。只显示全列符合的列。da

51、tedate功能说明:显示或设置系统时间与日期。功能说明:显示或设置系统时间与日期。语法:语法:date补充说明:第一种语法可用来显示系统日期或时间,以补充说明:第一种语法可用来显示系统日期或时间,以补充说明:第一种语法可用来显示系统日期或时间,以补充说明:第一种语法可用来显示系统日期或时间,以%为开头的参数为格式参数,可指定日期或时间的显示格为开头的参数为格式参数,可指定日期或时间的显示格为开头的参数为格式参数,可指定日期或时间的显示格为开头的参数为格式参数,可指定日期或时间的显示格式。第二种语法可用来设置系统日期与时间。只有管理式。第二种语法可用来设置系统日期与时间。只有管理式。第二种语法

52、可用来设置系统日期与时间。只有管理式。第二种语法可用来设置系统日期与时间。只有管理员才有设置日期与时间的权限。若不加任何参数,员才有设置日期与时间的权限。若不加任何参数,员才有设置日期与时间的权限。若不加任何参数,员才有设置日期与时间的权限。若不加任何参数,datadata会会会会显示目前的日期与时间。显示目前的日期与时间。显示目前的日期与时间。显示目前的日期与时间。参数:参数:参数:参数:insmod(installmodule)功能说明:载入模块。功能说明:载入模块。功能说明:载入模块。功能说明:载入模块。语法:语法:语法:语法:insmod-fkmpsvxX-oinsmod-fkmpsv

53、xX-o补充说明:补充说明:补充说明:补充说明:LinuxLinux有许多功能是通过模块的方式,在需要有许多功能是通过模块的方式,在需要有许多功能是通过模块的方式,在需要有许多功能是通过模块的方式,在需要时才载入时才载入时才载入时才载入kernelkernel。如此可使如此可使如此可使如此可使kernelkernel较为精简,进而提高效较为精简,进而提高效较为精简,进而提高效较为精简,进而提高效率,以及保有较大的弹性。这类可载入的模块,通常是率,以及保有较大的弹性。这类可载入的模块,通常是率,以及保有较大的弹性。这类可载入的模块,通常是率,以及保有较大的弹性。这类可载入的模块,通常是设备驱动程

54、序。设备驱动程序。设备驱动程序。设备驱动程序。参数:参数:参数:参数:-kk将模块设置为自动卸除。将模块设置为自动卸除。将模块设置为自动卸除。将模块设置为自动卸除。 -mm输出模块的载入信息。输出模块的载入信息。输出模块的载入信息。输出模块的载入信息。 -oo指定模块的名称,可使用模指定模块的名称,可使用模指定模块的名称,可使用模指定模块的名称,可使用模块文件的文件名。块文件的文件名。块文件的文件名。块文件的文件名。 -pp测试模块是否能正确地载入测试模块是否能正确地载入测试模块是否能正确地载入测试模块是否能正确地载入kernelkernel。 -s-s将所有信息记录在系统记录文件中。将所有信

55、息记录在系统记录文件中。将所有信息记录在系统记录文件中。将所有信息记录在系统记录文件中。 -v v执行时显示详细的信息。执行时显示详细的信息。执行时显示详细的信息。执行时显示详细的信息。 -x x不要汇出模块的外部符号。不要汇出模块的外部符号。不要汇出模块的外部符号。不要汇出模块的外部符号。 -XX汇出模块所有的外部符号,此为预设置汇出模块所有的外部符号,此为预设置汇出模块所有的外部符号,此为预设置汇出模块所有的外部符号,此为预设置。rmmod(removemodule)功能说明:删除模块。功能说明:删除模块。功能说明:删除模块。功能说明:删除模块。语法:语法:语法:语法:rmmod-asrm

56、mod-as模块名称模块名称模块名称模块名称.补充说明:执行补充说明:执行补充说明:执行补充说明:执行rmmodrmmod指令,可删除不需要的模块。指令,可删除不需要的模块。指令,可删除不需要的模块。指令,可删除不需要的模块。LinuxLinux操作系统的核心具有模块化的特性,应此在编译核操作系统的核心具有模块化的特性,应此在编译核操作系统的核心具有模块化的特性,应此在编译核操作系统的核心具有模块化的特性,应此在编译核心时,务须把全部的功能都放如核心。你可以将这些功心时,务须把全部的功能都放如核心。你可以将这些功心时,务须把全部的功能都放如核心。你可以将这些功心时,务须把全部的功能都放如核心。

57、你可以将这些功能编译成一个个单独的模块,待有需要时再分别载入它能编译成一个个单独的模块,待有需要时再分别载入它能编译成一个个单独的模块,待有需要时再分别载入它能编译成一个个单独的模块,待有需要时再分别载入它们。们。们。们。参数:参数:参数:参数:-a a删除所有目前不需要的模块。删除所有目前不需要的模块。删除所有目前不需要的模块。删除所有目前不需要的模块。 -s s把信息输出至把信息输出至把信息输出至把信息输出至syslogsyslog常驻服务,而非终端机界面。常驻服务,而非终端机界面。常驻服务,而非终端机界面。常驻服务,而非终端机界面。lsmod(listmodules)功能说明:显示已载入

58、系统的模块。功能说明:显示已载入系统的模块。功能说明:显示已载入系统的模块。功能说明:显示已载入系统的模块。语法:语法:语法:语法:lsmodlsmod补充说明:执行补充说明:执行补充说明:执行补充说明:执行lsmodlsmod指令,会列出所有已载入指令,会列出所有已载入指令,会列出所有已载入指令,会列出所有已载入系统的模块。系统的模块。系统的模块。系统的模块。LinuxLinux操作系统的核心具有模块化操作系统的核心具有模块化操作系统的核心具有模块化操作系统的核心具有模块化的特性,应此在编译核心时,务须把全部的功能的特性,应此在编译核心时,务须把全部的功能的特性,应此在编译核心时,务须把全部

59、的功能的特性,应此在编译核心时,务须把全部的功能都放入核心。您可以将这些功能编译成一个个单都放入核心。您可以将这些功能编译成一个个单都放入核心。您可以将这些功能编译成一个个单都放入核心。您可以将这些功能编译成一个个单独的模块,待需要时再分别载入。独的模块,待需要时再分别载入。独的模块,待需要时再分别载入。独的模块,待需要时再分别载入。modinfo(moduleinfomation)功能说明:显示功能说明:显示功能说明:显示功能说明:显示kernelkernel模块的信息。模块的信息。模块的信息。模块的信息。语法:语法:语法:语法:modinfo-adhpVmodinfo-adhpV模块文件模

60、块文件模块文件模块文件 补充说明:补充说明:补充说明:补充说明:modinfomodinfo会显示会显示会显示会显示kernelkernel模块的对象文件,模块的对象文件,模块的对象文件,模块的对象文件,以显示该模块的相关信息。以显示该模块的相关信息。以显示该模块的相关信息。以显示该模块的相关信息。参数:参数:参数:参数:-a a或或或或- -authorauthor显示模块开发人员。显示模块开发人员。显示模块开发人员。显示模块开发人员。 -d d或或或或- -descriptiondescription显示模块的说明。显示模块的说明。显示模块的说明。显示模块的说明。 -h h或或或或- -h

61、elphelp显示显示显示显示modinfomodinfo的参数使用方法。的参数使用方法。的参数使用方法。的参数使用方法。 -p p或或或或- -parametersparameters显示模块所支持的参数。显示模块所支持的参数。显示模块所支持的参数。显示模块所支持的参数。 -V V或或或或- -versionversion显示版本信息。显示版本信息。显示版本信息。显示版本信息。rpm(redhatpackagemanager)功能说明:管理套件功能说明:管理套件功能说明:管理套件功能说明:管理套件RpmRpm属性属性属性属性 文件文件文件文件属性:属性:属性:属性:- -h h或或或或- -

62、hashhash套件安装时列出标记。套件安装时列出标记。套件安装时列出标记。套件安装时列出标记。 -i i显示套件的相关信息。显示套件的相关信息。显示套件的相关信息。显示套件的相关信息。 -ii 或或或或- -installinstall安装指定的套件档。安装指定的套件档。安装指定的套件档。安装指定的套件档。 -l l显示套件的文件列表。显示套件的文件列表。显示套件的文件列表。显示套件的文件列表。 -pp+查询指定的查询指定的查询指定的查询指定的RPMRPM套件档。套件档。套件档。套件档。 -qq使用询问模式,当遇到任何问题时,使用询问模式,当遇到任何问题时,使用询问模式,当遇到任何问题时,使

63、用询问模式,当遇到任何问题时,rpmrpm指令会先指令会先指令会先指令会先询问用户。询问用户。询问用户。询问用户。 -RR显示套件的关联性信息。显示套件的关联性信息。显示套件的关联性信息。显示套件的关联性信息。 -s s显示文件状态,本参数需配合显示文件状态,本参数需配合显示文件状态,本参数需配合显示文件状态,本参数需配合-ll参数使用。参数使用。参数使用。参数使用。 -UU 或或或或- -upgradeupgrade升级指定的套件档。升级指定的套件档。升级指定的套件档。升级指定的套件档。 -v v显示指令执行过程。显示指令执行过程。显示指令执行过程。显示指令执行过程。ifconfig功能说明

64、:显示或设置网络设备。功能说明:显示或设置网络设备。功能说明:显示或设置网络设备。功能说明:显示或设置网络设备。语法:语法:语法:语法:ifconfigifconfig网络设备网络设备网络设备网络设备参数参数参数参数IPIP地址地址地址地址 补充说明:补充说明:补充说明:补充说明:ifconfigifconfig可设置网络设备的状态,或是显示目可设置网络设备的状态,或是显示目可设置网络设备的状态,或是显示目可设置网络设备的状态,或是显示目前的设置。前的设置。前的设置。前的设置。 IPIP地址地址地址地址指定网络设备的指定网络设备的指定网络设备的指定网络设备的IPIP地址。地址。地址。地址。 网

65、络设备网络设备网络设备网络设备指定网络设备的名称。指定网络设备的名称。指定网络设备的名称。指定网络设备的名称。参数:参数:参数:参数:addadd设置网络设备设置网络设备设置网络设备设置网络设备IPv6IPv6的的的的IPIP地址。地址。地址。地址。deldel删除网络设备删除网络设备删除网络设备删除网络设备IPv6IPv6的的的的IPIP地址。地址。地址。地址。downdown关闭指定的网络设备。关闭指定的网络设备。关闭指定的网络设备。关闭指定的网络设备。hwhw设置网络设备设置网络设备设置网络设备设置网络设备的的的的 类型与硬件地址。类型与硬件地址。类型与硬件地址。类型与硬件地址。io_a

66、ddrI/Oio_addr设置网络设备的设置网络设备的设置网络设备的设置网络设备的I/OI/O地址。地址。地址。地址。minicom功能说明:调制解调器通信程序。功能说明:调制解调器通信程序。功能说明:调制解调器通信程序。功能说明:调制解调器通信程序。语法:语法:语法:语法:minicomminicom配置参数配置参数配置参数配置参数 参数:参数:参数:参数:-ll不会将所有的字符都转成不会将所有的字符都转成不会将所有的字符都转成不会将所有的字符都转成ASCIIASCII码。码。码。码。-mm以以以以AltAlt或或或或MetaMeta键作为指令键。键作为指令键。键作为指令键。键作为指令键。-

67、MM与与与与- -mm参数类似。参数类似。参数类似。参数类似。-oo不要初始化调制解调器。不要初始化调制解调器。不要初始化调制解调器。不要初始化调制解调器。-pp使用模拟终端机。使用模拟终端机。使用模拟终端机。使用模拟终端机。 - -ss开启程序设置画面。开启程序设置画面。开启程序设置画面。开启程序设置画面。-SscriptS在启动时,执行指定的在启动时,执行指定的在启动时,执行指定的在启动时,执行指定的scriptscript文件。文件。文件。文件。-tt设置终端机的类型。设置终端机的类型。设置终端机的类型。设置终端机的类型。-zz在终端机上显示状态列。在终端机上显示状态列。在终端机上显示状

68、态列。在终端机上显示状态列。ping功能说明:检测主机。功能说明:检测主机。功能说明:检测主机。功能说明:检测主机。语法:语法:语法:语法:pingping参数参数参数参数 主机名称或主机名称或主机名称或主机名称或IPIP地址地址地址地址 补充说明:执行补充说明:执行补充说明:执行补充说明:执行pingping指令会使用指令会使用指令会使用指令会使用ICMPICMP传输协议,发出要求回应的信传输协议,发出要求回应的信传输协议,发出要求回应的信传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知息,若远端主机的网络功能没有问题,就会回应该信息,因而得知息,若远端主

69、机的网络功能没有问题,就会回应该信息,因而得知息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运作正常。该主机运作正常。该主机运作正常。该主机运作正常。参数:参数:参数:参数:-dd使用使用使用使用SocketSocket的的的的SO_DEBUGSO_DEBUG功能。功能。功能。功能。-cc设置完成要求回应的次数。设置完成要求回应的次数。设置完成要求回应的次数。设置完成要求回应的次数。-ff极限检测。极限检测。极限检测。极限检测。-ii指定收发信息的间隔时间。指定收发信息的间隔时间。指定收发信息的间隔时间。指定收发信息的间隔时间。-II使用指定的网络界面送出数据包。使用指定的网

70、络界面送出数据包。使用指定的网络界面送出数据包。使用指定的网络界面送出数据包。-ll设置在送出要求信息之前,先行发出的数据包。设置在送出要求信息之前,先行发出的数据包。设置在送出要求信息之前,先行发出的数据包。设置在送出要求信息之前,先行发出的数据包。-nn只输出数值。只输出数值。只输出数值。只输出数值。telnet功能说明:远端登入。功能说明:远端登入。语法:语法:telnet-8acdEfFKLrx-b-e-k-l-n-S-X主机名称或主机名称或IP地址地址补充说明:执行补充说明:执行telnet指令开启终端机阶段指令开启终端机阶段作业,并登入远端主机。作业,并登入远端主机。cdlscdc

71、d命令不命令不命令不命令不仅显仅显示当前状示当前状示当前状示当前状态态,还还改改改改变变当前状当前状当前状当前状态态,它的用,它的用,它的用,它的用发发跟跟跟跟dosdos下的下的下的下的cdcd命令基本一致。命令基本一致。命令基本一致。命令基本一致。 cd.cd.可可可可进进入上一入上一入上一入上一层层目目目目录录 cd-cd-可可可可进进入上一个入上一个入上一个入上一个进进入的目入的目入的目入的目录录 cdcd可可可可进进入用入用入用入用户户的的的的homehome目目目目录录 ls ls命令跟命令跟命令跟命令跟dosdos下的下的下的下的dirdir命令一命令一命令一命令一样样,用于,用

72、于,用于,用于显显示当前目示当前目示当前目示当前目录录的内容。的内容。的内容。的内容。如果想取得如果想取得如果想取得如果想取得详细详细的信息,可用的信息,可用的信息,可用的信息,可用ls-lls-l命令,命令,命令,命令, 这样这样就可以就可以就可以就可以显显示示示示目目目目录录内容的内容的内容的内容的详细详细信息。如果目信息。如果目信息。如果目信息。如果目录录下的文件太多,用一屏下的文件太多,用一屏下的文件太多,用一屏下的文件太多,用一屏显显示不了,可以用示不了,可以用示不了,可以用示不了,可以用ls-l|morels-l|more分屏分屏分屏分屏显显示示示示tartartar最初用于建立磁

73、最初用于建立磁最初用于建立磁最初用于建立磁带备带备份系份系份系份系统统,目前广泛用,目前广泛用,目前广泛用,目前广泛用于建立文件于建立文件于建立文件于建立文件发发布档案。可用如下方法建立布档案。可用如下方法建立布档案。可用如下方法建立布档案。可用如下方法建立tartar档案:档案:档案:档案:$ $tarcvftarcvf例如,如果要将当前目例如,如果要将当前目例如,如果要将当前目例如,如果要将当前目录录中所有文件存档到中所有文件存档到中所有文件存档到中所有文件存档到ye.tarye.tar中,可用如下命令:中,可用如下命令:中,可用如下命令:中,可用如下命令: $ $tarcvfye.tar

74、*.*tarcvfye.tar*.*要要要要浏览浏览档案内容,将档案内容,将档案内容,将档案内容,将c c选项变选项变成成成成t t。如果要如果要如果要如果要浏浏览览ye.tarye.tar档案中的内容,可用如下命令:档案中的内容,可用如下命令:档案中的内容,可用如下命令:档案中的内容,可用如下命令: $ $tartvfye.tartartvfye.tar要取出档案内的内容,将要取出档案内的内容,将要取出档案内的内容,将要取出档案内的内容,将c c选项变选项变成成成成x x。如果如果如果如果要将要将要将要将ye.tarye.tar档案中的内容取到当前目档案中的内容取到当前目档案中的内容取到当前

75、目档案中的内容取到当前目录录中,可用中,可用中,可用中,可用如下命令:如下命令:如下命令:如下命令: $ $gzipgzipgzip命令用于命令用于命令用于命令用于压缩压缩文件。文件。文件。文件。 例如,如果要将例如,如果要将例如,如果要将例如,如果要将ye.txtye.txt文件文件文件文件压缩压缩,可用如下命令:可用如下命令:可用如下命令:可用如下命令: $ $gzipye.txtgzipye.txt这样这样就可以就可以就可以就可以压缩压缩文件并在文件名后面加上文件并在文件名后面加上文件并在文件名后面加上文件并在文件名后面加上gzgz扩扩展名,展名,展名,展名,变变成文件成文件成文件成文件

76、ye.txt.gzye.txt.gz。 解解解解压缩压缩文件可用文件可用文件可用文件可用gzip-dgzip-d命令命令命令命令实现实现: $ $gzip-dye.txt.gzgzip-dye.txt.gz这样这样就可以解就可以解就可以解就可以解压缩压缩文件并文件并文件并文件并删删除除除除gzgz扩扩展名。除此之外展名。除此之外展名。除此之外展名。除此之外还还可以用可以用可以用可以用gunzipgunzip命令来解命令来解命令来解命令来解 压缩压缩文件,效果跟用文件,效果跟用文件,效果跟用文件,效果跟用gzip-dgzip-d命命命命令一令一令一令一样样。mount名称名称名称名称:mount

77、mount使用权限使用权限使用权限使用权限:系统管理者或系统管理者或系统管理者或系统管理者或/ /etc/fstabetc/fstab中允许的使用者中允许的使用者中允许的使用者中允许的使用者 使用方式使用方式使用方式使用方式:mount-hVmount-hVmount-a-fFnrsvw-tvfstypemount-a-fFnrsvw-tvfstypemount-fnrsvw-ooptions,.device|dirmount-fnrsvw-ooptions,.device|dirmount-fnrsvw-tvfstype-ooptionsdevicedirmount-fnrsvw-tvfst

78、ype-ooptionsdevicedir说明说明说明说明:将某个档案的内容解读成档案系统,然后将其挂在将某个档案的内容解读成档案系统,然后将其挂在将某个档案的内容解读成档案系统,然后将其挂在将某个档案的内容解读成档案系统,然后将其挂在目录的某个位置之上。当这个命令执行成功后,直到我目录的某个位置之上。当这个命令执行成功后,直到我目录的某个位置之上。当这个命令执行成功后,直到我目录的某个位置之上。当这个命令执行成功后,直到我们使用们使用们使用们使用 umnountumnount将这个档案系统移除为止,这个命令之将这个档案系统移除为止,这个命令之将这个档案系统移除为止,这个命令之将这个档案系统移

79、除为止,这个命令之下的所有档案将暂时无法被调用。下的所有档案将暂时无法被调用。下的所有档案将暂时无法被调用。下的所有档案将暂时无法被调用。 这个命令可以被用来挂上任何的档案系统,你甚至这个命令可以被用来挂上任何的档案系统,你甚至这个命令可以被用来挂上任何的档案系统,你甚至这个命令可以被用来挂上任何的档案系统,你甚至可以用可以用可以用可以用- -oloopoloop选项将某个一般的档案当成硬盘机分割挂选项将某个一般的档案当成硬盘机分割挂选项将某个一般的档案当成硬盘机分割挂选项将某个一般的档案当成硬盘机分割挂上系统。这个功能对于上系统。这个功能对于上系统。这个功能对于上系统。这个功能对于 ramd

80、isk,romdiskramdisk,romdisk或是或是或是或是 ISO9660ISO9660的影像档之解读非常实用。的影像档之解读非常实用。的影像档之解读非常实用。的影像档之解读非常实用。umonunt功能说明:卸除文件系统。功能说明:卸除文件系统。功能说明:卸除文件系统。功能说明:卸除文件系统。语法:语法:语法:语法:umount-ahnrvVumount-ahnrvV 文件系统文件系统文件系统文件系统 补充说明:补充说明:补充说明:补充说明:umountumount可卸除目前挂在可卸除目前挂在可卸除目前挂在可卸除目前挂在LinuxLinux目录中的文件系目录中的文件系目录中的文件系目

81、录中的文件系统。统。统。统。参数:参数:参数:参数:-aa卸除卸除卸除卸除/ /etc/mtabetc/mtab中记录的所有文件系统。中记录的所有文件系统。中记录的所有文件系统。中记录的所有文件系统。-hh显示帮助。显示帮助。显示帮助。显示帮助。-nn卸除时不要将信息存入卸除时不要将信息存入卸除时不要将信息存入卸除时不要将信息存入/ /etc/mtabetc/mtab文件中。文件中。文件中。文件中。-rr若无法成功卸除,则尝试以只读的方式重新挂入文若无法成功卸除,则尝试以只读的方式重新挂入文若无法成功卸除,则尝试以只读的方式重新挂入文若无法成功卸除,则尝试以只读的方式重新挂入文件系统。件系统。

82、件系统。件系统。-tt仅卸除选项中所指定的文件系统。仅卸除选项中所指定的文件系统。仅卸除选项中所指定的文件系统。仅卸除选项中所指定的文件系统。-vv执行时显示详细的信息。执行时显示详细的信息。执行时显示详细的信息。执行时显示详细的信息。-VV显示版本信息。显示版本信息。显示版本信息。显示版本信息。fdisk功能说明:磁盘分区。功能说明:磁盘分区。功能说明:磁盘分区。功能说明:磁盘分区。语法:语法:语法:语法:fdisk-bfdisk-b-uvuv外围设备代号外围设备代号外围设备代号外围设备代号 或或或或 fdisk-l-bfdisk-l-b-uvuv外围设备代号外围设备代号外围设备代号外围设备

83、代号.或或或或 fdiskfdisk-s-s补充说明:补充说明:补充说明:补充说明:fdiskfdisk是用来磁盘分区的程序,它采用传统的是用来磁盘分区的程序,它采用传统的是用来磁盘分区的程序,它采用传统的是用来磁盘分区的程序,它采用传统的问答式界面,而非类似问答式界面,而非类似问答式界面,而非类似问答式界面,而非类似DOSfdiskDOSfdisk的的的的cfdiskcfdisk互动式操作界互动式操作界互动式操作界互动式操作界面,因此在使用上较为不便,但功能却丝毫不打折扣。面,因此在使用上较为不便,但功能却丝毫不打折扣。面,因此在使用上较为不便,但功能却丝毫不打折扣。面,因此在使用上较为不便

84、,但功能却丝毫不打折扣。参数:参数:参数:参数:-bb指定每个分区的大小。指定每个分区的大小。指定每个分区的大小。指定每个分区的大小。 - -ll列出指定的外围设备的分区表状况。列出指定的外围设备的分区表状况。列出指定的外围设备的分区表状况。列出指定的外围设备的分区表状况。-ss将指定的分区大小输出到标准输出上,将指定的分区大小输出到标准输出上,将指定的分区大小输出到标准输出上,将指定的分区大小输出到标准输出上,单位为区块。单位为区块。单位为区块。单位为区块。-uu搭配搭配搭配搭配-ll参数列表,会用分区数目取代柱面数目,参数列表,会用分区数目取代柱面数目,参数列表,会用分区数目取代柱面数目,

85、参数列表,会用分区数目取代柱面数目,来表示每个分区的起始地址。来表示每个分区的起始地址。来表示每个分区的起始地址。来表示每个分区的起始地址。-vv显示版本信息。显示版本信息。显示版本信息。显示版本信息。5.2vi编辑器编辑器ViVi 是是是是UnixUnix世世世世界界界界里里里里极极极极为为为为普普普普遍遍遍遍的的的的全全全全屏屏屏屏文文文文本本本本编编编编辑辑辑辑器器器器,是是是是字字字字符符符符界界界界面下的一个强大的文本编辑器面下的一个强大的文本编辑器面下的一个强大的文本编辑器面下的一个强大的文本编辑器进入进入进入进入vivi的命令的命令的命令的命令 vi filename :vi f

86、ilename :打开或新建文件,并将光标置于第一行首打开或新建文件,并将光标置于第一行首打开或新建文件,并将光标置于第一行首打开或新建文件,并将光标置于第一行首 vi +n filename vi +n filename :打开文件,并将光标置于第打开文件,并将光标置于第打开文件,并将光标置于第打开文件,并将光标置于第n n行首行首行首行首 vi + filename vi + filename :打开文件,并将光标置于最后一行首打开文件,并将光标置于最后一行首打开文件,并将光标置于最后一行首打开文件,并将光标置于最后一行首 vi +/pattern filenamevi +/pattern

87、 filename:打开文件,并将光标置于第打开文件,并将光标置于第打开文件,并将光标置于第打开文件,并将光标置于第一个与一个与一个与一个与patternpattern匹配的串处匹配的串处匹配的串处匹配的串处 vi -r filename vi -r filename :在上次正用在上次正用在上次正用在上次正用vivi编辑时发生系统崩溃,恢编辑时发生系统崩溃,恢编辑时发生系统崩溃,恢编辑时发生系统崩溃,恢复复复复filename filename vi filename.filename vi filename.filename :打开多个文件,依次进行编打开多个文件,依次进行编打开多个文件,

88、依次进行编打开多个文件,依次进行编辑辑辑辑 移动光标类命令移动光标类命令h h :光标左移一个字符光标左移一个字符光标左移一个字符光标左移一个字符 l l :光标右移一个字符光标右移一个字符光标右移一个字符光标右移一个字符 spacespace:光标右移一个字符光标右移一个字符光标右移一个字符光标右移一个字符 BackspaceBackspace:光标左移一个字符光标左移一个字符光标左移一个字符光标左移一个字符 k k或或或或Ctrl+pCtrl+p:光标上移一行光标上移一行光标上移一行光标上移一行 j j或或或或Ctrl+n Ctrl+n :光标下移一行光标下移一行光标下移一行光标下移一行

89、Enter Enter :光标下移一行光标下移一行光标下移一行光标下移一行 ww或或或或W W :光标右移一个字至字首光标右移一个字至字首光标右移一个字至字首光标右移一个字至字首 b b或或或或B B :光标左移一个字至字首光标左移一个字至字首光标左移一个字至字首光标左移一个字至字首 e e或或或或E E :光标右移一个字至字尾光标右移一个字至字尾光标右移一个字至字尾光标右移一个字至字尾 n$n$:光标移至第光标移至第光标移至第光标移至第n n行尾行尾行尾行尾 H H :光标移至屏幕顶行光标移至屏幕顶行光标移至屏幕顶行光标移至屏幕顶行 M M :光标移至屏幕中间行光标移至屏幕中间行光标移至屏幕

90、中间行光标移至屏幕中间行 L L :光标移至屏幕最后行光标移至屏幕最后行光标移至屏幕最后行光标移至屏幕最后行 0 0:(注意是数字零)光标移至当前行首:(注意是数字零)光标移至当前行首:(注意是数字零)光标移至当前行首:(注意是数字零)光标移至当前行首 $ $:光标移至当前行尾:光标移至当前行尾:光标移至当前行尾:光标移至当前行尾 屏幕翻滚类命令屏幕翻滚类命令Ctrl+u:向文件首翻半屏向文件首翻半屏 Ctrl+d:向文件尾翻半屏向文件尾翻半屏 Ctrl+f:向文件尾翻一屏向文件尾翻一屏 Ctrlb;向文件首翻一屏向文件首翻一屏 nz:将第将第n行滚至屏幕顶部,不指定行滚至屏幕顶部,不指定n时

91、将时将当前行滚至屏幕顶部。当前行滚至屏幕顶部。插入文本类命令插入文本类命令i i :在光标前在光标前在光标前在光标前 I I :在当前行首在当前行首在当前行首在当前行首 a a:光标后光标后光标后光标后 A A:在当前行尾在当前行尾在当前行尾在当前行尾 o o:在当前行之下新开一行在当前行之下新开一行在当前行之下新开一行在当前行之下新开一行 OO:在当前行之上新开一行在当前行之上新开一行在当前行之上新开一行在当前行之上新开一行 r r:替换当前字符替换当前字符替换当前字符替换当前字符 R R:替换当前字符及其后的字符,直至按替换当前字符及其后的字符,直至按替换当前字符及其后的字符,直至按替换当

92、前字符及其后的字符,直至按ESCESC键键键键 s s:从当前光标位置处开始,以输入的文本替代指定数目从当前光标位置处开始,以输入的文本替代指定数目从当前光标位置处开始,以输入的文本替代指定数目从当前光标位置处开始,以输入的文本替代指定数目的字符的字符的字符的字符 S S:删除指定数目的行,并以所输入文本代替之删除指定数目的行,并以所输入文本代替之删除指定数目的行,并以所输入文本代替之删除指定数目的行,并以所输入文本代替之 ncwncw或或或或nCWnCW:修改指定数目的字修改指定数目的字修改指定数目的字修改指定数目的字 nCCnCC:修改指定数目的行修改指定数目的行修改指定数目的行修改指定数

93、目的行 删除命令删除命令ndw或或ndW:删除光标处开始及其后的删除光标处开始及其后的n-1个字个字 do:删至行首删至行首 d$:删至行尾删至行尾 ndd:删除当前行及其后删除当前行及其后n-1行行 x或或X:删除一个字符,删除一个字符,x删除光标后的,删除光标后的,而而X删除光标前的删除光标前的 Ctrl+u:删除输入方式下所输入的文本删除输入方式下所输入的文本 最后行方式命令最后行方式命令:w w :保存当前文件保存当前文件保存当前文件保存当前文件 :e filenamee filename:打开文件打开文件打开文件打开文件filenamefilename进行编辑进行编辑进行编辑进行编辑

94、 :x x:保存当前文件并退出保存当前文件并退出保存当前文件并退出保存当前文件并退出 :q q:退出退出退出退出vi vi :q!q!:不保存文件并退出不保存文件并退出不保存文件并退出不保存文件并退出vi vi :!command!command:执行执行执行执行shellshell命令命令命令命令command command :n1,n2 w!commandn1,n2 w!command:将文件中将文件中将文件中将文件中n1n1行至行至行至行至n2n2行的内容作行的内容作行的内容作行的内容作为为为为commandcommand的输入并执行之,若不指定的输入并执行之,若不指定的输入并执行之,

95、若不指定的输入并执行之,若不指定n1n1,n2n2,则表则表则表则表示将整个文件内容作为示将整个文件内容作为示将整个文件内容作为示将整个文件内容作为commandcommand的输入的输入的输入的输入 :r!commandr!command:将命令将命令将命令将命令commandcommand的输出结果放到当前的输出结果放到当前的输出结果放到当前的输出结果放到当前行行行行 5.3makefile文件制作文件制作5.3.15.3.1makefile makefile 文件制作的意义:文件制作的意义:一个工程中的源文件不计数,其按类型、功能、模块分一个工程中的源文件不计数,其按类型、功能、模块分一

96、个工程中的源文件不计数,其按类型、功能、模块分一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,别放在若干个目录中,别放在若干个目录中,别放在若干个目录中,makefilemakefile定义了一系列的规则来指定义了一系列的规则来指定义了一系列的规则来指定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些定,哪些文件需要先编译,哪些文件需要后编译,哪些定,哪些文件需要先编译,哪些文件需要后编译,哪些定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因文件需要重新编译,甚至于进行更复杂的功能操作,因文件需要重新编译,

97、甚至于进行更复杂的功能操作,因文件需要重新编译,甚至于进行更复杂的功能操作,因为为为为makefilemakefile就像一个就像一个就像一个就像一个ShellShell脚本一样,其中也可以执行操作脚本一样,其中也可以执行操作脚本一样,其中也可以执行操作脚本一样,其中也可以执行操作系统的命令。系统的命令。系统的命令。系统的命令。makefilemakefile带来的好处就是带来的好处就是带来的好处就是带来的好处就是“自动化编译自动化编译自动化编译自动化编译” ”,一旦写好,一旦写好,一旦写好,一旦写好,只需要一个只需要一个只需要一个只需要一个makemake命令,整个工程完全自动编译,极大的命

98、令,整个工程完全自动编译,极大的命令,整个工程完全自动编译,极大的命令,整个工程完全自动编译,极大的提高了软件开发的效率。提高了软件开发的效率。提高了软件开发的效率。提高了软件开发的效率。makemake是一个命令工具,是一个是一个命令工具,是一个是一个命令工具,是一个是一个命令工具,是一个解释解释解释解释makefilemakefile中指令的命令工具,一般来说,大多数的中指令的命令工具,一般来说,大多数的中指令的命令工具,一般来说,大多数的中指令的命令工具,一般来说,大多数的IDEIDE都有这个命令,比如:都有这个命令,比如:都有这个命令,比如:都有这个命令,比如:DelphiDelphi

99、的的的的makemake,VisualC+VisualC+的的的的nmakenmake,LinuxLinux下下下下GNUGNU的的的的makemake。可见,可见,可见,可见,makefilemakefile都成为了都成为了都成为了都成为了一种在工程方面的编译方法。一种在工程方面的编译方法。一种在工程方面的编译方法。一种在工程方面的编译方法。5.3.2makefile命令格式命令格式Target1target2:dependent1.Target1target2:mandcommand以下是一个简单以下是一个简单以下是一个简单以下是一个简单makefilemakefile文件:文件:文件:文

100、件:CC= armv4l-unknown-linux-gccCC= armv4l-unknown-linux-gccEXEC = helloEXEC = helloOBJS = hello.oOBJS = hello.oCFLAGS +=CFLAGS +=LDFLAGS+= staticLDFLAGS+= staticall: $(EXEC)all: $(EXEC)$(EXEC): $(OBJS)$(EXEC): $(OBJS)$(CC) $(LDFLAGS) -o $ $(OBJS)$(CC) $(LDFLAGS) -o $ $(OBJS)clean:clean:-rm -f $(EXEC)

101、 *.elf *.gdb *.o-rm -f $(EXEC) *.elf *.gdb *5.3.2makefile命令格式命令格式下面我们来简单介绍这个下面我们来简单介绍这个Makefile Makefile 文件的几个文件的几个主要部分:主要部分: CC CC 指明编译器指明编译器 EXEC EXEC 表示编译后生成的执行文件名称表示编译后生成的执行文件名称 OBJS OBJS 目标文件列表目标文件列表 CFLAGS CFLAGS 编译参数编译参数 LDFLAGS LDFLAGS 连接参数连接参数 all: all: 编译主入口编译主入口 cleanclean: 清除编译结果清除编译结果5.

102、3.3make的工作方式的工作方式GNUGNU的的的的makemake工作时的执行步骤入下:(想来其工作时的执行步骤入下:(想来其工作时的执行步骤入下:(想来其工作时的执行步骤入下:(想来其它的它的它的它的makemake也是类似)也是类似)也是类似)也是类似) 11、读入所有的、读入所有的、读入所有的、读入所有的MakefileMakefile。 22、读入被读入被读入被读入被includeinclude的其它的其它的其它的其它MakefileMakefile。 33、初始化文件中的变量。初始化文件中的变量。初始化文件中的变量。初始化文件中的变量。 44、推导隐晦规则,并分析所有规则。、推导

103、隐晦规则,并分析所有规则。、推导隐晦规则,并分析所有规则。、推导隐晦规则,并分析所有规则。 55、为所有的目标文件创建依赖关系链。、为所有的目标文件创建依赖关系链。、为所有的目标文件创建依赖关系链。、为所有的目标文件创建依赖关系链。 66、根据依赖关系,决定哪些目标要重新生成。、根据依赖关系,决定哪些目标要重新生成。、根据依赖关系,决定哪些目标要重新生成。、根据依赖关系,决定哪些目标要重新生成。 77、执行生成命令。、执行生成命令。、执行生成命令。、执行生成命令。 GCC使用讲解使用讲解GCC全称全称GNUCCOMPILE是是linux下的编辑开发工具下的编辑开发工具,支持语言支持语言 C,

104、C+, Objective-C, Java, Fortran, and Ada的编译的编译.当执行当执行gcc的时候通常会经过四个处理过程的时候通常会经过四个处理过程,preprocessing, compilation, assembly and linking .可以通过加不同可以通过加不同的选项来中止到某个过程的选项来中止到某个过程. Gcc命令使用语法命令使用语法GccoptionsfilenamesGccoptionsfilenamesGCC GCC 有超过有超过有超过有超过100100个的编译选项可用个的编译选项可用个的编译选项可用个的编译选项可用. . 这些选项中的许多这些选项中

105、的许多这些选项中的许多这些选项中的许多你可能永远都不会用到你可能永远都不会用到你可能永远都不会用到你可能永远都不会用到, , 但一些主要的选项将会频繁用到但一些主要的选项将会频繁用到但一些主要的选项将会频繁用到但一些主要的选项将会频繁用到. . 很多的很多的很多的很多的 GCC GCC 选项包括一个以上的字符选项包括一个以上的字符选项包括一个以上的字符选项包括一个以上的字符. . 因此你必须为每因此你必须为每因此你必须为每因此你必须为每个选项指定各自的连字符个选项指定各自的连字符个选项指定各自的连字符个选项指定各自的连字符, , 并且就象大多数并且就象大多数并且就象大多数并且就象大多数 Lin

106、ux Linux 命令命令命令命令一样你不能在一个单独的连字符后跟一组选项一样你不能在一个单独的连字符后跟一组选项一样你不能在一个单独的连字符后跟一组选项一样你不能在一个单独的连字符后跟一组选项. . 例如例如例如例如, , 下下下下面的两个命令是不同的面的两个命令是不同的面的两个命令是不同的面的两个命令是不同的: : gcc -p -g test.c gcc -p -g test.c gcc -pg test.c gcc -pg test.c 第一条命令告诉第一条命令告诉第一条命令告诉第一条命令告诉 GCC GCC 编译编译编译编译 test.c test.c 时为时为时为时为 prof p

107、rof 命令建立命令建立命令建立命令建立剖析剖析剖析剖析( (profile)profile)信息并且把调试信息加入到可执行的文件信息并且把调试信息加入到可执行的文件信息并且把调试信息加入到可执行的文件信息并且把调试信息加入到可执行的文件里里里里. . 第二条命令只告诉第二条命令只告诉第二条命令只告诉第二条命令只告诉 GCC GCC 为为为为 gprof gprof 命令建立剖析信命令建立剖析信命令建立剖析信命令建立剖析信息息息息. . Gccoptions-o当你不用任何选项编译一个程序时当你不用任何选项编译一个程序时当你不用任何选项编译一个程序时当你不用任何选项编译一个程序时, , GCC

108、 GCC 将会建立将会建立将会建立将会建立( (假假假假定编译成功定编译成功定编译成功定编译成功) )一个名为一个名为一个名为一个名为 a.out a.out 的可执行文件的可执行文件的可执行文件的可执行文件. . 例如例如例如例如, , 下面下面下面下面的命令将在当前目录下产生一个叫的命令将在当前目录下产生一个叫的命令将在当前目录下产生一个叫的命令将在当前目录下产生一个叫 a.out a.out 的文件的文件的文件的文件: : gcc test.c gcc test.c 你能用你能用你能用你能用 - -o o 编译选项来为将产生的可执行文件指定一个文编译选项来为将产生的可执行文件指定一个文编

109、译选项来为将产生的可执行文件指定一个文编译选项来为将产生的可执行文件指定一个文件名来代替件名来代替件名来代替件名来代替 a.out. a.out. 例如例如例如例如, , 将一个叫将一个叫将一个叫将一个叫 count.c count.c 的的的的 C C 程程程程序编译为名叫序编译为名叫序编译为名叫序编译为名叫 count count 的可执行文件的可执行文件的可执行文件的可执行文件, , 你将输入下面的命你将输入下面的命你将输入下面的命你将输入下面的命令令令令: : gcc -o count count.c gcc -o count count.c 注意注意注意注意: : 当你使用当你使用当

110、你使用当你使用 - -o o 选项时选项时选项时选项时, -, -o o 后面必须跟一个文件名后面必须跟一个文件名后面必须跟一个文件名后面必须跟一个文件名. . Gccoptions- -c c 只激活预处理只激活预处理只激活预处理只激活预处理, ,编译编译编译编译, ,和汇编和汇编和汇编和汇编, ,也就是他只把程序做成也就是他只把程序做成也就是他只把程序做成也就是他只把程序做成objobj文件文件文件文件 例子用法例子用法例子用法例子用法: : gcc -c hello.c gcc -c hello.c 他将生成他将生成他将生成他将生成. .o o的的的的objobj文件文件文件文件 - -

111、S S 只激活预处理和编译,就是指把文件编译成为汇编只激活预处理和编译,就是指把文件编译成为汇编只激活预处理和编译,就是指把文件编译成为汇编只激活预处理和编译,就是指把文件编译成为汇编代码。代码。代码。代码。 例子用法例子用法例子用法例子用法 gcc -S hello.c gcc -S hello.c 他将生成他将生成他将生成他将生成. .s s的汇编代码,你可以用文本编辑器察看的汇编代码,你可以用文本编辑器察看的汇编代码,你可以用文本编辑器察看的汇编代码,你可以用文本编辑器察看 - -include file include file 包含某个代码包含某个代码包含某个代码包含某个代码, ,简

112、单来说简单来说简单来说简单来说, ,就是便以某个文件就是便以某个文件就是便以某个文件就是便以某个文件, ,需要另一个文件的时候需要另一个文件的时候需要另一个文件的时候需要另一个文件的时候, ,就可以用它设就可以用它设就可以用它设就可以用它设 定定定定, ,功能就相当于在代码中使用功能就相当于在代码中使用功能就相当于在代码中使用功能就相当于在代码中使用#include include 例子用法例子用法例子用法例子用法: : gcc hello.c -include gcc hello.c -include /root/pianopan.h /root/pianopan.h 第六章第六章bootl

113、oader6.1 Bootloader简介6.2 Bootloader工作模式 6.3 Bootloader启动过程6.4 vivi Bootloader源代码分析6.5 vivi Bootloader接口命令6.6 vivi 源代码修改移植6.1 Bootloader简介BootloaderBootloader,为引导加载程序为引导加载程序,是嵌入式系统加,是嵌入式系统加电后运行的第一段代码,相当于电后运行的第一段代码,相当于PCPC机的机的BIOSBIOS。 BootloaderBootloader的位置:的位置:通常固化在硬件上的某通常固化在硬件上的某个固态存储设备上,加电后自启动。个固

114、态存储设备上,加电后自启动。 BootloaderBootloader功能:功能:初始化硬件设备、建立内初始化硬件设备、建立内存空间的映射图,将系统的软、硬件环境带到一存空间的映射图,将系统的软、硬件环境带到一个合适的状态,以便为最终调用操作系统内核准个合适的状态,以便为最终调用操作系统内核准备好正确的环境。备好正确的环境。Bootloader在软件的层次位置Bootloader的地址:在嵌入式系统中,系统在上电或复位时从地址0x0000,0000处开始执行,在这个地址处安排的就是Bootloader。Bootloader是严重地依赖于硬件而实现的。每种不同体系结构的处理器都有不同的Bootl

115、oader。不过Bootloader的发展也趋于支持多种体系结构,如现在比较成熟的vivi、RedBoot和U-Boot等。几种发布的Bootloader1 1、vivivivivivivivi是韩国是韩国MiziMizi公司开发的公司开发的BootloaderBootloader,适用于适用于ARM9ARM9处理器。处理器。2 2、RedBootRedBoot RedBoot RedBoot即红帽即红帽( (Red Hat)Red Hat)嵌入式调嵌入式调试引导程序,是一种用于嵌入式系统的独立开放试引导程序,是一种用于嵌入式系统的独立开放源代码引导源代码引导/ /装载器。装载器。3 3、U-

116、BootU-Boot U-Boot U-Boot(Universal BootloaderUniversal Bootloader)由德由德国国DENXDENX小组开发,是一款目前功能较为强大的小组开发,是一款目前功能较为强大的开源开源BootloaderBootloader程序,它支持多种处理器平台,程序,它支持多种处理器平台,包括包括ARMARM、PowerPCPowerPC、MIPSMIPS等。等。6.1.2 Bootloader操作模式大多数Bootloader都有两种不同的操作模式:“启动加载”模式和“下载”模式。其区别对于开发人员才有意义。从最终用户的角度看,Bootloader的

117、作用就是用来加载操作系统,而并不存在所谓的启动加载模式与下载模式的区别。1、启动加载(Bootloading)模式启动加载模式称为“自举”(Autonomous)模式。即Bootloader从目标机上的某个固态存储设备上将操作系统加载到 RAM 中运行,整个过程并没有用户的介入。 启动加载模式是 Bootloader的正常工作模式,在嵌入式产品发布的时侯,Bootloader必须工作在这种模式下。2、下载(Downloading)模式下载方式:在这种模式下,目标机上的Bootloader将通过串口连接或网络连接等通信手段从主机下载文件。下载内容及存储:主要是下载内核映像和根文件系统映像等。从主

118、机下载的文件通常首先被Bootloader保存到目标机的RAM中,然后再被 Bootloader写到目标机上的FLASH 类固态存储设备中。下载模式应用场合:Bootloader的这种模式通常在第一次安装内核与根文件系统时被使用;此外,以后的系统更新也会使用到这种工作模式。用户应用接口:工作于这种模式下的Bootloader通常都会向它的终端用户提供一个简单的命令行接口。 如在RedBoot下,将出现“RedBoot”提示符;在vivi Bootloader 下出现“vivi”提示符。6.1.3 Bootloader启动过程BootloaderBootloader的启动可以分为两个阶段的启动可

119、以分为两个阶段1、第一阶段阶段阶段1 1主要包含依赖于主要包含依赖于CPUCPU体系结构体系结构及硬件设备的初始化等。通常都用汇编语言来实及硬件设备的初始化等。通常都用汇编语言来实现。这个阶段的任务有现。这个阶段的任务有5 5:(1)(1)、基本的硬件设备初始化、基本的硬件设备初始化这是这是 Bootloader Bootloader 一开始就执行的操作,一开始就执行的操作,其目的是为阶段其目的是为阶段2 2 的执行、以及随后的执行、以及随后kernel kernel 的执的执行准备好一些基本的硬件环境。行准备好一些基本的硬件环境。它通常包括以下工作:屏蔽所有的中断、设置 CPU 的速度和时钟

120、频率、关闭处理器内部指令/数据cache等。(2)、为阶段2代码准备RAM空间为了获得更快的执行速度,通常把 阶段2 的代码加载到 RAM 空间中来执行。 准备RAM空间考虑的因素:阶段2代码大小、堆栈、页大小(4KB的倍数)、安排位置等。 总的空间有1MB足够,安排在RAM的顶端较恰当。(3)、拷贝阶段2代码到RAM空间(4)、设置好堆栈堆栈指针sp设置在1MB 的 RAM 空间的最顶端(堆栈向下生长)。(5)、跳转到阶段2的C程序入口点在上述一切都就绪后,就可以跳转到 Bootloader 的 stage2 去执行了。BootloaderBootloader的阶段的阶段的阶段的阶段2 2可

121、执行映像刚被拷贝到可执行映像刚被拷贝到可执行映像刚被拷贝到可执行映像刚被拷贝到RAMRAM空间空间空间空间时的时的时的时的 系统内存布局系统内存布局系统内存布局系统内存布局 2、第二阶段阶段2通常用C语言来实现,以便实现更复杂的功能,也使程序有更好的可读性和可移植性。这个阶段的主要任务有5:(1)、初始化本阶段要使用到的硬件至少初始化一个串口,以便和终端用户进行 I/O 输出信息等。(2)、检测系统内存映射(memory map)所谓内存映射,就是指在整个物理地址空间中有哪些地址范围被分配用来作为系统的 RAM 单元。为后面使用RAM、运行程序做好准备。(3)、将kernel和根文件系统映像从

122、flash读到RAM空间(4)、为kernel设置启动参数这是在调用内核之前应该做的准备工这是在调用内核之前应该做的准备工作。作。Linux 2.4.x Linux 2.4.x 以后的内核都期望以标记列表以后的内核都期望以标记列表( (tagged list)tagged list)的形式来传递启动参数。的形式来传递启动参数。启动参数标记列表方法:以启动参数标记列表方法:以ATAG_COREATAG_CORE标记开始,以标记开始,以ATAG_NONEATAG_NONE标记结标记结束。束。在嵌入式在嵌入式 Linux Linux 系统中,通常需要由系统中,通常需要由 Boot Loader Bo

123、ot Loader 设置的启动参数有:设置的启动参数有:ATAG_COREATAG_CORE、ATAG_MEMATAG_MEM(内存映射)、内存映射)、ATAG_NONEATAG_NONE等。等。(5)、调用内核BootloaderBootloader调用调用Linux kernelLinux kernel的方法是的方法是直接跳转到内核的第一条指令处。在跳转时必须直接跳转到内核的第一条指令处。在跳转时必须满足下列条件:满足下列条件:1)1)、CPUCPU寄存器的设置:寄存器的设置:R0R0为为0 0;R1R1为机器类型为机器类型IDID;R2R2为启动参数,标记列表在为启动参数,标记列表在RA

124、MRAM中的起始基地址。中的起始基地址。 ( (机器类型参见机器类型参见 linux/arch/arm/tools/mach-typeslinux/arch/arm/tools/mach-types目录目录) )2)2)、CPUCPU模式:模式: CPUCPU必须设置为必须设置为SVCSVC模式,必须禁止中断模式,必须禁止中断( (IRQsIRQs和和FIQs)FIQs)。3)3)、 MMU MMU 和和 CacheCache的设置:的设置:MMU MMU 必须关闭;指令必须关闭;指令 Cache Cache 可以打开也可以关闭;可以打开也可以关闭; 数数据据 Cache Cache 必须关闭

125、。必须关闭。6.1.4 vivi Bootloader源码分析vivivivi是韩国是韩国MiziMizi公司开发的公司开发的BootloaderBootloader,适用于适用于ARM9ARM9处理器。处理器。vivivivi有两种工作模式,在启动时可以有两种工作模式,在启动时可以选择。在选择。在vivivivi启动时,通过串行口发出如下信息:启动时,通过串行口发出如下信息:Press Return to start the Linux now, Press Return to start the Linux now, any other key for viviany other key

126、for vivi按回车键启动按回车键启动Linux OSLinux OS,按其它键进按其它键进入入vivivivi命令接口模式,可以使用命令接口模式,可以使用vivivivi提供的命令进提供的命令进行一些操作。行一些操作。一、vivi源代码目录结构vivi源代码包含的目录有:arch、Documentation、drivers、init、include、lib、scripts、test、util等10目录,共300多个文件。各个目录内容如下:1、arch(architecture)目录它下面的文件为与CPU硬件相关的初始化代码,此目录包含了所用vivi支持的CPU。一般只包含S3C2410x的

127、文件。2、Documentation目录其下文件为vivi使用指南。3、drivers目录存放的为MTD(数据存储媒质)设备读写控制文件和串行口操作文件,对串行口支持xmodem和ymodem协议。4、include目录存放所有的头文件,包括S3C2410微处理器的和S3C2410开发板的头文件5、init目录该目录下是系统初始化文件main.c、version.c,后者是vivi版本信息,main.c为vivi整个初始化的结构。6、lib目录该目录下是公共应用及接口代码,如时钟功能文件time.c,堆栈初始化文件heap.c等文件。7、scripts目录该目录存放的是系统配置需要的脚本文件,

128、如menuconfig和configue文件。8、CVS目录所有的目录下面都有一个CVS目录,存放的是该目录的路径和它的子目录。二、vivi源代码文件与功能结构vivivivi源代码文件:源代码文件:1 1、vivi/arch/s3c2410/head.svivi/arch/s3c2410/head.s2 2、一段过度,实现循环调用,一段过度,实现循环调用,mainmain返回后返回后重新复位重新复位LDRLDRSP,SP,DW_STACK_STARTDW_STACK_STARTMOVMOV FP,FP,#0#0MOVMOV A2,A2,#0#0BLBLMAINMAINMOVMOV PC,PC

129、,#FLASH_BASE#FLASH_BASE3 3、vivi/init/main.cvivi/init/6.1.5 vivi Bootloader接口命令vivivivi有两种工作模式,一种是有两种工作模式,一种是 “ “启动加载启动加载” ”模式,模式,另一种是命令行模式。利用串行口与主机的连接,另一种是命令行模式。利用串行口与主机的连接,可以进行命令行操作。可以进行命令行操作。vivivivi启动后,通过串行口发出如下信启动后,通过串行口发出如下信息:息:Press Return to start the Linux now, Press Return to start the Linu

130、x now, any other key for viviany other key for vivi按下除了按下除了“ “Enter”Enter”之外的键,便可之外的键,便可进入命令行模式。进入命令行模式。vivivivi的接口命令有的接口命令有5 5条。条。1 1、load-load-下载文件命令下载文件命令功能:功能:将二进制文件下载到将二进制文件下载到FlashFlash或或RAMRAM格式:格式:load load | | media_typemedia_type:存储器类型,存储器类型,FlashFlash或或RAMRAMpartnamepartname:分区名称分区名称addr

131、sizeaddr size:下载的地址及占用空间大小下载的地址及占用空间大小x|y|zx|y|z:文件的传输协议。文件的传输协议。x x表示采用表示采用xmodemxmodem协议,协议,y y表示采用表示采用ymodemymodem协议,协议,z z表示采表示采用用zmodemzmodem协议。目前协议。目前vivivivi仅支持仅支持xmodemxmodem协议。协议。例1:viviload flash kernel x表示下载压缩的内核映像文件zImage到flash存储器的内核分区中,采用xmodem传输协议。例2:viviload flash 0x80000 0xc0000 2 2、

132、part-MTDpart-MTD分区操作命令分区操作命令操作命令:操作命令:显示、增加、删除、复位、显示、增加、删除、复位、保存保存MTDMTD分区等。分区等。各个命令格式:各个命令格式:part showpart show:显示分区信息显示分区信息part del part del :删除指定的分区删除指定的分区part resetpart reset:恢复分区的默认值恢复分区的默认值part savepart save:在在flashflash中保存分区和参数中保存分区和参数值值增加新的分区part add :partname:新分区名称offset:新分区的偏移地址size:新分区的大小

133、flag:新分区的类型,可以是JFFS2、LOCKED、BONFS3、param-设置或查看分区参数命令查看分区参数: param show设置启动等待按键延迟:param set boot_delay n(s)设置通信初始化超时:param set xmodem_initial_timeout m (s)4、boot-引导内核命令格式:格式:boot media_type | boot media_type | media_typemedia_type:存储器类型,存储器类型,flashflash或或RAMRAMpartnamepartname:内核所在分区名称内核所在分区名称addradd

134、r:内核所在器件的偏移地址内核所在器件的偏移地址sizesize:内核的大小内核的大小若若bootboot(无参数),则从无参数),则从kernelkernel内核对应的内核对应的分区中(分区中(kernelkernel)读取内核映像启动。读取内核映像启动。例如:1、viviboot nand 0x80000内核在nand flash中,偏移地址为0x80000,大小为缺省值0xc00002、viviboot nor 6.1.6 vivi源码的修改移植vivi的移植方法步骤:对vivi进行修改移植对vivi进行配置对vivi进行编译下载、运行vivi一、对vivi进行修改移植设Linux系统的

135、目录结构为设Linux系统的目录结构为:cygwinfriendly-arm crosstool kernel 1、修改vivi/Makefile(1)修改交叉编译库和头文件1)修改编译器路径:将: CROSS_COMPILE=/opt/host/armv4l/bin/armv4l-unknown-linux-2)修改编译器库文件路径:将: ARM_GCC_LIBS=/opt/host/armv4l/bin/gcc-lib/armv4l-unknown-linux/3)增加交叉编译时头文件的搜索路径:LIBC_INCLUDE_DIR=本机的include的路径如:LIBC_INCLUDE_DIR= /friendly-arm/ crosstool/arm-linux/gcc-2.95.3-glibc-2.2.3/

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号