160 likes | 380 Views
UNIX 的应用与开发. 西安电子科技大学操作系统组. 课程安排 第一次课 Unix 基础知识 Unix 基本操作 Unix 编辑器的使用 Unix shell 编程(上) 第二次课 Unix shell 编程(下) Unix 中的 C 程序设计 讲解部分课后习题 教学目标 熟悉 Unix 的基本操作 能够进行简单的 Shell 编程 掌握 Unix 下的 C 程序设计方法. 课程安排 第一次课 Unix 基础知识 Unix 基本操作 Unix 编辑器的使用 Unix shell 编程(上) 第二次课 Unix shell 编程(下)
E N D
UNIX的应用与开发 西安电子科技大学操作系统组
课程安排 • 第一次课 • Unix基础知识 • Unix基本操作 • Unix编辑器的使用 • Unix shell编程(上) • 第二次课 • Unix shell编程(下) • Unix中的C程序设计 • 讲解部分课后习题 • 教学目标 • 熟悉Unix的基本操作 • 能够进行简单的Shell编程 • 掌握Unix下的C程序设计方法
课程安排 • 第一次课 • Unix基础知识 • Unix基本操作 • Unix编辑器的使用 • Unix shell编程(上) • 第二次课 • Unix shell编程(下) • Unix中的基本编程——C程序设计 • 讲解部分课后习题 • 教学目标 • 熟悉Unix的基本操作 • 能够进行简单的Shell编程 • 掌握Unix下的C程序设计方法
一、UNIX基础知识 • Unix的发展历程 诞生:1969年,Bell实验室,Ken Thompson 1973,Thompsom用C语言重新编写了Unix——UNIX V Linus Torvalds 1987, Minix, Andrew S. Tanenbaum 1975,Unix V6版 1991, Linux, Linus Torvalds 1979,BSD Unix SCO,SCO Xenix V others … Red hat Red flag 1988, 开放软件基金会, OSF/1 ISO和IECC, 成立了一个技术委员会·,POSIX.1
一、UNIX基本知识 • Unix系统的特点 核心代码95%使用C语言编写,内核极小,容易编写、修改,可移植性好; 多用户、多任务、分时操作系统 UNIX 可靠性强,30多年历史的证明; 外围系统实例丰富 文件系统采用树型分层结构,灵活,安全,检索快捷 文件和设备的统一处理,简化了系统设计,便于用户使用;
课程安排 • 第一次课 • Unix基础知识 • Unix基本操作 • Unix编辑器的使用 • Unix shell编程(上) • 第二次课 • Unix shell编程(下) • Unix中的基本编程——C程序设计 • 讲解部分课后习题 • 教学目标 • 熟悉Unix的基本操作 • 能够进行简单的Shell编程 • 掌握Unix下的C程序设计方法
二、UNIX的基本操作 • 回顾 • 常用的基本命令 • ls:列目录内容 • mkdir:创建子目录 • cd:改变工作目录;快速回到默认目录 • pwd:显示用户当前工作目录(绝对路径) • rmdir::删除一个空的子目录 • cat::链接并显示文件 • cp:复制文件 • rm:删除文件或目录 • ln:建立文件链接 • more/page :分页显示命令 • man:帮助命令
二、UNIX的基本操作 • 补充几个命令 • exit,logout,Ctrl+D:推出登录,相当于注销 • shutdown, halt:关机 • useradd:添加用户 • passwd:用户密码 • mount:安装文件系统 mount –t vfat /dev/hda2 /mut/huang unmoun /dev/hda2 unmount /mut/huang
二、UNIX的基本操作 • chmod • 功能:改变文件存取方式 • 格式: • 八进制表示:chmod 777 filename • 符号表示 u: 文件主 g:同组用户 o:其它用户 a:所有用户 +:添加许可 -:取消许可 =:设置许可 r:读许可 w: 写许可 x:执行许可 例如:chmod ug+w filename chmod a+rx filename
三、Unix编辑器的使用 • vi(visual editor)编辑器的使用 • 是一种全屏编辑器,是Unix中使用最广的编辑器之一 • 特点: • 有三种工作方式: • 命令行方式:可以输入各种vi命令,完成对文本的编辑、调整工作,如移动光标,删除字符、单词、整行操作等,常用命令在课本P369页,从键盘上输入的任何字符都被作为编辑命令来解释。 • 插入编辑方式:在此状态下可以编辑文本,从键盘上输入的所有字符都被插入到正在编辑的缓冲区中,被当作正文。 • 末行(底行)命令方式:实现操作命令,完成对文本的控制和管理,与命令行方式下的命令行程互补,主要用于对文件全文或者文件本身进行操作,如读写文件,查找/替换字符串,设置编辑器参数等,常见命令见P371
三、Unix编辑器的使用 • 使用Vi编辑器的基本步骤 • 进入vi vi vi filename • 到输入模式 按 a 或者 i键进入编辑模式 • 输入文本 将文本键入缓冲区 • 到命令行模式 按<Esc> • 进入底行命令模式 按 : / ? • 保存缓冲区到文件 键入:w file 或者 w • 退出vi 键入:q
三、Unix编辑器的使用 • 使用注意事项 • 命令行模式是其它模式进行切换的枢纽: • 在vi中可以直接执行Shell命令:在底行命令状态键入sh或!sh即可 编辑模式 命令行模式 底行命令模式 ESC ESC a,i : / ?
五、Unix中的C程序设计 • 编译环境 • GCC • GNU C Compiler, 是Unix/Linux下最好用的编译器之一,非常稳定,执行效率要比其它的编译器高20%-30%,大部分的自由软件都是由它编译的。 • Gcc能自动将C或者C++文件编译成目标文件,然后连接成为可执行文件,如果没有给出可执行文件的名称,则gcc会自动生成一个名为a.out的文件。 • Gcc是通过文件后缀来区分文件类别的,遵循如下约定: • .c文件:C语言源代码 • .a文件:是由目标文件构成的库文件 • .h文件,程序头文件 • .i文件,经过预处理的C源代码文件 • .o文件,编译后的目标文件 • .s文件,汇编语言源代码 • .C, .cc, .cxx文件,C++源代码
五、Unix中的C程序设计 • Gcc的执行过程 • 不仅仅是编译,由四个步骤构成 调用CPP进行预处理 调用cc1进行编译 .o文件 调用as进行汇编 调用ld进行连接
五、Unix中的C程序设计 • Gcc的基本用法 • 使用时需要给出必要的调用参数和文件名称,Gcc的参数由100多个,我们介绍最基本的,最常用的给大家。 • 格式: gcc [options] [filename] options: -c, 只进行编译,不连接 -o output filename, 确定输出的可执行文件名称 output filename, 这个名称不能和源文件同 名,如果没有输出a.out -O, 对程序进行优化处理,产生的可知行文件执 行效率较高,但是编译,连接过程会较慢 -g, 产生符号调试工具(gdb)必须的符号信息
例如: • gcc test.c a.out • Gcc –o test.out test.c test.out • Gcc –c test.c test.o • Make——大中型项目的编译工具 • gdb——c, c++的调试工具