Linux程序设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Linux程序设计课程简介和教学大纲格式
课程代码:21188100 课程名称:Linux程序设计
学分: 2.0 周学时总48学时(短学期)
面向对象:计算机科学与技术、软件工程数字媒体专业,三年级学生
预修课程要求:程序设计类课程
一、课程介绍(100-150字)
(一)中文简介
本课程主要介绍Linux操作系统的安装、使用和管理。
包括Linux的文件和文件系统结构,进程概念和管理,文件安全和共享,I/O重定向和管道,以及各种实用软件的使用,shell 程序设计,Linux系统程序设计。
(二)英文简介
This course introduces the Linux operating system installation、use and administration. Include Files and File System Structure,Process concept and administration ,File Security and File Sharing, I/O Redirection and Piping ,And the use of a variety of utility software , shell Programming, Introductory Linux system Programming.
二、教学目标
(一) 学习目标
本课程的目的是使学生熟悉Linux系统环境,通过本课程的学习能够使用、管理和维护Linux系统,掌握shell程序设计和Linux系统程序设计基本方法。
本课程为学习“操作系统原理”和“操作系统分析及实验”课打下基础。
(二)可测量结果
通过本课程的学习能达以下目标:
1.了解Linux操作系统,学习并领会自由软件(Free Software)的思想和文化;
2.掌握Linux操作系统的安装;
3.掌握linux的文件、进程概念,管道及I/O重定向;
4.掌握linux系统常用命令、实用程序的使用和管理,熟悉Linux下各种工具软件的使
用;
5.了解Linux环境下开发环境和桌面系统;
6.了解shell编程,掌握基本的shell程序设计;
7.Linux环境下的API编程以及Linux的系统调用。
三、课程要求
(一)授课方式与要求
短学期课程时间为两周,本课程讲课课时数为20学时,其余时间为学时独立完成4个大实验。
任课教师或助教指导学生完成实验内容。
实验内容中没有安排Linux操作系统的安装,要求学生自己去做安装的实验,能独立完成Linux的安装工作。
本课程学生可以选择做难度较大的附加题,附加题可以替换实验1-4所有的必做题。
学生完成实验后要撰写实验报告,并以电子版形式提交到课程网站。
要求学生在实验报告中,提交源程序、实验过程中的截图和运行结果等。
(二)考试评分与建议
短学期课程不进行书面考试,本课程评分依据是学生完成的实验结果,本课程有4个大实验,要求学生独立完成。
课程实验报告占85%,平时成绩占15%。
四、教学安排
(一)教学内容
第1章Linux的概述、安装(2学时)
了解Linux操作系统的历史,GNU/Linux操作系统构成、发展,了解开源软件,掌握Linux系统的安装。
1.1 Linux操作系统和开源软件
1.2 Linux的安装
第2章Linux基础(1学时)
了解Linux操作系统的结构和主要组成部分。
掌握Linux系统登录和退出过程。
了解Linux shell,shell的元字符,内部命令和外部命令。
并且学习一些简单常用的Linux命令。
2.1 登录和退出
2.2 Linux的shell
2.3 shell的一些基本命令
2.4 文本编辑器
第3章Linux文件管理操作(1学时)
了解Linux系统的文件类型,Linux文件系统的目录结构和一些相关术语。
掌握如何创建和删除目录,如何在文件系统中移动目录,如何使用路径名来访问位于不同目录下的文件。
掌握Linux下针对普通文件操作工具,一些创建和操作文件的命令。
3.1 文件类型
3.2 文件系统目录结构
3.3 目录操作的基本命令
3.4 文件操作的基本命令
3.5 显示字符串echo
3.6 命令行中使用扩展符
第4章高级文件管理(1学时)
学习压缩、解压和打包文件命令,学习如何排序文本文件,如何搜索文件或目录,如何查找文本文件的内容,如何搜索某个Linux命令存放在何处。
学习使用gzip、gunzip、sort、find、where、which、grep、rpm等命令
4.1 正则表达式
4.2 排序文件
4.3 查找文件
4.4 搜索文件内容
4.5命令记录
4.6 压缩文件、解压缩文件与打包文件
4.7 RPM包管理
第5章文件权限与文件共享(1学时)
主要介绍Linux的文件访问权限,用户的类型和文件访问权限的类型;学习如何确定一个文件的访问权限;如何设置和改变一个文件的访问权限;如何在文件或目录的创建时设置缺省访问权限。
介绍硬链接、符号链接,学习使用chmod、ln等命令
5.1 存取权限
5.2 改变文件的存取权限
5.3 特殊权限位SUID、SGID、Sticky
5.4 硬链接
5.5符号链接
第6章Linux进程(2学时)
讨论Linux进程的属性。
学习理解Linux的前台进程、后台进程及守护进程。
学习理解Linux命令的顺序执行和并发执行。
学习使用挂起进程操作和终止进程操作,了解系统中Linux进程的层次结构。
学习使用ps、kill、fg、bg、top、pstree等命令
6.1进程的属性
6.2 进程的终止
6.3 进程和作业控制
6.4命令行中使用操作符
6.5 Linux系统启动和进程层次结构
6.6 开机和关机设定
第7章管道和重定向(1学时)
学习使用Linux的I/O重定向操作和管道操作。
学习使用|、<、>、tee等命令
7.1 输入重定向
7.2 输出重定向
7.3 使用文件描述符
7.4组合使用输入和输出重定向
7.5 管道(pipe)
第8章Bourn Again Shell编程(6学时)
学习bash基本概念、bash变量,bash脚本令行参数传递、脚本命令替换的概念,bash 脚本的基本语句规则。
掌握bash几个重要的高级特性,包括数值数据处理、数组处理、here
文件(here document)、信号及信号处理、shell脚本中标准文件的重定向。
还将学习bash的函数定义和使用。
8.1 bash脚本的建立和运行
8.2 shell的变量
8.3 shell脚本位置参数的传递
8.4 控制结构语句
8.5 其他几个有用的语句
8.6 数值处理
8.7 数组
8.8 函数
8.9 here文档
8.10 exec命令
8.11 trap命令
8.12 调试脚本程序
第9章Linux系统C语言开发工具(1学时)
用C语言编程的常用工具,主要学习gcc、make等工具。
9.1编写程序的工具
9.2编译C语言程序
9.3模块化的设计工具—make
第10章Linux系统程序设计(4学时)
10.1Linux系统调用
10.2进程的创建,进程的执行
10.3进程的等待和进程的终止
10.4文件描述符
10.5文件操作
10.6目录操作
(二)实验内容
实验1 Linux shell基本命令
1.学习登录和退出Linux系统
2.初步了解Linux的命令格式
3.学会如何得到帮助信息
4.掌握一些常用的Linux命令
5.使用vi、gedit、emacs编辑器编辑文本文件
6.学习如何创建一个Linux目录的层次结构
7.学习如何有效浏览Linux目录层次;
8.学习有关文件内容类型和隐含文件;
9.学习如何显示文本文件的内容,如何复制、追加、移动和删除文件
10.学习如何合并文件,学习如何排序文本文件
11.学习如何搜索文件或目录,学习如何查找文本文件的内容
12.学习如何压缩、解压和打包文件
实验2 Linux使用进阶
1.学习如何创建和使用硬链接和软(符号)链接;
2.学习关于链接和文件访问权限之间的关系;
3.学习关于硬链接和软链接的本质内容。
4.学习如何使用Linux的I/O重定向和管道操作;
5.学习使用I/O重定向和管道操作完成单个命令不能实现的复杂任务;
6.学习如何使用I/O重定向、管道去完成单个命令不可能实现的复杂任务。
7.学习Linux的文件访问权限,用户的类型和文件访问权限的类型;
8.学习如何设置和改变一个文件的访问权限;
9.学习如何在文件或目录的创建时设置缺省访问权限;
10.了解有关Linux进程的属性;
11.学习有关Linux的前台、后台进程;
12.学习有关Linux命令的顺序执行和并发执行;
13.学习有关挂起和终止进程;
实验3 SHELL程序设计
1.学会shell程序如何执行
2.学习使用shell的环境变量和用户变量
3.学会shell 脚本的命令行参数是如何传给shell程序的
4.学习脚本命令替换
5.通过编写脚本程序,学会编写shell 脚本程序设计的方法
实验4 系统程序设计
1.学习如何使用Linux的C语言工具完成代码编辑,编译,运行程序
2.学习掌握gcc、make工具,Makefile文件的规则
3.学习使用系统调用编写程序
4.进程的创建(fork),进程的执行(exec函数簇),进程的等待(wait和waitpid函数),
进程的终止(kill、exit)
5.文件和目录操作
五、参考教材及相关资料
教材:
1.Linux程序设计,严冰、刘加海、季江民,浙江大学出版社,201
2.2
参考书:
1.边干边学—Linux内核指导,李善平、季江民、尹康凯,浙江大学出版社,2008.4
2.UNIX环境高级编程(第2版),W.Richard Stevens,尤晋元译,人民邮电出版社,
2006.5
3.Linux程序设计(第3版),Neil Matthew;Richard Stones著,陈健;宋健建译,人民
邮电出版社,2007.7
4.LINUX教程(linux:the textbook),Syed Mansoor Sarwar,李善平等译,清华大学
出版社,2005.6
六、课程教学网站:
/exercise/index.php。