第20章linux基本编程

合集下载

Linux基础与应用(sy)

Linux基础与应用(sy)

1.4 Linux与Unix的区别 与 的区别
某些PC机的 在实现方面类似; 某些 机的Unix和Linux在实现方面类似; 机的 和 在实现方面类似 Linux是免费软件,商业 是免费软件, 是免费软件 商业Unix除了软件本 除了软件本 身的价格外,用户还需支付文档、 身的价格外,用户还需支付文档、售后服 务的费用; 务的费用; 针对PC机的 机的Unix—FreeBSD与Linux兼容, 兼容, 针对 机的 与 兼容 更便于用户的使用。 但Linux更便于用户的使用。 更便于用户的使用
1.2 Linux的发展史 的发展史
1991年8月芬兰赫尔辛基大学的年轻人 年 月芬兰赫尔辛基大学的年轻人 Linus自己书写了一个保护模式下的操作系 自己书写了一个保护模式下的操作系 这就是Linux的原型; 的原型; 统,这就是 的原型 1991年10月5日,发布了 年 月 日 发布了Linux的第一个正 的第一个正 式版本: 式版本:0.02版; 版 1994年的 月14日发布了 年的3月 日发布了 日发布了Linux的1.0版; 年的 的 版 1994年11月,Hurd的第一个雏形发表; 的第一个雏形发表; 年 月 的第一个雏形发表 1997年6月发布 月发布Hurd的0.2版本。 版本。 年 月发布 的 版本
1.6 小结
本章概括性地介绍了Linux的产生与 本章概括性地介绍了 的产生与 发展过程,主要内容包括Linux的发展历 发展过程,主要内容包括 的发展历 的发行版本、 史、Linux的发行版本、Linux和Unix的区 的发行版本 和 的区 如何获得Linux等内容。 等内容。 别、如何获得 等内容 通过本章的学习,可以对Linux操作 通过本章的学习,可以对 操作 系统的产生背景、产生过程、 系统的产生背景、产生过程、特点和与 Unix的区别,以及如何获得 的区别, 的区别 以及如何获得Linux等内容 等内容 有一个概括性的了解, 有一个概括性的了解,进而为学习和掌握 Linux打下坚实的基础。 打下坚实的基础。 打下坚实的基础

嵌入式系统习题集

嵌入式系统习题集

一、填空1. 嵌入式系统在硬件设计、操作系统的选择、以及软件的设计上都要遵循―面向应用、量体裁衣、够用为度‖的原则。

2. 嵌入式处理器是嵌入式系统的核心部件,是控制、辅助系统运行的硬件单元。

3. 试列举三种以上主流的通用处理器:ARM/StrongARM、MIPS、PowerPC、X86、68K/Coldfire。

4. ARM处理器共有37个寄存器,其中包括31个通用寄存器和6个状态寄存器。

5. ARM处理器有7种不同的处理器模式,在每一种处理器模式下均有一组相应的寄存器与之对应。

即在任意一种处理器模式下,可访问的寄存器包括15个通用寄存器(R0~R14)、一至二个状态寄存器和程序计数器。

6. 寄存器R13在ARM指令中常用作堆栈指针。

R14也称作子程序连接寄存器或连接寄存器LR,当发生中断或异常时,对应的分组寄存器R14_svc、R14_irq、R14_fiq、R14_abt和R14_und用来保存R15的返回值。

7. ARM微处理器的在较新的体系结构中支持两种指令集:ARM指令集(指令长度为32位)和Thumb指令集(指令长度为16位)。

8. 寄存器R15用作程序计数器(PC)。

该寄存器在ARM状态下,位[1:0]为0,位[31:2]用于保存PC;在Thumb状态下,位[0]为0,位[31:1]用于保存PC。

9. 寄存器R16用作CPSR(当前程序状态寄存器),CPSR可在任何运行模式下被访问。

每一种运行模式下又都有一个专用的物理状态寄存器,称为SPSR (备份的程序状态寄存器)。

10. Thumb状态下的寄存器集是ARM状态下寄存器集的一个子集,程序可以直接访问8个通用寄存器(R7~R0)、程序计数器(PC)、堆栈指针(SP)、连接寄存器(LR)和CPSR。

11. 每一条ARM指令包含的条件码位于指令的最高4([31:28])位,每种条件码可用两个字符表示,可以添加在指令助记符的后面和指令同时使用。

第2章Linux编程环境

第2章Linux编程环境
第21页,共37页。
第2章Linux编程环境
工程中共有5个文件,在add目录中有add_int.c和add_float.c两个文件分别计算整形和浮点型的相加 ;在sub目录下有文件sub_int.c和sub_float.c,分别计算整形和浮点型的相减;顶层目录有文件main.c负责整个程序

工程中的代码分别存放在add/add_int.c、add/add_float.c、add/add.h、sub/sub_int.c 、sub/sub_float.c、sub/sub.h和main.c中。
set shiftwidth=2
#设置缩进为2个空格
set tabstop=2
#设置<TAB>键宽度为2个空格
set number
#显示行号
再次启动vim对缩进宽度,Tab键的宽度都进行了设定,并且自动显示行号。
第6页,共37页。
第2章Linux编程环境
在Linux下还有一些其他的编辑器,例如Gvim等(Gvim是vim的gnome版本)、codeblocks(严 格来说是一个IDE开发环境)。
下面是一个程序的源代码,代码的作用是在控制台输出“Hello World!”字符串。
/*hello.c*/ #include <stdio.h> int main(void) {
printf(“Hello World!\n”);
return 0;
}
第11页,共37页。
第2章Linux编程环境
目标文件是指经过编译器的编译生成的CPU可识别的二进制代码,因为其中的一些函数过程没有相关
vim的编辑命令有很多,本小节选取经常使用的几个命令进行介绍。介绍如何在vim下移动光标,进行删除字 符、复制、查找、转跳等操作。

Linux系统编程考试资料

Linux系统编程考试资料

Linux系统程序设计第1章 Linux操作系统基础1.1 Unix/Linux操作系统简介1.2 相关术语1.3 库函数与系统调用1.4 项目构思-远程访问虚拟机1.5 Linux常用命令1.6 项目设计、实施与运行1.1 Unix/Linux操作系统简介Unix概述1969年:Ken Thompson 汇编语言1973年:与Dennis Ritchie用C语言重写UNIX ⅢUNIX分为System V和 BSD两大主流1978年:加利福尼亚大学伯克利分校以UNIX第六版为基础改进成BSD系列UNIX1983年:System V版本1发布,第一个商业UNIX版本System V 版本4是较成功的,或称为SVR41992年,版权纠纷,伯克利分校删除原UNIX代码,重写内核,1994年诞生4.4BSD版本,成为现代BSD基本版本1.1 Unix/Linux操作系统简介Linux概述1987年:荷兰的Vrije大学的Andrew S. Tanenbaum开发MINIX,用于操作系统课程的教学。

1991年:Linus学习MINIX,并发布了Linux内核。

2003年:Linux2.6版本内核发布Linux版本的两种说法内核版本:Linux2.4.20,Linux2.6等r.x.y:r-主版本号,x-偶数稳定奇数开发,y-错误修补次数发行版本:RedHat Linux 9.0,SUSE 10,Ubuntu等厂家将Linux内核与外围实用程序和文档包装,提供安装界面和系统配置、管理工具等,形成的操作1.2 相关术语操作系统多用户系统用户和组进程文件硬链接和软链接文件类型文件描述符与索引节点1.3 库函数与系统调用系统调用操作系统提供给外部程序的接口。

库函数C语言库函数提供给C语言编程需要的功能,有的库函数需要调用系统调用接口。

Linux中有GNU的glibc,POSIX的线程函数库等。

从用户角度观察都以常见的C语言函数形式出现,调用方法一致。

《Linux C从入门到精通》.明日科技.第20章.MP3 音乐播放器

《Linux C从入门到精通》.明日科技.第20章.MP3 音乐播放器

GStreamer简介
gst_bus_add_watch(bus,bus_call,loop); gst_object_unref(bus); //把组件添加到管道中.管道是一个特殊的组件,可以更好的让数据流动 gst_bin_add_many(GST_BIN(pipeline),source,decoder,sink,NULL); //依次连接组件 gst_element_link_many(source,decoder,sink,NULL); gst_element_set_state(pipeline,GST_STATE_PLAYING); //每隔1000毫秒,更新一次滚动条的位置 g_timeout_add (1000, (GSourceFunc) cb_set_position, NULL); //开始循环 g_main_loop_run(loop); gst_element_set_state(pipeline,GST_STATE_NULL); gst_object_unref(GST_OBJECT(pipeline)); 为了简化我们必须编写的代码,我们将利用由GStreamer 0.10提供的一个被称为playbin的便利元素。这是一个高级元素,它实际上是一个 预建立的管道。通过使用GStreamer的文件类型检测功能,它可以从任何指定的URI读取数据,并确定合适的解码器和输出接收器来正确地 播放它。在本例中,这意味着它可以识别和正确地解码在GStreamer中有相应插件的任何音频文件 (你可以通过在终端上运行命令gstinspect-0.10来列出 GStreamer0.10中的所有插件)。 //建立playbin对象 GstElement *play=gst_element_factory_make(“playbin”, “play”); //设置打开文件 g_object_set(G_OBJECT(play), “uri”,uri,NULL); //增加回调函数 gst_bus_add_watch(gst_pipeline_get_bus(GST_PIPELINE(play)),bus_callback,NULL); //设置播放、暂停和停止状态。 gst_element_set_state(play, GST_STATE_PLAYING); gst_element_set_state(play, GST_STATE_PAUSED); gst_element_set_state(play, GST_STATE_NULL); 这样就可以控件Mp3文件的播放了。

linux课程设计评语

linux课程设计评语

linux课程设计评语一、教学目标本章节的教学目标是使学生掌握Linux操作系统的基本概念、命令和操作,培养学生具备基本的Linux系统管理和维护能力。

具体目标如下:1.知识目标:(1)了解Linux操作系统的历史、特点和应用领域;(2)掌握Linux文件系统结构及基本命令;(3)熟悉Linux用户管理、权限控制和软件安装;(4)了解Linux网络配置和常用网络命令。

2.技能目标:(1)能够熟练使用Linux命令行界面;(2)掌握文件和目录的基本操作;(3)学会用户管理和权限控制;(4)能够配置Linux网络环境。

3.情感态度价值观目标:(1)培养学生对Linux操作系统的兴趣和好奇心;(2)培养学生主动探索、合作学习的意识;(3)培养学生热爱科学、追求技术进步的精神。

二、教学内容本章节的教学内容主要包括Linux操作系统的基本概念、文件系统、用户管理、权限控制、网络配置等。

具体安排如下:1.介绍Linux操作系统的历史、特点和应用领域;2.学习Linux文件系统结构,掌握基本命令;3.学习Linux用户管理,包括用户添加、删除、密码设置等;4.学习Linux权限控制,包括文件权限设置、所有权变更等;5.学习Linux软件安装,包括包管理器使用和源代码编译安装;6.学习Linux网络配置,包括网络接口配置、IP地址设置等;7.练习Linux命令行操作,巩固所学知识。

三、教学方法本章节采用多种教学方法,以激发学生的学习兴趣和主动性:1.讲授法:讲解Linux操作系统的基本概念、原理和命令;2.讨论法:学生讨论Linux操作系统的应用场景和优缺点;3.案例分析法:分析实际案例,让学生学会解决实际问题;4.实验法:引导学生动手实践,熟练掌握Linux操作。

四、教学资源本章节的教学资源包括教材、参考书、多媒体资料和实验设备等。

具体如下:1.教材:《Linux操作系统教程》;2.参考书:《Linux命令行与shell脚本编程大全》;3.多媒体资料:Linux操作系统演示视频、实验教程等;4.实验设备:计算机、网络设备等,用于实践教学。

《LinuxUNIX系统编程手册》导读

《LinuxUNIX系统编程手册》导读

《LinuxUNIX系统编程⼿册》导读本书可以分为以下⼏个部分:1. 背景知识及概念UNIX、C语⾔以及 Linux的历史回顾,以及对UNIX标准的概述:《第1章历史和标准》。

以程序员为对象,对Linux和UNIX的概念进⾏介绍:《第2章基本概念》。

Linux和UNIX系统编程的基本概念:《第3章系统编程概念》。

2. 系统编程接⼝的基本特性⽂件I/O:《第4章⽂件I/O:通⽤的I/O模型》、《第5章深⼊探究⽂件I/O》。

内存分配:《》、《》、《》。

⽤户和组:《第8章⽤户和组》。

时间:《第10章时间》。

系统限制和选项:《第11章系统限制和选项》3. 系统编程接⼝的⾼级特性⽂件IO缓冲:《第13章⽂件I/O缓冲》。

⽂件系统:《第14章⽂件系统》。

⽂件属性:《第15章⽂件属性》。

扩展属性:《第16章扩展属性》。

访问控制列表:《第17章访问控制列表》。

⽬录和链接:《第18章⽬录和链接》。

信号:《第19章监控⽂件事件》、《第20章信号:基本概念》、《第21章信号:信号处理函数》、《第22章信号:⾼级特性》。

定时器:《第23章定时器与休眠》。

4. 进程、程序《》、《第9章进程凭证》、《》、《》、《》、《》、《》、《第34章进程组、会话和作业控制》、《第35章进程优先级和调度》、《第36章进程资源》、《》、《第38章编写安全的特权程序》、《第39章能⼒》、《第40章登录记账》、《第41章共享库基础》、《第42章共享库⾼级特性》。

5. 线程《》、《第30章线程:线程同步》、《第31章线程:线程安全和每线程存储》、《第32章线程:线程取消》、《第33章线程:更多细节》6. 进程间通信(IPC)《》:《第45章 System V IPC介绍》《第51章 POSIX IPC介绍》。

数据传输:《第44章管道和FIFO》、《第46章 System V 消息队列》、《》。

共享内存:《》、《第54章 POSIX 共享内存》。

Linux命令行与shell脚本编程大全(第4版)

Linux命令行与shell脚本编程大全(第4版)

第5章理解shell
5.1 shell的类型 5.2 shell的父子关系 5.3理解外部命令和内建命令 5.4小结
第6章 Linux环境变量
6.1什么是环境变量 6.2设置用户自定义变量 6.3删除环境变量 6.4默认的shell环境变量 6.5设置PATH环境变量 6.6定位系统环境变量 6.7数组变量 6.8小结
第10章文本编辑器
10.1 vim编辑器 10.2 nano编辑器 10.3 Emacs编辑器 10.4 KDE系编辑器 10.5 GNOME编辑器 10.6小结
第11章构建基础脚本 第12章结构化命令
第13章更多的结构化 命令
第14章处理用户输入
第15章呈现数 据
第16章脚本控 制
第11章构建基础脚本
第24章编写简单的脚本实用工具
24.1备份 24.2删除账户 24.3系统监控 24.4小结
第25章井井有条
25.1理解版本控制 25.2设置Git环境 25.3使用Git提交文件 25.4小结
A.2常见的bash命 令
A.1内建命令
A.3环境变量
B.1 sed编辑 器
B.2 gawk程序
作者介绍
Linux命令行与shell脚本编程 大全(第4版)
读书笔记模板
01 思维导图
03 读书笔记 05 目录分析
目录
02 内容摘要 04 精彩摘录 06 作者介绍
思维导图
本书关键字分析思维导图
命令行
脚本
脚本

编程 学习
实战
教程 小结
脚本
文件
处理

第章
基础
命令
变量
演练
模式

Linux入门学习大全超详细 ppt课件

Linux入门学习大全超详细 ppt课件

Linux操作系统
1994年,Linux的第一个产品版Linux 1.0问世,如 今Linux家族已经有了近140个不同的版本,所有这些 版本都基于最初的免费的源代码。不同的公司可以推 出不同的Linux产品,但是它们都必须承诺对初始源代 码的任何改动皆公布于众。
Linux操作系统
1.1.2 Linux的优点 Linux之所以受到广大计算机爱好者的喜爱,主要原
Linux操作系统
(2) 可以节省大量的资金。Linux是目前惟一可免费 获得的、为PC机平台上的多个用户提供多任务、多进 程功能的操作系统,这是人们喜欢使用它的主要原因。 就PC机平台而言,Linux提供了比其他任何操作系统都 要强大的功能,Linux还可以使用户远离各种商品化软 件提供者促销广告的诱惑,再也不用承受每过一段时 间就花钱去升级之苦,因此可以节省大量用于购买或 升级应用程序的资金。
Linux操作系统
(5) 提供功能强大而稳定的网络服务。Linux最优秀 的功能莫过于其网络功能。首先,它可以支持众多的 网 络 协 议 , 比 如 TCP/IP 协 议 、 SPX/IPX 协 议 、 NETBEUI协议、X.25协议等;其次,Linux可以提供非 常广泛的网络服务,比如WWW、FTP、E-mail、Telnet、 NFS、DHCP、Samba、防火墙以及企业的群组服务等, 这些功能为Linux提供了无与伦比的网络亲和性。
Linux操作系统
4. 实用工具 标准的Linux系统都有一套叫做实用工具的程序,它 们是专门的程序,例如编辑器、执行标准的计算操作 等。另外,用户也可以产生自己的工具。
Linux操作系统
一般来讲,实用工具可分为以下三类。 (1) 编辑器:用于编辑文件。Linux的编辑器主要 有vi、emacs、pico等。 (2) 过滤器:用于接收并过滤数据。Linux的过滤 器(Filter)读取从用户文件或其他地方输入的数据,经 检查和处理后输出结果。从这个意义上说,它们过滤 了经过它们的数据。Linux有不同类型的过滤器,一些 过滤器用行编辑命令输出一个被编辑的文件;另外一 些过滤器是按模式寻找文件并以这种模式输出部分数 据;

Linux_基础教程--Shell脚本编程

Linux_基础教程--Shell脚本编程
17

学习各种管理和监视命令的使用


学习各种文本文件工具的使用

2014年12月24日
变量和表达式
2014年12月24日
18
Shell 变量操作

变量替换扩展


输入

变量测试 变量的字符串操作 变量的间接引用 $[expression] $((expression)) expr let declare -i

Shell 脚本的执行

PATH 环境变量的默认值不包含当前目录, 若脚本文件在当前目录,应使用 ./script-file
PATH 环境变量的默认值包含 ~/bin 目录, 用户可以将自己的脚本文件存放在 ~/bin 目录, 之后即可直接调用脚本文件名执行脚本了

2014年12月24日
7
Shell 脚本的编码规范
${var/%old/new}
用new替换${var}中结尾部分与old匹配的部分
注: (1)old 中可以使用 通配符。 (2)var 可以是 @ 或 *,表示对每个位置参数进行替换
sh –n 脚本名
对脚本进行语法检查,但不执行脚本。如果存在语法错误,shell 会报错,如果没有错误,则不显示任何内容。
2014年12月24日
12
脚本调试举例 1

对脚本进行语法检查
$ bash -n greetings.sh

显示脚本中每个原始命令行及其执行结果
$ bash -v greetings.sh
2014年12月24日 22
字符串变量替换扩展举例1
str='I love linux. I love UNIX too.‟

Linux操作系统

Linux操作系统

• 每个版本又分为以下几种:
• Fedora Desktop
• Fedora Workstation Server(WS)
• Fedora Enterprise Server(ES)
• Fedora Advanced Server(AS)
第七页,共317页。
第一章 Linux简介
• Red Hat Fedora
芬兰的大学生Linus Torvalds在Minix基础上 编写了 一个操作系统核心软件,并于1991年10月公布为 Linux 0.0.2版。随后世界上众多的 Unix爱好者和黑 客共同完善了其余部分。
目前有很多商业公司可以免费得到Linux的核心源 代码,并加以包装和改进后形成自己的产品, 即 Linux发行套件(distribution)。
第一章 Linux简介
一、Linux的发展过程
• 在Linux操作系统面世之前,计算机操作系统市场 主要由两大系统占领:Unix系统和Microsoft Windows。
• Unix是大中小型机、工作站和高档微型机的主流操作 系统,拥有众多的企业用户,并已成为事实上的操作 系统标准。
• Windows系统则以易用性占据了微型计算机操作系统 市场的绝大部分份额。
1992年4月
第一个Linux新闻组comp.os.linux诞生,Linux 0.96首次可以运 行X- Window;
1993年1月 第一个商业发行版Slackware Linux诞生;
1994年3月 Linux 1.0推出,Linux转向GPL版权协议;
1995年3月 Linux 1.2推出;
第二章 图形环境
三、GNOME的基本操作
GNOME面板(即windows任务栏)

循序渐进Linux(第2版) 基础知识 服务器搭建 系统管理

循序渐进Linux(第2版) 基础知识 服务器搭建 系统管理

9.1网络安全概述 9.2操作系统常用安全策略 9.3 Linux软件防火墙iptables 9.4 Linux系统的备份
10.1 Linux下常见系统故障的处理 10.2 Linux下常见网络故障处理 10.3 “Read-only file system”错误与解决案例 10.4通过su命令切换用户带来的困惑 10.5因NAS存储故障引起的Linux系统恢复案例
作者介绍
这是《循序渐进Linux(第2版) 基础知识 服务器搭建 系统管理 性能调优 虚拟化与集群应用》的读书笔 记模板,暂无该书作者的介绍。
精彩摘录
这是《循序渐进Linux(第2版) 基础知识 服务器搭建 系统管理 性能调优 虚拟化与集群应用》的读书笔 记模板,可以替换为自己的精彩内容摘录。
第16章 Linux 系统优化思路
第17章 Linux 系统性能评估 与优化案例
16.1性能问题综述 16.2影响Linux性能的因素 16.3分析系统性能涉及的人员 16.4系统性能分析工具 16.5系统性能分析标准 16.6本章总结
17.1 CPU性能评估 17.2内存性能评估 17.3磁盘I/O性能评估 17.4网络性能评估 17.5基于Web应用的性能分析及优化案例
第19章高性能集群 软件Keepalived
第18章虚拟化云计 算平台Proxmox VE
第20章负载均衡集 群LVS与HAProxy
18.1 OpenVZ简介 18.2 KVM简介 18.3 Proxmox VE简介 18.4安装Proxmox VE 18.5 Proxmox VE的使用
19.1集群的定义 19.2集群的特点与功能 19.3集群的分类 19.4 HA集群中的相关术语 19.5 Keepalived简介 19.6 Keepalived安装与配置 19.7 Keepalived基础功能应用实例

精通Linux内核:智能设备开发核心技术

精通Linux内核:智能设备开发核心技术

谢谢观看
第15章进程调度
第14章进程
第16章信号处理
第17章进程通 信
第18章程序的 执行
第19章梳理操作系统: I/O多路复用
第20章智能设备的传 感器开发
第21章智能设备的 Camera开发
第22章设备驱动开发: 设备驱动模型
第24章从内核的角 度看芯片和驱动
第23章安卓系统的 核心:BindeБайду номын сангаас通信
目录分析
第1章基于Linux内 核的操作系统
第2章数据结构的使 用
第3章时间的衡量和 计算
第4章中断和中断处 理
第5章内核同步
第6章事件的同 步与异步
第7章内存寻址
第8章物理内存的管 理
第9章内存线性空间 布局
第10章内存管理进阶
第12章 sysfs文件 系统
第11章文件系统
第13章 ext4文件 系统
第25章 Linux与人 工智能
附录B链接脚本
附录A内嵌汇编语 言
附录C函数和宏所 属文件表
作者介绍
这是《精通Linux内核:智能设备开发核心技术》的读书笔记模板,暂无该书作者的介绍。
读书笔记
这是《精通Linux内核:智能设备开发核心技术》的读书笔记模板,可以替换为自己的心得。
精彩摘录
这是《精通Linux内核:智能设备开发核心技术》的读书笔记模板,可以替换为自己的精彩内容摘录。
精通Linux内核:智能设备开发核心 技术
读书笔记模板
01 思维导图
03 目录分析 05 读书笔记
目录
02 内容摘要 04 作者介绍 06 精彩摘录
思维导图
本书关键字分析思维导图
设备

Linux命令大全

Linux命令大全

#cp -r /dir5 /tmp
复制/dir5 目录到/tmp 下
2.1.7 移动文件或目录命令 mv
#mv file4 /tmp
移动 file4 文件到/tmp 目录下
#mv /home/file3 /tmp
移动/home/file3 文件到/tmp 目录下
3 / 45
#mv /home/file3 /tmp/file5 移动/home/file3 文件到/tmp 目录下并改名为 file5
1.3.2 linux 的登陆与登出 login 登入系统 logout 登出系统 exit 注销当前用户 clear 清屏命令
1.3.3 linux 的关机
shutdown
关机命令
shutdown now立即进入维护模式来自halt直接关机
shutdown -h now 立即关机
shutdown -r now 立即重新启动计算机
1.2.1 linux 的常见发行版本 redhat:advanced standard 5 ; Enterprise standard 5 ;workstation standard fedora: fedora 10 Ubuntu:ubuntu 8.10 OpenSUSE:opensuse 11.0 redflag:redflag 7 asianux: asianux 3.0
删除文件 file1 不用确认直接删除 file1 不用确认同时删除多个文件 删除指定目录/tmp 下的文件 file1 删除以 fi 开头的文件 删除空目录 递归的方式删除非空目录 dir 不用确认直接删除非空目录 dir
2.1.9 查看文件内容命令 cat
#cat /etc/passwd

英利 Linux 工控主板应用程序 编程手册

英利 Linux 工控主板应用程序 编程手册

Emlinix感谢您选择英利嵌入式Linux工控主板。

英利EM9x60系列工控主板包括五个型号:EM9160、EM9161、EM9260、EM9360和EM9460。

为便于读者了解和使用英利产品,本手册中一些部分会以EM9160为例进行讲解;一些示例程序也会以EM9160命名。

然而,本手册和上述示例程序完全适用于这五个产品。

英利EM9x60工控主板是面向工业自动化领域的高性价比嵌入式工控主板,其硬件核心为工业级的ARM9芯片AT91SAM9260和AT91SAM9261(EM9161)。

EM9x60预装嵌入式Linux-2.6实时多任务操作系统,并针对板载的各个接口,提供了完整的接口底层驱动以及丰富的应用程序范例。

用户可在此基础上,利用熟悉的各种软件工具直接开发自己的应用程序,以方便、快速地构成各种高性能工控产品。

本手册主要是为在英利嵌入式Linux工控主板上进行Linux应用程序开发的客户提供基本的编程指南。

此外,英利公司针对软硬件开发环境的配置编写有《英利Linux工控主板使用必读(EM9x60)》;针对工控主板和开发评估底板的使用编写有相应的使用手册。

这些手册都包含在英利为用户提供的产品开发光盘里面,用户也可以登录英利公司网站下载相关资料的最新版本。

在使用英利产品进行应用开发的过程中,如果您遇到任何困难需要帮助,都可以通过以下三种方式寻求英利工程师的技术支持:1、直接致电028-******** 853293602、发送邮件到技术支持邮箱support@3、登录英利网站,在技术论坛上直接提问另,本手册以及其它相关技术文档、资料均可以通过英利网站下载。

注:英利公司将会不断完善本手册的相关技术内容,请客户适时从公司网站下载最新版本的手册,恕不另行通知。

再次谢谢您的支持!目录1 前言 (4)2 G++集成开发环境入门 (7)2.1S OURCERY G++IDE下创建和管理C++应用工程 (7)2.2S OURCERY G++IDE下编译C++应用工程 (16)3 通过NFS进行应用程序调试 (20)3.1在W INDOWS开发主机配置NFS服务器 (20)3.2使用NFS在EM9X60主板上挂载应用程序工作目录 (21)3.3应用程序测试运行 (22)3.4应用程序PRINTF语句的使用 (24)4 驱动程序及其调用方法 (25)4.1L INUX驱动程序调用方法概述 (25)4.2精简ISA总线驱动程序 (26)4.3GPIO驱动程序 (28)4.4矩阵键盘驱动程序 (30)4.5外部硬中断驱动程序 (32)4.6看门狗WDT驱动程序 (35)4.7系统配置信息驱动程序 (36)5 应用程序编程范例之一:LCD显示 (38)5.1EM9X60单色LCD显示 (38)5.2EM9161彩色LCD显示 (41)6 应用程序编程范例之二:串口通讯 (46)6.1串口编程接口函数 (46)6.2串口综合应用示例 (47)7 应用程序编程范例之三:TCP服务器 (53)7.1TCP S OCKET编程 (53)7.2支持多连接的TCP服务器应用示例 (53)8 应用程序编程范例之四:TCP客户端 (58)8.1TCP客户端S OCKET编程流程 (58)8.2TCPC LIENT应用示例 (58)附录1 版本信息管理表 (64)1 前言Linux操作系统是当前嵌入式系统中使用最为广泛的操作系统。

华为内部linux培训资料

华为内部linux培训资料

Linux 操作指导专题(仅供内部使用)拟制: 日期2003-09-06审核: 日期2003-09-06审核: 日期2003-09-06批准: 日期2003-09-06华为3Com技术有限公司版权所有侵权必究修订记录目录第1 章命令行操作及常用命令使用 (5)1.1 命令行操作 (5)1.1.1 Shell 简介 (5)1.1.2 Shell 控制台使用方法 (6)1.2 常用命令使用 (6)1.2.1 登录和退出Linux 系统 (6)1.2.2 文件和目录操作命令 (8)1.2.3 用户及用户组管理命令 (10)1.2.4 进程及任务管理命令 (13)1.2.5 磁盘及文件系统管理命令 (16)1.2.6 软件安装命令 (17)第2 章文件查看/编辑方法介绍 (19)2.1 cat 命令介绍 (19)2.2 vi 命令介绍 (19)2.2.1 vi 的进入与退出 (20)2.2.2 vi 中显示行号 (20)2.2.3 光标移动操作 (21)2.2.4 文本插入操作 (22)2.2.5 文本修改操作 (23)2.2.6 文本搜索与替换操作 (25)2.3 head 及tail 命令介绍 (26)第3 章网络配置及操作 (27)3.1 网络配置命令 (27)3.1.1 ifconfig (27)3.1.2 route (28)3.2 网络操作命令 (30)3.2.1 netstat (30)3.2.2 nslookup (31)3.2.3 host (32)3.2.4 finger (32)3.2.5 Ping 命令 (33)3.3 常用网络配置文件介绍 (33)3.3.1 /etc/sysconfig/network 网络设置 (34)3.3.2 /etc/hosts IP 地址和主机名的映射 (34)3.3.3 /etc/services (35)3.3.4 /etc/host.conf 配置名字解析器 (35)3.3.5 /etc/nsswitch.conf 配置名字解析器 (36)3.3.6 /etc/resolv.conf 配置DNS 客户 (37)3.3.7 /etc/xinetd.conf (37)3.3.8 /etc/modules.conf 文件 (39)3.3.9 /etc/sysconfig/network-scripts/ifcfg-ethN 文件 (39)3.4 常用网络操作方法 (39)3.4.1 ftp 远程文件传输 (40)3.4.2 telnet (42)3.4.3 r-系列命令 (43)第4 章常用使用技巧 (45)4.1 Linux 下软件包的安装及卸载 (45)4.1.1 RPM 安装操作 (45)4.1.2 RPM 查询操作 (45)4.1.3 RPM 卸载操作 (46)4.1.4 RPM 升级操作 (46)4.1.5 RPM 验证操作 (46)4.1.6 RPM 的其他附加命令 (47)4.2 Linux 操作系统的时钟系统 (47)4.2.1 时钟系统介绍 (47)4.2.2 硬件时钟系统与系统时间的同步 (47)4.3 系统信息及运行状态监控 (48)4.3.1 df 命令 (49)4.3.2 du 命令 (49)4.3.3 top 命令 (49)4.3.4 iostat 命令 (50)4.4 打包/压缩工具tar (50)4.5 文件及文件内容的查找 (51)4.5.1 文件查找命令find (51)4.5.2 文件内容查找命令grep (51)4.6 Linux 的系统服务及其配置 (52)4.6.1 服务简介 (52)4.6.2 启动和停止服务 (52)4.6.3 服务的添加删除自动运行及状态 (53)ell第1章 命令行操作及常用命令使用1.1 命令行操作1.1.1 Shell 简介shell 是用户和 Linux 操作系统之间的接口 Linux 中有多种 shell 其中缺省 使用的是 bashLinux 系统的 shell 作为操作系统的外壳为用户提供使用操作系统的接口 它是一个命令语言解释器 拥有自己内建的 shell 命令集 shell 也能被系统中其 他应用程序所调用 用户在提示符下输入的命令都由 shell 先解释然后传给 Linux 核心Linux 中的 shell 有多种类型 其中最常用的几种是 Bourne shsh C shellcsh 和 Korn shell ksh 三种 shell 各有优缺Bourne shell 是 UNIX 最初使用的 shell 并且在每种 UNIX 上都可以使用 Bourne shell 在 shell 编程方面相当优秀 但在处理与用户的交互方面做得不 如其他几种 shell Linux 操作系统缺省的shell 是 Bourne Again shell 它是 Bourne shell 的扩展 简称 bash 与 Bourne shell 完全向后兼容 并且在Bourne shell 的基础上增加增强了很多特性 它还包含了很多 C shell 和 Korn shell 中的优点 有灵活和强大的编程接口同时又有很友好的用户界面C shell 是一种比 Bourne shell 更适于编程的 shell 它的语法与 C 语言很相似Linux 为喜欢使用 C shell 的人提供了 Tcsh Tcsh 是 C shell 的一个扩展版本 Tcsh 包括命令行编辑可编程单词补全 拼写校正 历史命令替换 作业控制 和类似 C 语言的语法 它不仅和 Bash shell 是提示符兼容 而且还提供比 Bash shell 更多的提示符参数Korn shell 集合了 C shell 和 Bourne shell 的优点并且和 Bourne shell 完全兼 容 Linux 系统提供了pdksh ksh 的扩展它支持任务控制 可以在命令行 上挂起 后台执行 唤醒或终止程序Redhat Linux 系统默认的 shell 是 bash 对普通用户用$作提示符 对超级用户 root 用#作提示符 一旦出现了 shell 提示符就可以键入命令名称及命令所 需要的参数我们来实习一下 shell 是如何工作的 在shell 提示符下输入以下命令$ ls –al该命令可以列出当前目录下的所有文件和子目录用户在登录到 Linux 时 由/etc/passwd 文件来决定要使用哪个 shell 例如该文件中含有类似如下一行myself:x:500:500:Linux User:/home/myself:/bin/bash用户使用的 shell 被列每行的末尾/bin/bash由于 bash 是 Redhat Linux 上缺省的 shell 本文将主要介绍 bash 及其相关知 识1.1.2 Shell 控制台使用方法首先介绍一个名词控制台console 它就是我们通常见到的使用字符操作界面的人机接口 例如 dos 我们说控制台命令就是指通过字符界面输入的可以操作系统的命令 例如 dos 命令就是控制台命令 我们现在要了解的是基于 Linux 操作系统的基本控制台命令Linux 是一个真正的多用户操作系统 这表示它可以同时接受多个用户登录 Linux 还允许一个用户进行多次登录 这是因为 Linux 和许多版本的 UNIX 一 样提供了 虚拟控制台 的访问方式允许用户在同一时间从控制台系统 的控制台是与系统直接相连的监视器和键盘进行多次登录虚拟控制台的选择可以通过按下 Alt 键和一个功能键来实现 通常使用 F1-F6 例如用户登录后按一下 Alt-F2 键 用户又可以看到"login:"提示符 说明用户看到了第二个虚拟控制台 然后只需按 Alt-F1 键就可以回到第一个虚拟控制台 一个新安装的 Linux 系统允许用户使用 Alt-F1 到 Alt-F6 键来访问前六个虚拟控制台1.2 常用命令使用1.2.1 登录和退出 Linux 系统用户登录系统时 为了使系统能够识别自己 必须输入用户名和密码 经系 统验证无误后方能进入系统说明在系统安装过程中可以创建两种帐号超级用户帐号和普通用户帐号Linux 使用者一般为普通用户而系统管理员一般使用超级用户帐号完成一些系统管理的工作如果只需要完成一些由普通用户帐号就能完成的任务建议不要使用超级用户帐号以免无意中破坏系统用户登录分两步进行第一步输入用户的登录名系统根据该登录名来识别用户第二步输入用户的口令该口令是用户自己选择的一个字符串对其他用户是保密的是在登录时系统用来辨别真假用户的关键字1. 启动和登录系统超级用户的用户名为root 密码在安装系统时已设定系统启动成功后屏幕显示下面的提示localhost login:这时输入超级用户名"root" 然后键入回车键此时用户会在屏幕上看到输入口令的提示localhost login:rootPassword:这时需要输入口令输入口令时口令不会在屏幕上显示出来如果用户输入了错误的口令就会在屏幕上看到下列信息login incorrect.这时需要重新输入当用户正确地输入用户名和口令后就能合法地进入系统屏幕显示[root@loclhost/root] #此时说明用户已经登录到系统中可以进行操作了这里"#"是超级用户的系统提示符普通用户在建立了普通用户帐号以后就可以进行登录了不论是超级用户还是普通用户需要退出系统时在shell 提示符下键入exit 命令即可还有其他退出系统的方法但上面一种是最安全的2. 重新启动系统以root 用户登录Linux 操作系统后执行reboot 命令可以重新启动linux 系统[root@loclhost/root] # reboot3. 关闭系统shutdown 命令可以安全地关闭或重启Linux 系统它在系统关闭之前给系统上的所有登录用户提示一条警告信息该命令还允许用户指定一个时间参数可以是一个精确的时间也可以是从现在开始的一个时间段精确时间的格式是hh:mm表示小时和分钟时间段由+ 和分钟数表示系统执行该命令后会自动进行数据同步的工作该命令的一般格式shutdown [选项] [时间] [警告信息]命令中各选项的含义为:- k 并不真正关机而只是发出警告信息给所有用户- r 关机后立即重新启动- h 关机后不重新启动- f 快速关机重启动时跳过fsck- n 快速关机不经过init 程序- c 取消一个已经运行的shutdown需要特别说明的是该命令只能由超级用户使用例1 系统在十分钟后关机并且马上重新启动# shutdown –r +10例2 系统马上关机并且不重新启动# shutdown –h now1.2.2 文件和目录操作命令1. ls 命令这个命令就相当于dos 下的dir 命令一样也是Linux 控制台命令中最为重要几个命令之一ls 最常用的参数有三个-a -l 和–Fls -aLinux 系统上的文件以.开头的文件被系统视为隐藏文件仅用ls 命令是看不到他们的而用ls –a 除了显示一般文件名外连隐藏文件也会显示出来ls –l 这个参数是字母L 的小写不是数字1这个命令可以使用长格式显示文件内容如果需要察看更详细的文件资料就要用到ls -l 这个指令ls –F在列出的文件目录名称后加一符号例如可执行文件加"*", 目录则加"/"2. cd 命令cd 这个命令是用来进出目录的它的使用方法和在dos 下没什么两样但和dos 不同的是Linux 的目录对大小写是敏感的如果大小写拼写有误你的cd 操作是成功不了的另外cd 如果直接输入cd 后面不加任何东西会回到使用者自己的H ome 目录假设如果是root 那就是回到/root 这个功能同cd ~ 是一样的3. mkdir rmdirmkdir 命令用来建立新的目录如输入如下命令mkdir work将在当前目录下新建一个work 目录rmdir 用来删除已建立的目录如输入如下命令rmdir work将删除已存在的空目录work4. cpcp 这个命令相当于dos 下面的copy 命令具体用法是cp –r 源文件(source) 目的文件(target)参数r 是指连同源文件中的子目录一同拷贝5. rmrm 这个命令是用来删除文件的rm 命令常用的参数有三个-i,-r,-f比如我现在要删除一个名字为text 的一个文件输入如下命令rm –i test系统会询问我们是否要删除test 文件敲了y/n 确认是否要删除test 文件rm –r 目录名这个操作可以连同这个目录下面的子目录都删除功能比上面讲到的rmdir 更强大不仅可能删除指定的目录而且可以删除该目录下所有文件和子目录rm –f 文件名这个操作可以不经确认强制删除文件6. mvmv 这个命令的功能是移动目录或文件引申的功能是给目录或文件重命名比如mv /tmp/xxx.tar /root该命令将/tmp 目录下的xxx.tar 文件移动到/root 目录下而mv aaa.tar bbb.tar则是将当前目录下的文件aaa.tar 更名为bbb.tar7. catcat 这个命令是linux 中非常重要的一个命令它的功能是显示或连结一般的ascii 文本文件它的用法如下cat text该命令显示text 这个文件的内容cat file1 file2该命令依顺序显示file1,file2 的内容cat file1 file2>file3该命令把file1,file2 的内容结合起来再重定向>到file3 文件中8. moremore 是显示一般文本文件的指令如果一个文本文件太长了超过一个屏幕的画面用cat 来看实在是不理想就可以试试more 用法如下more file19. pw dpwd 这个命令的作用是显示用户当前的工作路径直接输入pw d 即可1.2.3 用户及用户组管理命令1. useradduseradd 命令可以创建一个新的用户帐号其最基本用法为useradd 用户名如输入以下命令useradd newuser系统将创建一个新用户newuser 该用户的H ome 目录为/home/newuser useradd 命令的参数较多常用的组合为useradd 用户名-g 组名–G 组名-d H ome 目录名-p 密码其中-g 指定该用户的首要组-G 指定该用户的次要组-d 指定该用户的H ome 目录-p 指定该用户的密码如输入以下命令useradd oracle –g oinstall –G dba –d /home/oracle –p ora123系统将创建一个用户oracle oracle 用户的首要组为oinstall 次要组为dba Home 目录为/home/oracle 密码为ora1232. userdeluserdel 命令用于删除一个已存在的帐号其用法为userdel 用户名3. groupaddgroupadd 命令可以创建一个新的用户组其最基本用法为groupadd 组名如输入以下命令groupadd newgroup系统将创建一个新的用户组newgroup4. groupdelgroupdel 命令用于删除一个已存在的用户组其用法为groupdel 组名5. passwd出于系统安全考虑Linux 系统中的每一个用户除了有其用户名外还有其对应的用户口令用户可以随时用passwd 命令改变自己的口令该命令的一般格式为passwd输入该命令后按系统提示依次输入密码和密码确认后即可完成用户密码的修改此外超级用户还可以修改其他用户的口令命令如下passwd 用户名6. susu 命令这个命令非常重要它可以让一个普通用户拥有超级用户或其他用户的权限也可以让超级用户以普通用户的身份做一些事情普通用户使用这个命令时必须有超级用户或其他用户的口令如要离开当前用户的身份可以键入exit 命令su 命令的一般形式为su - 用户名7. chmodchmod 命令是非常重要的用于改变文件或目录的访问权限该命令有两种用法一种是包含字母和操作符表达式的文字设定法另一种是包含数字的数字设定法由于数字设定法不太直观本文不做介绍文字设定法的用法如下chmod [who] [+ | - | =] [mode] 文件名命令中各选项的含义为1 操作对象who 可以是下述字母中的任一个或者它们的组合u 表示用户(user) 即文件或目录的所有者g 表示同组(group)用户即与文件属主有相同组I D 的所有用户o 表示其他(others)用户a 表示所有(all)用户它是系统默认值2 操作符号可以是+ 添加某个权限- 取消某个权限= 赋予给定权限,并取消其他所有权限3 mode 表示权限常用的参数有r 可读w 可写x 可执行举例1 将文件script 的权限设为可执行命令如下chmod =rx text执行成功后用ls -l script 命令查看文件属性的结果如下-r-x r-x r-x 1 user group 0 Feb 10 09:42 script2 将文件text 的权限设为文件属主可读可写可执行与文件属主同组的用户可读其他用户不可读命令如下chmod u=rwx,g=r,o= text注意,后无空格o=后有空格执行成功后用ls –l text 命令查看文件属性的结果如下-rwx r----- 1 user group 0 Feb 10 09:42 text8. chownchown 用于更改某个文件或目录的属主和属组这个命令也很常用例如root 用户把自己的一个文件拷贝给用户oracle 为了让用户oracle 能够存取这个文件root 用户应该把这个文件的属主设为oracle 否则用户oracle无法存取这个文件chown 的基本用法为chown [用户:组] 文件举例chown oracle:dba text该命令将text 文件的属主和属组分别改为oracle 和dba1.2.4 进程及任务管理命令Linux 系统上所有运行的东西都可以称之为一个进程每个用户任务每个系统管理守护进程都可以称之为进程Linux 用分时管理方法使所有的任务共同分享系统资源以下将介绍一些常用的查看和控制进程的命令1. psps 命令是最基本同时也是非常强大的进程查看命令使用该命令可以查看有哪些进程正在运行以及运行的状态进程是否结束进程有没有僵死哪些进程占用了过多的资源等等该命令的基本用法如下ps [选项]其中常用的选项有-e 显示所有进程-f 全格式-l 长格式举例1 在控制台输入ps 命令得到类似如下的输出PID TTY TIME CMD12039 pts/0 00:00:00 bash18710 pts/0 00:00:00 ps该命令显示当前登录用户的执行进程显示的项目共分为四项依次为PI D(进程I D) TTY(终端名称) TIME(进程执行时间) CMD(该进程的命令行输入)2 在控制台输入以下命令ps –efUID PID PPID C STIME TTY TIME CMDroot100Jan14 ?00:00:05 initroot210Jan14 ?00:00:00 [keventd]root310Jan14 ?00:00:00 [kapmd]…………………..UID执行进程的用该命令将显示所有执行进程的信息显示的项目依次为户ID PID(进程I D) PPID(父进程I D) TTY(终端名称) STIME(进程启动时间) TIME(进程执行时间) CMD(该进程的命令行输入)该命令的输出较多可以使用grep 命令进行过虑以方便查看如ps –ef|grep oracle将只显示出包含oracle 的输出行可以查询执行进程的用户为oracle 的所有进程2. toptop 命令和ps 命令的基本作用是相同的显示系统当前的进程和其他状况但是top 是一个动态显示过程即可以通过用户按交互来不断刷新当前状态top 的命令参数并不重要简单的输入top 命令即可查看系统运行状态top 命令执行过程中可以使用交互命令 从使用角度来看 熟练的掌握这些命令比掌握选项还重要一些 这些命令都是单字母的 常用的命令有<空格> 立即刷新显示h 或者? 显示帮助画面给出一些简短的命令总结说明m 切换显示内存信息t 切换显示进程和 CPU 状态信息c 切换显示命令名称和完整命令行M 根据驻留内存大小进行排序P 根据 CPU 使用百分比大小进行排序q 退出3. killkill 命令可以用于终止后台进程 kill 命令是通过向进程发送指定的信号来 结束进程的 kill 命令的语法格式很简单大致有以下两种方式1kill [-s 信号] 进程号其中 发出的信号既可以是信号名也可以对应数字如 kill -9 1234 命令 将终止 PID(进程号)为 1234 的进程2kill -l该命令显示信号列表4. croncron 命令用来实现定时任务的完成 如每日执行一次的任务进程 cron 命令是不应该手工启动的 一般情况下 cron 命令在系统启动时就由一个 shell 脚本自动启动 启动后 cron 命令会搜索/var/spool/cron 目录 寻找 以/etc/passwd 文件中的用户名命名的 crontab 文件 被找到的这种文件将载 入内存 例如一个用户名为 user 的用户它所对应的 crontab 文件就应该是/var/spool/cron/user 也就是说 以该用户命名的 crontab 文件存放在 /var/spool/cron 目录下面 cron 命令还将搜索/etc/crontab 文件 这个文件是用不同的格式写成的 cron 启动以后它将首先检查是否有用户设置了 crontab文件 如果没有就转入休眠状态 释放系统资源 它每分钟醒过来一次查看 当前是否有需要运行的命令可以使用crontab –l 命令查看目前已经存在的cron 任务1.2.5 磁盘及文件系统管理命令管理文件系统其实是相当复杂的工作本文将只介绍日常维护需要的一些管理命令主要内容有挂装和卸载硬盘分区等1. dfdf 命令可以显示目前磁盘剩余的磁盘空间常用的参数为-k 如df –k该语句将显示各分区的磁盘空间使用情况2. mount 和umountmount 命令有很多参数其中大多数都不会在日常工作中用到mount 命令最常见的用法如下所示mount [选项] 设备目录其中最常用的选项是- a 把/etc/fstab 文件中列出的文件系统都挂装上挂装软驱和光驱的命令比较简单直接输入以下命令即可mount /mnt/cdrommount /mnt/floppyumount 命令用于卸载一个文件系统命令的格式如下umount [ -f ] directory其中directory 是准备卸载的目录名umount 命令有一个不足之处如果文件系统正在使用中也就是说有人在那个分区上打开了文件就无法把这个文件系统卸载下来这时可以使用和- f参数强制执行卸载操作当然这种操作可能会造成用户数据的丢失如umount -f /mnt/cdrom该命令将强制卸载挂装在/mnt/cdrom 目录下的文件系统1.2.6 软件安装命令1. tartar 命令用于把多个文件合并于一个档案文件中并提供分解的合并后的档案文件的功能它独立于压缩工具因此可以选择在合并前是否压缩tar 命令的基本用法为tar [选项] 文件名常用的选项包括-c 创建一个新的档案文件-t 查看档案文件的内容-x 分解档案文件的内容-f 指定档案文件的名称-v 显示过程信息-z 采用压缩方式举例1tar -czf oracle.tar.gz /u01/app/oracle /etc/oratab /home/oracle该命令将/u01/app/oracle 目录下的所有文件/etc/oratab 文件和/home/oracle 目录下的所有文件合并到oracle.tar 文件中并采用压缩方式2tar -tzf oracle.tar.gz该命令列出归档文件oracle.tar 中的所有文件列表3tar –xzvf oracle.tar.gz该命令将归档文件分解并解压缩到原有文件的路径中2. rpmrpm 命令的功能有很多在这里我们只介绍如何利用rpm 安装和查询已安装的软件1 安装rpm 安装软件包的基本语法如下rpm -i rpm 包名例如rpm -i tomcat4.rpm该命令将安装Tomcat 软件并进行相关系统配置2 升级rpm 升级软件包的基本语法如下rpm -U rpm 包名例如rpm –U tomcat4.rpm该命令将升级Tomcat 软件并进行相关系统配置3 查看已安装的软件有的时候了解系统中都已经安装了哪些软件包以及它们的用途是很有用的R P M 的查询参数就可以做到这一点要想列出已经安装的全部软件包可以通过以下命令rpm -qa可以使用g r e p 命令指定软件包的名称或者部分名称如下所示rpm -qa | grep 'tomcat'该命令将列出包名中包含tomcat 的软件包此外要想找出某个特定的文件到底是属于哪个软件包的可以输入rpm -qf filename其中filename 是准备要查找其归属的文件名称要想查出某个已经安装的软件包的功能可以用如下命令rpm -qi packagename其中packagename 是要查找其用途的软件包名称4 删除已安装的软件使用RPM 删除软件包就像安装它们一样简单大多数情况下用户只需要输入命令rpm -e packagename其中ackagename 是要查删除的软件包名称第2章文件查看/编辑方法介绍2.1 cat 命令介绍命令的原含义为连接concatenate用于连接多个文件内容并输出到cat标准输出流中标准输出流默认为屏幕实际运用过程中我们常使用它令该命令的常用示例如下cat file1.txt 显示file1.txt 文件的内容cat file1.txt file2.txt 显示file1.txt 和file2.txt 文件的内容cat -n file1.txt 显示file1.txt 文件的内容同时显示行号2.2 vi 命令介绍vi 是Visual I nterface 的简称它在Linux 上的地位就仿佛Edit 程序在DOS上一样它可以执行输出删除查找替换块操作等众多文本操作而且用户可以根据自己的需要对其进行定制这是其他编辑程序所没有的vi 不是一个排版程序它不象Word 或WPS 那样可以对字体格式段落等其他属性进行编排它只是一个文本编辑程序vi 没有菜单只有命令且命令繁多限于篇幅本文只介绍常用的命令Vi 有三种基本工作模式命令行模式文本输入模式和末行模式命令行模式任何时候不管用户处于何种模式只要按一下ESC 键即可使v i进入命令行模式当在shell 环境下输入vi 命令启动vi 编辑器时也是处于该模式下在该模式下用户可以输入各种合法的vi 命令用于管理自己的文档此时从键盘上输入的任何字符都被当作编辑命令来解释若输入的字符是合法的vi 命令则vi 在接受用户命令之后完成相应的动作但需注意的是所输入的命令并不在屏幕上显示出来若输入的字符不是vi 的合法命令vi 会响铃报警文本输入模式在命令模式下输入插入命令i 附加命令a 打开命令o 修改命令c 取代命令r 或替换命令s 都可以进入文本输入模式在该模式下用户输入的任何字符都被vi 当做文件内容保存起来并将其显示在屏幕上在文本输入过程中若想回到命令模式下按ESC 键即可末行模式在命令模式下用户按: 键即可进入末行模式下此时Vi 会在显示窗口的最后一行通常也是屏幕的最后一行显示一个: 作为末行模式的提示符多数文件管理命令都是在此模式下执行的如把编辑缓等待用户输入命令若在末行模式下输入命令过程中改变了主意可按ESC 键或用退格键将输入的命令全部删除之后再按一下退格键即可使vi 回到命令模式下2.2.1 v i 的进入与退出在shell 模式下键入vi 及需要编辑的文件名即可进入vi 例如vi example.txt即可编辑example.txt 文件如果该文件存在则编辑界面中会显示该文件的内容并将光标定位在文件的第一行如果文件不存在则编辑界面中无任何内容如果需要在进入vi 编辑界面后将光标置于文件的第n 行则在vi 命令后面加上+n 参数即可例如需要从example.txt 文件的第5 行开始显示则使用如下命令vi +5 example.txt退出vi 时需要在末行模式中输入退出命令q如果在文本输入模式下首先按ESC 键进入命令模式然后输入: 进入末行模式在末行模式下可使用如下退出命令:q 直接退出如果在文本输入模式下修改了文档内容则不能退出:wq 保存后退出:x 同w q:q! 不保存内容强制退出2.2.2 v i 中显示行号在末行模式下输入如下命令set number。

自己整理的Linux课后习题

自己整理的Linux课后习题

第一章认识linux系统1.简述linux系统的应用领域。

答:liunx系统的应用主要涉及四个方面:应用服务器、嵌入式领域、软件开发以及桌面应用,linux的长处主要在于服务器和嵌入式两个领域。

2.简述linux系统的特点。

答:1.开放性、2.多用户、3.多任务、4.良好的用户界面、5.设备独立性、6.丰富的网络功能、7.可靠的系统安全、8.良好的可移植性。

3.简述linux系统的组成。

答:linux系统一般有4个主要部分:内核、shell、文件系统和应用程序。

4.简述linux和windows系统的区别与联系。

答:共性:1.都是多用户操作系统,2.支持多种文件系统,3.支持多种端口设备,4.支持联网功能,5.都提供服务。

区别:1.应用目标不同,2.图形界面化不同,3.文件扩展名不同,4.重新引导功能不同,5.命令区分大小写。

5.简述有哪些主流的linux发行版本。

答:1.Mandriva 2.Red Hat 3.SUSE 4.Debian 5.Ubuntu 6.Gentoo 7.Slackware 8.Red Flag 6.简述fedora 8系统的新特性。

答:1.新的Fedora 定制Spins 2.PulseAudio 3.Codec Buddy 4.新的外观 5.新的图形化防火墙配置工具system-config-firewall 6.已增强的打印机管理工具system-config-printer 7.无缝集成蓝牙设备8.Java 支持──IcedTea9.已改进的网络管理NetworkManager 0.7 10.更佳的笔记本电脑支持piz 和Compiz-Fusion 12.包管理改进13.在线桌面14..安全改进15.PolicyKi16.针对Xen、KVM 及QEMU 虚拟化的安全远程管理。

17.翻译基础架构Transifex:Transifex 是一个自由开源的Web 系统,它用来处理提交的翻译。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

20.6 Linux C程序的框架

头文件

在C和很多计算机语言中,我们需要利用头文件来定义 结构、常量以及声明函数的原型。几乎所有C的头文件 都放在/usr/include及其子目录下; 函数库是以重复利用为目的,经过编译的函数集合。 一般来说总是围绕某一功能来开发函数库的,比如大 家熟知的stdio(STandarD Input Output)库就是输入、输 出函数的集合,dbm则是数据库函数的集合。 标准的系统函数库都放在/lib和/usr/lib两个目录下,C 编译器(确切地说是在连接的时候)需要这些函数库。

函数库


20.6 Linux C程序的框架

静态函数库



这是最简单的函数库形式,链接后可执行文件 在没有此函数库的情况下可以照常运行。 静态函数库一般也叫做档案(archives),所以静 态函数库以.a结尾 比如/usr/lib/libc.a是标准的C函数库,而 /usr/X11/libX11.a是X窗口函数库。
20.3 gcc的介绍

gcc的执行过程

虽然我们称gcc是C语言的编译器,但使用gcc由 C语言源代码文件生成可执行文件的过程不仅 仅是编译的过程,而是要经历四个相互关联的 步骤∶

预处理(也称预编译,Preprocessing) 编译(Compilation) 汇编(Assembly) 连接(Linking)。
20.6 Linux C程序的框架

共享函数库



静态函数库的缺点:当我们同时运行很多使用同一函数库中 的函数的程序的时候,我们必须为每一个程序都复制一份一 样的函数,这样占用了大量的内存和磁盘空间。 共享函数库克服了这一缺点。如果某个函数使用共享函数库 比如libc.so.N,那么此程序被链接到/usr/lib/libc.sa,这是一 个特殊类型的函数库,它并不包含实际的函数,只是指向 libc.so.N中的相应函数,并且只有在运行状态条用此函数时 才将其调入内存。 在Linux下可以用ldd命令查询某个程序使用了哪些动态库。
20.5 调试工具:gdb

gdb基本命令

gdb 支持很多的命令使你能实现不同的功能。 这些命令从简单的文件装入到允许你检查所调 用的堆栈内容的复杂命令。
20.5 调试工具:gdb
基本 gdb 命令
命 令 file kill list next step run 装入想要调试的可执行文件 终止正在调试的程序 列出产生执行文件的源代码的一部分 执行一行源代码但不进入函数内部 执行一行源代码而且进入函数内部 执行当前被调试的程序 描 述
gcc –o hello hello.c 用gcc来编译源程序 hello.c是源程序 文件。 -o 选项要求编译器给我们输出的可执行文件名为 hello。 -c 选项是我们只要求编译器输出目标代码而不必输出可 执行文件。 -g 选项是我们要求编译器在编译的时候提供以后对程序 进行调试的信息。 执行./hello就可以看到程序执行的结果。
20.2 编程环境


各种编程语言或shell程序脚本的源代码文 件可以用任何一种文本编辑器来打开和编 辑。 在Linux开发程序一般来说有两个主要的编 辑器

vi/vim Emacs
20.3 gcc的介绍

gcc简介


Linux系统下的gcc(GNU C Compiler)是GNU推出 的功能强大、性能优越的多平台编译器,是 GNU的代表作品之一。 gcc是可以在多种硬体平台上编译出可执行程序 的超级编译器,其执行效率与一般的编译器相 比平均效率要高20%~30%。


GNU (它代表“GNU is not UNIX”)是由Richard stallman开发的一个与UNIX兼容的软件系统。大 多数Linux软件是经过自由软件基金会(Free Software Foundation)的GNU()公开认 证授权的,因而通常称为GNU软件。许多流行的 Linux实用程序如C编译器、shell和编辑器都是 GNU软件应用程序。 GNU计划包括上百个命令、工具和工具的集合以 及文档。如果没有它们,Red Hat Linux不会像现 在这样有这么丰富的内容。
quit
watch break make shell
终止 gdb
使你能监视一个变量的值而不管它何时被改变 在代码里设置断点, 这将使程序执行到这里时被挂起 使你能不退出 gdb 就可以重新产生可执行文件 使你能不离开 gdb 就执行 UNIX shell 命令
20.6 Linux C程序的框架

关于程序的存放目录
20.3 gcc的介绍

gcc支持编译的一些源文件的后缀


.C C源程序文件 .h 头文件 .i 已经预处理过的C源代码文件 .o 编译后的目标文件 (编译后的中间文件 再进行连 接生成可执行文件) .s 汇编语言源代码文件
20.3 gcc的介绍

gcc的基本用法和选项




20.5 调试工具:gdb

启动gdb
首先重新编译程序,然后启动gdb。 $gcc –g –o debug2 debug2.c $gdb debug2

20.5 调试工具:gdb

gdb的功能



堆栈跟踪 监视你程序中变量的值; 设置断点以使程序在指定的代码行上停止执行; 一行行的执行代码。
20.3 gcc的介绍

gcc的错误类型及对策

gcc编译器如果发现源程序中有错误,就无法继续 进行,也无法生成最终的可执行文件。

C语法错误 头文件错误 档案库错误 未定义符号
20.4 GNU make 介绍

make是所有想在Unix /Linux系统上编程的 用户必须掌握的工具。如果你写的程序中 没有用到 make ,则说明你写的程序只是个 人的练习程序,不具有任何实用的价值。 也许这么说有点偏激,但make实在是应该 用在任何稍具规模的程序中的。
所有用户皆可使用的系统程序存放在/bin中 超级用户才能使用的系统程序放在/sbin中 所有用户皆可使用的应用程序存放在/usr/bin中 超级用户才能使用的应用程序存放在/usr/sbin中 所有用户皆可使用的与本地机器有关的程序存放在 /usr/local/bin中 超级用户才能使用的与本地机器有关的程序存放在 /usr/local/sbin中 与X Window有关的程序存放在/usr/X11R6/bin中
第20章 Linux基本编程
本章学习目标
以C/C++语言为例,初步了解 Linux系统下基本编程。
主要内容



了解什么是GNU计划及其意义 熟悉各种GNU计划实用程序 熟悉gcc编译器的用法和执行过程 了解多文件项目 熟悉makefile的结构 熟悉gdb调试程序
20.1 GNU计划的实用程序
20.4 GNU make 介绍
ቤተ መጻሕፍቲ ባይዱ
多文件项目


为什么要使用多文件项目 何时分解项目 怎样分解项目
20.4 GNU make 介绍

GNU make工具



如果,用户有在其他软件平台上开发软件的经 验,那么这些程序对于用户来讲是很好学的。 使用make来编译程序 基本 Makefile 结构 编写 make 规则 Makefile变量
20.7 创建、编译和执行第一个程序


创建一个简单的C程序
查看glibc的版本 Ls /lib/libc-* 查看gcc版本号 Gcc -v
20.7 创建、编译和执行第一个程序

使用VI或其他编辑工具编写源程序。后缀名保 存为.c
20.7 创建、编译和执行第一个程序

使用gcc编译成二进制可执行文件 ./a.out执行 (使用-o选项后 用指定的文件名) 有问题可以适用gdb进行调试
20.7 创建、编译和执行第一个程序

C++程序
20.7 创建、编译和执行第一个程序

C++程序
小结&习题

思考题
(1) 什么是GNU计划? (2) 什么是gcc?试述它的执行过程? (3) 为什么要使用多文件项目?
相关文档
最新文档