第五章Linux编程新修改教学教材

上传人:yuzo****123 文档编号:140896522 上传时间:2020-08-02 格式:PPT 页数:110 大小:657KB
返回 下载 相关 举报
第五章Linux编程新修改教学教材_第1页
第1页 / 共110页
第五章Linux编程新修改教学教材_第2页
第2页 / 共110页
第五章Linux编程新修改教学教材_第3页
第3页 / 共110页
第五章Linux编程新修改教学教材_第4页
第4页 / 共110页
第五章Linux编程新修改教学教材_第5页
第5页 / 共110页
点击查看更多>>
资源描述

《第五章Linux编程新修改教学教材》由会员分享,可在线阅读,更多相关《第五章Linux编程新修改教学教材(110页珍藏版)》请在金锄头文库上搜索。

1、第 5 章 Linux编程基础,5.1 开发环境的建立 5.2 Linux常用命令 5.3 Shell程序设计 5.4 Vi编辑器,开发环境的建立 进行项目开发前,首先要做的是搭建一套基于Linux操作系统的应用开发环境,一般由目标板和宿主机所构成。目标板用于运行操作系统和系统应用软件,而目标板所用到的操作系统的内核编译、应用程序的开发和调试则需要通过宿主机来完成。开发环境对硬件没有特殊的要求,但是为了双方之间建立连接关系,关键的接口包括串口、以太网口和USB口等是必不可少的。,传统的嵌入式开发环境需要单片机的仿真器,包含C语言、汇编语言、调试工具等的集成开发环境IDE和实时操作系统等,整个开

2、发系统建立起来至少需要几万元。由于Flash技术的发展,特别是一些CPU可以用JTAG接口下载调试,故仿真器已可以省去。,个人用Linux开发嵌入式应用程序,可以在自己的PC机上安装一套Linux操作系统,使用Linux中的X Windows打开若干个窗口用于编译、下载、调试等。 如果整个研发小组由多名工程师组成,常采用的办法是:用1台PC机运行Linux作为服务器;开发小组中每个成员都通过局域网用Telnet登录到这台Linux服务器上去;被开发的目标板也挂在网上。在服务器的Linux环境下,各个工程师用GNU gcc编译生成目标代码,再用FTP传回到自己的PC机上,然后通过串行口或网络下载

3、到目标机上。,Linux常用命令,shell是一种命令行解释程序(Command-Language Interpreter),负责用户和操作系统的沟通。 在终端方式的shell 提示窗口如图4.1所示。,图4.1 shell提示窗口,进入与退出命令 1进入系统 Linux是多用户操作系统,它允许多个用户同时使用一台计算机,这是它与Microsoft Windows的最大区别之一,因此Linux有比Microsoft Windows严格得多的用户管理。,在字符终端界面环境下,终端屏幕上出现如下登录提示行: login: 在它的后面输入自己的登录名。如果是新用户,那么要与系统管理员联系,取得一个合

4、法的登录名。 输入登录名、并按【Enter】键后,在屏幕上出现 Password:,要求在其后输入口令。输入的口令字符串并不在屏幕上显示,以利于保密。输入完口令并按【Enter】键后,系统就对登录名和口令进行验证。如果确认无误,则在屏幕上显示若干行信息,最后一行出现:$_ $是一般用户的shell提示符,其后是闪烁的光标条(root用户的提示符是“#”)。,2退出系统 当完成工作后,需要从系统中退出。退出系统的过程很简单,在$提示符出现后,输入logout命令,然后按下【Enter】键或同时按下【Ctrl】和【D】键,屏幕上会再次出现 login: 表示已经从系统中退出。如果想再次进入系统,必

5、须重新登录。,系统询问命令 1询问当前日期和时间的date命令 例如$ date 。 2询问当前用户的who命令 who命令可列出当前每一个处在系统中的用户的登录名、终端名和登录进入时间。 3显示当前目录路径名的pwd命令,文件操作命令 Linux命令行的一般格式为 命令名选择项参数,1登录和退出 Linux启动后,给出login命令,等待用户登录。 Login: Password: 使用logout命令退出外壳。 2更改账号密码 使用passwd命令来设置新用户的口令。在设置口令之后,账号即能正常工作。 语法:passwd Old password: New password: Retype

6、 new password:,3联机帮助 系统上几乎每条命令都带有相关的Man page。在有困难时,可以立刻找到文件。 语法:man命令 例如,如果使用ls命令时遇到困难,可以输入:man ls,4远程登录 用来连接到其他机器执行工作。在Linux上,由于对TCP/IP协议的完全支持,用户可以很容易的从Linux主机连接其他的计算机系统。 语法:rlogin主机名-l用户名 例如: rlogin doc -l user使用user账号登录到工作站doc中。 语法:telnet主机名或telnet IP地址 例如: telnet 140.109.20.251,5列出文件或目录 语法:ls -a

7、tFlgR name 其中name是文件名或目录名。ls命令用来浏览文件与目录,对于每个目录,该命令将列出其中所有的子目录与文件。 6改变工作目录 语法:cd name 其中name是目录名、路径或目录缩写。cd除了有切换目录的功能外,还有一个功能就是,不管在哪个目录内,只要输入cd命令,不加任何参数,即可回到用户目录内。,7复制文件 语法:cp -r源地址 目的地址 带目录的拷贝,相当于DOS内的xcopy。 8移动或更改文件、目录名称 语法:mv源地址 目的地址 可以为文件或目录改名,也可以将文件由一个目录移入另一个目录。,9建立新目录 语法:mkdir目录名 10删除目录 语法:rmdi

8、r目录名或rm目录名 11删除文件 语法:rm文件名 12列出当前所在的目录位置 语法:pwd,13查看文件内容 语法:cat文件名 14分页查看文件内容 语法:more文件名或cat文件名| more 15查看目录所占磁盘容量 语法:du -s目录,16文件传输 (1)拷贝文件或目录至远程工作站。 语法:rcp -r 源地址 目的主机名:目的地址。 (2)自远程工作站拷贝文件或目录。 语法:rcp -r源主机名:源地址 目的地址。 (3)本地工作站与远程工作站之间的文件传输,必须拥有远程工作站的账号及密码,才可进行传输工作。 语法:ftp主机名或ftp ip地址。,17文件权限的设定 (1)

9、改变文件或目录的读、写、执行权限。 语法:chmod -R mode name name:文件名或目录名。 mode:3位8进制数字或rwx的组合。r- read(读),w write(写),x execute(执行),u user(当前用户),g - group(组),o - other(其他用户)。 (2)改变文件或目录的所有权。 语法:chown -R 用户名name,18检查自己所属的工作组名称 语法:groups 19改变文件或目录工作组所有权 语法:chgrp -R工作组名name 20改变文件或目录的最后修改时间 语法:touch name 21文件的链接 同一文件,可拥有一个以

10、上的名称,也就是把一个文件进行链接。 语法:ln老文件名 新文件名 22文件中字符串的查找 语法:grep string file,23查寻文件或命令的路径 语法:whereis command显示命令的路径。 语法:which command显示命令的路径,及使用者所定义的别名。 语法:whatis command显示命令功能的摘要。 语法:find search-path -name filename -print搜寻指定路径下某文件的路径。 24比较文件或目录的内容 语法:diff -r name1 name2,25文件打印输出 用户可用.login文件中的setenv PRINTER命

11、令来设定打印机名。 26一般文件的打印 语法:lpr -P打印机名文件名 27ptroff文件的打印 语法:ptroff -P打印机名 -man-ms 文件名 28打印机控制命令 (1)检查打印机状态、打印作业顺序号和用户名。 语法:lpq -P打印机名 (2)删除打印机内的打印作业(用户仅可删除自己的打印作业)。 语法:lprm -P打印机名 用户名或作业编号,29进程控制 (1)查看系统中的进程。语法:ps -aux (2)结束或终止进程。语法:kill -9 PID PID:利用ps命令所查出的进程号。 (3)在后台执行进程的方式。语法:命令 return0; 然后在命令行执行: $ar

12、m-linux-gcchelloworld.c-ohelloworld $filehelloworld 如果输出以下信息,说明成功建立了编译工具。 helloworld:ELF32-bitLSBexecutable,ARM,version1,dynamicallylinked(usessharedlibs),notstripped,Linux及开发工具的使用,GNU提供的编译工具包括汇编器as、C编译器gcc、C+编译器g+、链接器ld和二进制转换工具objcopy。基于ARM平台的工具分别为arm-linux-as、arm-linux-gcc、arm-linux-g+、arm-linux-l

13、d和arm-linux-objcopy。GNU的所有开发工具都可以从www.gnu.org上下载,基于ARM的工具可以从www.uclinux.org获得。 GNU工具的开发流程如下:编写C、C+语言或汇编源程序,用gcc或g+生成目标文件,编写链接脚本文件,用链接器生成最终目标文件(elf格式),用二进制转换工具生成可下载的二进制代码。,Linux下的GNU调试工具主要是gdb、gdbserver和kgdb。其中gdb和gdbserver可完成对目标板上Linux应用程序的远程调试。gdbserver是一个很小的应用程序,运行于目标板上,可监控被调试进程的运行,并通过串口与上位机上的gdb通

14、信。开发者可以通过上位机的gdb输入命令,控制目标板上进程的运行,查看内存和寄存器的内容。 gdb5.1.1以后的版本加入了对ARM处理器的支持,在初始化时加入-target=arm参数可直接生成基于ARM平台的gdbserver。gdb工具可以从ftp:/ftp.gnu.org/pub/gnu/gdb/上下载,gcc编译器的使用,gcc最基本的用法是:gcc options file. 其中的option是以“-”开始的各种选项,file是相关的文件名。在使用gcc的时候,必须要给出必要的选项和文件名。gcc的整个编译过程分别是:预处理,编译,汇编和链接。,gcc编译器几个最常用的选项: -

15、o表示要求编译器生成指定文件名的可执行文件; -c表示只要求编译器进行编译,而不要进行链接,生成以源文件的文件名命名但把其后缀由.c或.cc变成.o的目标文件; -g要求编译器在编译的时候提供以后对程序进行调试的信息; -E表示编译器对源文件只进行预处理就停止,而不做编译、汇编和链接; -S表示编译器只进行编译,而不做汇编和链接; -O是编译器对程序提供的编译优化选项,在编译的时候使用该选项,可以使生成的执行文件的执行效率提高; -Wall指定产生全部的警告信息。,$ gcc -o hello hello.c gcc编译器就会生成一个hello的可执行文件。在hello.c的当前目录下执行./

16、hello就可以看到程序的输出结果,在屏幕上打印出“Hello the world”的字符串来。 GNU编译器生成的目标文件默认格式为elf(executive linked file)格式,这是Linux系统所采用的可执行链接文件的通用文件格式。elf格式由若干个段(section)组成,如果没有特别指明,由标准c源代码生成的目标文件中包含以下段: .text(正文段)包含程序的指令代码, .data(数据段)包含固定的数据,如常量,字符串等, .bss(未初始化数据段)包含未初始化的变量和数组等。,Makefile文件和Make命令,Makefile文件描述了目标文件之间的依赖关系,以及指定编译过程中使用的工具。一个工程中的源文件按其类型、功能、模块分别放在若干个目录中。Makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译。Makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。Makefile带来的好处就是“自动化编译”

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件 > 高中课件

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