




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1 Linux程序设计 主讲教师:于建涛 西北农林科技大学信息工程学院 信息系统系 Email: 信息工程学院2014级本科生课程 课时安排及考核办法 新开课程介绍新开课程介绍 QQQQ群:群:LinuxLinux程序设计程序设计- -软件软件1414级级 221341690221341690 QQQQ群:群:LinuxLinux程序设计程序设计- -商务商务1414级级 229341999229341999 理论学习:理论学习: 1-71-7、9 9周周二、周四上午周周二、周四上午 注:注:10:00AM 10:00AM 课间有问题者,建议挪至下一次课中午课间有问题者,建议挪至下一次课中午1
2、2:0012:00、本周实验课或在、本周实验课或在QQQQ 群里进行提问群里进行提问 http10/:/10/ (PPTPPT课件、实验报告题目下载、作业提交等)课件、实验报告题目下载、作业提交等) 上机实习:上机实习: 1-71-7、9 9周周五(每周都有),地点:实验楼三层周周五(每周都有),地点:实验楼三层B B(软工)、一层南(商务)(软工)、一层南(商务) 特别强调特别强调:每周四晚:每周四晚21:0021:00前提交作业,逾期按成绩的前提交作业,逾期按成绩的70%70%计算分值计算分值 课程基本信息 课时安排及考核办法
3、 总学时:总学时:4848学时学时 理论学习:理论学习:3232学时学时 上机实验:上机实验:1616学时学时 学分:学分:2.52.5分分 平时考核:占总评成绩的平时考核:占总评成绩的30%30%,包括考勤(上课考勤,包括考勤(上课考勤+ +实验实验 考勤)考勤)+ + 实习报告实习报告 期末考核:占总成绩的期末考核:占总成绩的70%70%,笔试、闭卷,笔试、闭卷 课时安排及考核办法 参考教材 教材 Linux程序设计,金国庆、刘加海、季江民、严冰 编著,浙 江大学出版社,2015年8月第2版 参考书目参考书目 Linux操作系统(第2版),刘丽霞、杨宇主编,人民邮电出版 社,2012年9月
4、 Linux程序设计,英Neil Matthew等著;陈健、宋健建译, 人民邮电出版社,2010年6月 鸟哥的Linux私房菜(基础学习篇,第三版),鸟哥著、王世 江编,人民邮电出版社,2010年7月 教材、参考书目及服务器资源 服务器地址:34 ssh端口:22 用户名:学号 口令:123456 参考教材 注意区分注意区分LinuxLinux程序设计与程序设计与WindowsWindows程序设计的区别与联系;程序设计的区别与联系; 适应适应LinuxLinux编程习惯、体会编程习惯、体会LinuxLinux编程哲学以及编程哲学以及LinuxLinux系统系统 开源
5、的思想开源的思想 注重动手能力的培养,加强实践注重动手能力的培养,加强实践 学习方法 参考教材 本课程是信息类专业本科学生的选修课程,有助于学生了本课程是信息类专业本科学生的选修课程,有助于学生了 解一个在工作理念上与主流解一个在工作理念上与主流WindowsWindows操作系统所不同的操操作系统所不同的操 作系统,并学会如何在其上进行编程实践。作系统,并学会如何在其上进行编程实践。 LinuxLinux程序设计已经发展为计算机从业人员必不可少的一程序设计已经发展为计算机从业人员必不可少的一 项技能,有助于他们开拓视野、谋求更好地发展。项技能,有助于他们开拓视野、谋求更好地发展。 开设该课程
6、满足了信息技术高速发展的需求,掌握开设该课程满足了信息技术高速发展的需求,掌握LinuxLinux 编程技术是增加就业竞争力的一个砝码,也是适应未来科编程技术是增加就业竞争力的一个砝码,也是适应未来科 研工作的需要。研工作的需要。 本课程的地位和作用 本课程的主要内容 Linux是一款足以和微软公司的Windows相抗衡的操作系统,它具有 开源、安全、稳定、免费、多用户等特点。 1987年Andrew Tanenbaum教授为方便教学,自行设计了一个简化的 UNIX系统Minix. 1991年,芬兰科学家Linus Torvalds在就读研究生期间,在Minix的基 础上编写形成了Linux内
7、核。 Unix主要为商用服务,Linux源于Unix,而Linux在价格、开放性、满 足PC机用户需求等方面更胜一筹,更适合中小型企业及个人使用。 Linux操作系统是20世纪80年代自由软件基金会(FSF)和开源项目 计划(GNU)的产物,遵循通用公共许可(GPL)协议,具有自由扩 散源代码的特点,满足“可移植操作系统接口”(POSIX)标准。 绪论:Linux的发展历史 本课程的主要内容 Red Hat Enterprise Linux (RHEL) 是目前最为流行的商业发行版(免费提供源代码,但需付费购买后续 服务, 包括技术支持、系统升级等),影响最为深远,其RPM包管理系 统(Red
8、 Hat Package Manager) 是业界的事实标准。 Fedora Linux、SuSE Linux、国内红旗Linux、CentOS (Community Enterprise Operating System)都基于它发展而来。 Fedora Linux Red Hat个人版方向的发展分支,Red Hat原开发团队与开源社区共同参 与开发工作 SuSE Linux/Open SuSE 基于Slackware Linux(最早出现的Linux发行版本),适用于服务器, 提供完整的德文使用界面 绪论:常见的几种Linux发行版本 本课程的主要内容 红旗Linux 诞生于1999年,是
9、中国较大、较成熟的Linux发行版之一,由北京中科红 旗软件技术有限公司开发,包括桌面版、工作站版、服务器版、红旗嵌 入式Linux等产品。2014年2月10日,中科红旗宣布公司正式解散。 CentOS(Community Enterprise Operating System,社区企业操作 系统) 是RHEL(Red Hat Enterprise Linux)源代码再编译的产物,完全免费, 且在RHEL的基础上修正了不少已知的 Bug ,相对于其他 Linux 发行版, 其稳定性值得信赖,很多服务器以CentOS替代商业版的RHEL。 绪论:常见的几种Linux发行版本 本课程的主要内容 D
10、ebian Linux 1993年8月由美国普渡大学的学生Ian Murdock发表,坚持自由风格, 由一群志愿者维护和升级。 其deb包、dpkg包与Red Hat的RPM包共同成为Linux最为重要的两个 软件包管理系统 与dpkg (Debian Packager) 结合,工具apt-get可以在线安装、升级软 件(参考: http:/ Ubuntu Linux 目前最为流行的Linux发行版,几乎成为日常Linux的代名词。 首个版本于2004年10月发布,以Debian为蓝本,同系列还有Kubuntu、 Edubunt. 目前的最新版本是15.10,长期支持版本是14.04.4(LT
11、S) 绪论:常见的几种Linux发行版本(续) 本课程的主要内容 什么是虚拟机? 虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、 运行在一个完全隔离环境中的完整计算机系统。 虚拟机VMware Workstation Pro 12.1.0 for Windows下载地址: http:/ (293M) 注:需先注册帐户,且通过email激活,方能下载 虚拟机VirtualBox 5.0.14 for Windows hosts x86/amd64下载地址: /wiki/Downloads (112M) Linux
12、系统的安装 本课程的主要内容 Linux操作系统下载地址: Ubuntu Desktop 14.04.4 LTS http:/ 1.0GB CentOS-7: http:/ 4.0GB,DVD ISO http:/ 7.2GB,Everything ISO 安装CentOS-7后,无法进入图形界面: http:/ http:/ baseurl-for-repo-errors-on-centos Linux系统的安装(续) 本课程的主要内容 Linux常用命令 shell编程 Linux系统C语言开发工具 Linux环境下系统函数的使用 文件I/O操作 进程控制 进程通信 线程 本课程的主要内容
13、 第第1章章 Linux 常用命令 15 为什么要学习命令?为什么要学习命令? 在Linux系统的终端(Shell窗口),通过使用命令,快速 完成操作系统的大量操作。例如文件的复制、删除、移动; 创建账号、配置系统等 16 为什么要学习命令(续)?为什么要学习命令(续)? 在Linux系统的终端(Shell窗口),通过使用命令,快速 完成操作系统的大量操作。例如文件的复制、删除、移动; 创建账号、配置系统等 (把程序所在的目录添加到整个环境变量中, 从而在任何目录下都可以执行该程序) 17 本章重点 1. 帮助命令 2. 文件系统命令 3. 系统管理命令 4. 网络命令 5. 字符串显示命令
14、6. Shell 的环境变量 7. 文本编辑器 8. 命令行的执行方式 9. rpm命令 10. 图形化安装服务器 18 认识Linux Shell Shell层 内核层 硬 件 用 户 19 认识Linux Shell q Linux操作系统分为三层:Shell层、实用程序层、内核层。 l Shell属系统程序部分,但运行在用户态; l 实用程序层包含编译程序、所编辑程序等,均在用户空间运行; l 内核是Linux的主要组成部分,运行在内核态 ,实现资源抽象、分配、共享等。 q Shell(意为“壳”),就是系统的用户界面,提供了用户 与内核进行交互操作的一种接口。 l 早期Shell主要用
15、作命令解释器,现在已是命令语言、命令解释器、程序设计 语言的统称,泛指提供人机交互界面和接口的程序 q Linux Shell拥有基于字符界面的Shell以及KDE、GNOME 等窗口管理器 l 虽然图形用户界面简单直观,但是命令行的人机交互模式依然是Linux系统配 置和管理的首选,因此有必要掌握一定的命令行的知识。 20 认识Linux Shell q 每个Linux系统发行版本中都包含了多种shell。目前使用 的最为广泛的shell包括bash、TC shell和Korn shell。 q 通常默认的登录shell是bash。系统管理员可以为你指定使 用哪种shell作为登录shell
16、,也可以通过命令来改变自己的 默认登录shell。 q 常用shell程序 21 1.1 帮助命令 1. man命令命令 q用来提供在线帮助,使用权限是所有用户。使用格式为: man 命令名称 例如 22 1.1 帮助命令 2. help命令命令 q用来显示命令的帮助信息,使用格式为 命令名称 -help | more 23 1.1 帮助命令 3. info命令命令 q用来提供帮助,使用户在线浏览全部文档,使用格式为 info 命令名称,例如 24 1.1 帮助命令 3. info命令(续)命令(续) q用来提供帮助,使用户在线浏览全部文档,使用格式为 info 命令名称 l或+H键:列出in
17、fo命令 l键:滚动翻屏 lQ键:退出 25 1.2 文件系统命令 1. Linux文件类型文件类型 q 普通文件普通文件 q 目录文件目录文件 q 符号链接文件符号链接文件 q 设备文件设备文件 q 管道文件管道文件 q socket文件文件 26 1.2 文件系统命令 q 普通文件: l执行文件 l目标文件 l备份或压缩文件 l图形文件 l函数库文件 l文档文件 l批处理文件 l源程序文件 l网页文件 命名文件建议不使用非打印字符、空格、制表符和shell 命令的保留字;可以有扩展名,但扩展名在Linux下无意 义。 27 1.2 文件系统命令 q 目录文件:包含文件名和子目录名。 q 符
18、号链接文件:指向另一个文件,其内容是另一 个文件的地址 q 设备文件:每一种硬件都有它自己的设备文件名。 l分为字符设备文件(如键盘)、块设备文件(如磁 盘)。 l设备文件一般位于/dev下,如sda1(第一个sata硬盘)、 tty(对应于终端)。 l各种设备文件都模拟物理设备,也被称作虚拟设备。 28 1.2 文件系统命令 q 查看内存命令: free -m lsblk 查看硬盘和分区分布 fdisk -l 查看硬盘和分区的详细信息(需要root或超级用户的权限) df -h 查看磁盘的总容量、已用容量等信息 du -sh 查看磁盘文件已用容量 q 查看硬盘信息命令: 29 1.2 文件系
19、统命令 q 管道文件:用于进程间相互通信 l进程间常用通信机制包括:管道(pipe)、命名管道 (FIFO)、共享缓冲区、信号量、sockets、信号等 l管道(pipe):父进程和子进程之间的通信 lFIFO:用于同一台计算机的不同进程间进行通信 30 1.2 文件系统命令 2. 文件系统目录结构文件系统目录结构 qLinux 的文件系统目录结构是分层树形结构。 qLinux把不同文件系统挂载(mount)在根文件系统下不同的子目录 (挂载点)上。 根目录 目录 文件 1.2 文件系统命令 2. 文件系统目录结构文件系统目录结构 q安装Linux时,系统会建立一些默认的目录: l/ 根目录,
20、包含所有目录和文件 l/bin 存放重要的Linux命令(如cat、chmod、cp、 date、ls等)的可执行文件 l/boot 存放用于启动Linux操作系统的所有文件 l/dev 存放连接到计算机上的设备所对应的文件 l/etc 存放和特定主机相关的文件和目录,包括系统配 置文件;主要由管理员使用,普通用户仅具有读权限 l/home 一般用户的主目录 1.2 文件系统命令 2. 文件系统目录结构文件系统目录结构 q安装Linux时,系统会建立一些默认的目录(续): l/lib 存放各种编程语言库,所有重要的库文件;其它的 库文件则大部分存储在/usr/lib下 l/mnt 用于临时挂载
21、文件系统,执行mount命令完成。 l/opt 用来安装附件软件包,用户调用的软件包在 /opt/package_name/bin下 l/proc 当前进程和系统的信息,仅存在内存 l/root 管理员用户的主目录,一般用户位于/home下 l/sbin /sbin、/usr/sbin 或 /usr/local/sbin都存放系统管 理工具、应用软件、通用根用户权限命令 1.2 文件系统命令 2. 文件系统目录结构文件系统目录结构 q安装Linux时,系统会建立一些默认的目录(续): l/tmp 存放临时性文件,会被定时删除 l/usr 存放用户使用的系统命令以及应用程序等信息 l/var 存
22、放系统运行过程中的可变数据 1.2 文件系统命令 3. 主目录和当前目录主目录和当前目录 q用户登录时会进入/home/用户名,被称之为主目录 q当前目录用 . 表示,当前目录的父目录用 . 表示 1.2 文件系统命令 文件系统中的常用命令文件系统中的常用命令 (1) ls 用于显示目录内容,它的使用权限是所有用户。用于显示目录内容,它的使用权限是所有用户。 格式:ls 参数 文件名 36 1.2 文件系统命令 文件系统中的常用命令文件系统中的常用命令 (1) ls 用于显示目录内容用于显示目录内容,格式:ls 参数 文件名 q常用选项: -F在每一个文件的末尾加上一个字符说明该文件的类型,例
23、如: 表示目录 *表示可执行文件 表示符号链接 |表示管道文件 =表示socket文件 37 1.2 文件系统命令 文件系统中的常用命令文件系统中的常用命令 (1) ls 用于显示目录内容用于显示目录内容,格式:ls 参数 文件名 q常用选项(续): -a列出所有的文件,包括以列出所有的文件,包括以 . 开头的隐藏文件开头的隐藏文件 -l列出文件的详细信息,如创建者、创建时间、文件的读写权限列出文件的详细信息,如创建者、创建时间、文件的读写权限 等。等。 -t按时间进行文件的排序 -R 递归地列出所有的子目录及文件。 -S 以文件的大小进行降序排序 38 1.2 文件系统命令 文件系统中的常用
24、命令文件系统中的常用命令 (1) ls 用于显示目录内容用于显示目录内容,格式:ls 参数 文件名 q常用选项(示例): 39 1.2 文件系统命令 文件系统中的常用命令文件系统中的常用命令 (1) ls 用于显示目录内容用于显示目录内容,格式:ls 参数 文件名 q常用选项(示例): 40 1.2 文件系统命令 文件系统中的常用命令文件系统中的常用命令 (1) ls 用于显示目录内容用于显示目录内容,格式:ls 参数 文件名 q常用选项(示例): 41 1.2 文件系统命令 q用ls -l列出文件和目录详细信息,各部分内容的含义如下表。 字段字段含义含义 第1个字段的第1个字母表示文件类型,
25、其中: - 普通文件 b 块设备文件 c 字符设备文件 d 目录 l 符号连接文件 p 命名管道(FIFO)文件 s socket文件 第1个字段的其它9字母每一组三个字符,分别表示所有者、组和其它用所有者、组和其它用 户户的访问权限, r表示有读权限,w表示有写权限, x表示有执行权限,-表示没有对应的权限 第2个字段文件的连接数 第3个字段文件所有者的登录名 第4个字段所有者的组的名字 第5个字段文件大小,以字节为单位 第6、7、8字段最近一次修改的日期、时间 第9个字段文件名 42 1.2 文件系统命令 q用ls -l列出文件和目录详细信息,各部分内容的含义如下表。 43 1.2 文件系
26、统命令 (2) 创建目录创建目录mkdir:建立子目录,它的使用权限是所有用户。 q格式:格式:mkdir 参数 目录名 q 例1.假设要创建的目录名是“zb”。 rootlocalhost root# mkdir zb q 例2.假设要创建的目录名是“tsk”,让所有用户都有rwx(即读、 写、执行)的权限。 rootlocalhost root# mkdir m 777 tsk 44 1.2 文件系统命令 (2) 创建目录创建目录mkdir(续)(续) q 例3.创建“xiao”目录,返回相应信息。 rootlocalhost root#mkdir v xiao q注意:注意: l以八进制
27、数指定的文件权限的含义: 例如“rw-”、“rwx”、“r”以二进制表示分别是“110”、 “111”、“100”,再转成八进制数即6、7、4; 777则表示所有的用户都有rwx权限。 45 1.2 文件系统命令 (3) 删除目录删除目录rmdir q 格式:格式:rmdir 目录名 q 例:删除“xiao”目录 rootlocalhost root# rmdir xiao 46 1.2 文件系统命令 (4) 显示当前工作目录显示当前工作目录pwd 例:rootlocalhost root# pwd (5) 切换目录切换目录cd q命令语法:cd 目录名 q功能:把当前工作目录转到“目录名”所
28、指定的目录,如 果不指定目录,回到主目录。 q例1:设当前工作目录是/home目录,要转到/usr目录, 用命令: rootlocalhost root# cd /usr q例2:回到用户登录的主目录命令: rootlocalhost root# cd 或 rootlocalhost root# cd q例3:回到上一层目录命令: rootlocalhost root# cd . 47 1.2 文件系统命令 (6) vi文本编辑器文本编辑器 q命令语法:vi options filename q例:在当前目录下新建一个名为a.txt的文件,并在文件当 中输入内容 q常用选项: l+n 从第n行
29、开始编辑文件 l+/exp 从文件中匹配字符串exp的第一行开始编辑 48 1.2 文件系统命令 (6) vi文本编辑器文本编辑器 (续)(续) q例2:vi a.txt 之后,在键盘上按i键,进入插入状态 输入内容后,按Esc键,加: 出现冒号后输入wq保存文件,或输入!q放弃修改, 而后退出vi 小提示: 鉴于Ubuntu部分版本vi可能晦涩难用,可以采用如下命 令安装新的vim: apt-get remove vim-common apt-get install vim 49 1.2 文件系统命令 (7) gedit: 文本编辑器文本编辑器 q使用格式:gedit 文件名 q例:gedi
30、t c.txt 50 1.2 文件系统命令 (8) 移动文件并更改文件名移动文件并更改文件名mv q使用 mv 命令来移动文件到指定目录,或更改文件名称。 q使用格式: mv options file1 file2 mv options file-list directory q功能: (1)把文件file1重命名为file2 (2)把文件列表file-list中的所有文件转移到目录directory下 51 1.2 文件系统命令 (8) 移动文件并更改文件名移动文件并更改文件名mv (续) q 例1:将文件edc.txt重命名为fork1.c rootlocalhost root# mv e
31、dc.txt fork1.c q 例2:将/dir1中的所有文件移到当前目录(用“.”表示)中 rootlocalhost root# mv /dir1/* . q 例3: 52 1.2 文件系统命令 (9) cp: 将文件或目录复制到其它目录将文件或目录复制到其它目录 q使用格式:cp 源文件名 目标文件名 q例1 将sub2下的文件test1.txt复制到主目录下 53 1.2 文件系统命令 (9) cp: 将文件或目录复制到其它目录(续)将文件或目录复制到其它目录(续) q例2:将目录sub2(递归地)复制到目录sub3下,其中-r 表示目录的递归复制 54 1.2 文件系统命令 (10
32、) 删除文件或目录删除文件或目录rm q 使用格式:rm options file-list q 常用选项: -f强制删除目录或文件,忽视不存在的文件,不给予提 示 -i在删除文件或目录前,先询问使用者。 -r删除文件时使用递归处理,即全部目录和子目录均递 归删除 q例1:删除当前目录下子目录dir1中的文件tmp.old rootlocalhost root# rm dir1/tmp.old q例2:强制删除文件edc.txt和/dir1/fork目录 rootlocalhost root# rm rf edc.txt /dir1/fork 55 1.2 文件系统命令 (11) grep搜索
33、文件内容搜索文件内容 qgrep:在指定文件中搜索特定的内容,并将含有这些内容 的行输出。 q格式:grep 参数 文件名 56 1.2 文件系统命令 (11) grep搜索文件内容(续)搜索文件内容(续) qgrep:在指定文件中搜索特定的内容,并将含有这些内容 的行输出。 q格式:grep 参数 文件名 57 1.2 文件系统命令 (12)查找文件命令查找文件命令find q使用格式: find 路径 参数 文件名 注意注意:“/”前后都有空格。 参数含义 -name后接指定的文件名,支持通配符 -user后接所要查找的文件的归属者(用户) 58 1.2 文件系统命令 (12)查找文件命令
34、查找文件命令find(续)(续) 59 1.2 文件系统命令 (13) 查看文件的起始内容查看文件的起始内容head q使用格式:head options file-list q功能:输出文件的前N行的内容,N由参数指定,默认输 出前10行。 q常用选项: -c N显示文件的前N个字节内容 -N 显示文件前N行内容 q例: 60 1.2 文件系统命令 (14)显示一个或多个文件的尾部内容显示一个或多个文件的尾部内容tail q使用格式:tail options file-list q功能:显示一个或多个文件的尾部,默认显示10行。 q常用选项: -n 显示文件的最后 n 行; -f 显示完文件的最后一行后,如果文件正在被追加,会继 续显示追加的行,直到键入+C q例: 61 1.2 文件系统命令 (15) wc:统计文件的:统计文件的行数行数、单词数单词数、字节数字节数 q使用格式:wc options file-list q常用选项: -c统计文件字节数。 -m 统计文件字符数。 -l统计文件行数。 -L统计文件最长行的长度。 -w统计文件单词数。 62 1.2 文件系统命令 (15) wc:统计文件的:统计文件的行数行数、单
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小车科目一考试题及答案
- 保安公司托管合同范本
- 充电桩使用合同协议书
- 企业买房担保合同范本
- 美食摄影创新创业项目商业计划书
- 公络拓宽补偿协议合同
- 公司网络维修合同范本
- 老年心理咨询室创新创业项目商业计划书
- 以厂房入股协议书合同
- 农民水果出售合同范本
- DB32T3916-2020建筑地基基础检测规程
- TB-T 3356-2021铁路隧道锚杆-PDF解密
- 创新创业教程(第四版)大学生创新创业全套教学课件
- 设备部新员工入职培训
- 飞机维护的常见工具
- 民兵伪装教学方案
- 广告策划之大白兔奶糖
- 高考语文一轮专题复习:诗化小说阅读专练
- 《智能制造概论》第四章 智能制造自动化
- 07FK02防空地下室通风设备安装图集
- 2023成人高考高起点数学考试真题及答案解析
评论
0/150
提交评论