收藏 分享(赏)

Linux应用程序开发复习.docx

上传人:dzzj200808 文档编号:2246047 上传时间:2018-09-07 格式:DOCX 页数:15 大小:19.91KB
下载 相关 举报
Linux应用程序开发复习.docx_第1页
第1页 / 共15页
Linux应用程序开发复习.docx_第2页
第2页 / 共15页
Linux应用程序开发复习.docx_第3页
第3页 / 共15页
Linux应用程序开发复习.docx_第4页
第4页 / 共15页
Linux应用程序开发复习.docx_第5页
第5页 / 共15页
点击查看更多>>
资源描述

1、1.Linux 快速入门Linux 文件系统和 Windows 文件系统的区别:Windows 文件系统是以驱动器为基础的,且每一个目录与相应的分区对应;而 Linux 恰好相反,文件系统是一棵文件树,且它的所有文件和外部设备都以文件的形式挂在这个文件树上。主分区,扩展分区和逻辑分区:主分区的数量可以是 1-3 个;扩展分区也就是除主分区外的分区,它不能直接使用,必须再将它划分为若干个逻辑分区才可使用。Linux 文件类型及属性:Linux 的主要文件类型分为 4 种:普通文件,目录文件,链接文件,设备文件。Linux 中的文件属性:* rwx rwx rwx 第一个字符*显示文件类型:“-”

2、普通文件; “d”目录文件;“l”链接文件;“c”字符设备;“b”块设备;“p ”命名管道;“f”堆栈文件;“s”套接字。第一个 rwx 表示文件拥有者(u,user)对该文件的权限,无则用“-”表示。第二个 rwx 表示文件用户组(g,group)对该文件的权限。第三个 rwx 表示系统其他用户(o,others)对该文件的权限。/r 代表 read,w 代表 write,x 代表 execute.Linux 文件目录结构:/bin 这里存放 Linux 常用操作命令的执行文件。/boot 这个目录下存放操作系统启动时所要用到的程序。/dev 该目录包含了所有 Linux 系统中使用的外部设

3、备。/etc 该目录下存放了系统管理时要用到的各种配置文件和子目录。/etc/rc.d 该目录主要存放了 Linux 启动和关闭时要用到的脚本/etc/rc.d/init 该目录主要存放所有 Linux 服务默认的启动脚本/home 该目录是 Linux 系统中默认的用户工作根目录/lib 该目录用来存放动态链接共享库/root 该目录是超级用户登录时的主目录/proc 该目录用于放置系统核心与执行程序所需的一些信息。/sbin 该目录用来存放系统管理员的常用的系统管理程序/tmp 该目录用来存放不同程序执行时产生的临时文件/usr 用户的很多应用程序和文件都存放在此目录/usr/bin 系统

4、用户使用的应用程序/usr/sbin 超级用户使用的比较高级的管理程序和系统守护程序/usr/src 内核源代码默认的放置目录/srv 该目录存放一些服务启动之后需要提取的数据/var 服务的日志信息都存放在这里2.Linux 基础命令Shell 是命令语言,命令解释程序及程序设计语言的统称。1.用户系统相关命令切换为超级用户 su -root超级用户#,普通用户$增加一个新的用户 useradd tls设置用户账号密码 passwd tls删除一个用户 userdel tls锁定用户账户 usermod -l tls2.系统管理命令显示当前系统中由该用户运行的进程列表 ps 查看所有进程及其

5、 PID,系统时间,命令详细目录,执行者等。 ps -ef输出特定的信号给指定 PID 的进程 kill -9 74123.磁盘相关命令查看硬盘分区情况 fdisk -l4.文件系统挂载命令将后面的设备以指定类型的文件格式装载到挂载点上Mount -t vfat /dev/hda1 /mnt/win/cLinux 可以识别的文件系统:VFAT(FAT32); NTFS; HPFS; ext2,ext3,nfs;iso96605.文件相关命令改变当前工作目录 cd /home/david/显示当前工作目录 pwdCd - 前次目录 Cd ./当前目录Cd /上级目录列出目录的文件的信息 ls -

6、l列出目录中所有文件 ls -a在当前目录创建一个文件夹 mkdir -p ./hello/my创建一个文件夹并设置权限 mkdir -m 777 ./why将/my/why 下所有文件复制到当前上当下,保留属性 Cp -a ./my/why/ ./交互性移动 mv -i ./my/why/ ./删除全部目录和子目录 rm -r ./why改变拥有者 chown root 1.tar改变组 chgrp root 1.tar改变权限 chmod a+rx,u+w 1.tgz改变权限 chmod 765 1.tgz为某个文件在另一个位置建立一个符号链接In -s /1.gz ./hello软链接与

7、硬链接的异同:In -s * *是软链接,只会在用户待定的位置上生成一个文件的镜像,不会重复战胜磁盘空间。In * *是硬链接,在用户选定的位置上生成一个和源文件大小相同的文件。无论是软链接还是硬链接,文件都保持同步变化。6.压缩打包相关命令对文件进行压缩和解压缩 gzip -d对文件目录进行打包或解包 tar -c3.Linux 下的 C 编程基础。Linux 中最常用的编辑器有 vi 和 emacsLinux 中最常用的编译器是 gcc 编译器linux 中常用的调度器 gdblinux 中最常用的项目管理器 makevi 的模式:1.命令行模式:用户在 vi 编辑文件时,最初进入的为一般

8、模式。可以进行“复制” “粘贴”等操作。2.插入模式:在该模式下,用户才能进行文字编辑输入。3.底行模式:在该模式下,光标位于屏幕的底行,用户可以进行文件保存或退出操作。gcc 编译器.c C 原始程序.i 已经预处理的 C 原始程序.s 汇编语言原始程序.o 目标文件gcc 编译器的 4 个步骤:1.预处理:对头文件和宏定义进行处理Gcc -e hello.c -o hello.i2.编译:检查代码的规范性,并将其翻译成汇编语言Gcc -s hello.i -o hello.s3.汇编:把编译阶段生成的.s 文件转成目标文件Gcc -c hello.s -o hello.o4.链接:链接函数

9、库Gcc hello.o -o hello链接库的分类:静态库:编译链接时,将库文件的代码全加入可执行文件中,生成文件大,但文件运行不要函数库。动态库:在程序执行时加载库,以节省系统的开销。Makefile:makefile 基本结构:1.需要由 make 工具创建的目标体,通常是目标文件或可执行文件2.要创建的目标体所依赖的文件3.创建每个目标体时需要运行的命令。例:Hello.o :hello.c hello.hGcc -c hello.c -o hello.o功能,hello.c 和 hello.h 在 make 调用 Hello.o 目标体后汇编成 hello.omakefile 变量

10、:Make 允许在 makefile 中创建和使用变量,变量用来代替一个文本字符串。makefile 变量定义有两种方式:递归展开方式,简单方式。递归展开方式定义的变量是在引用该变量时进行替换的;简单扩展型变量的值在定义处展开。递归展开方式的定义格式:VAR=var简单扩展方式的定义格式:VAR:=varmake 中的变量使用均使用的格式为:$(VAR)。自动变量:自动变量通常可代表编译语句中出现目标文件和依赖文件等,并且具有本地含义。$ 所有不重复的依赖文件$ 目标文件的完整名称$ 第一个依赖文件的名称$? 所有时间戳比目标文件晚的依赖文件,并且以空格分开makefile 规则:1.隐含规则

11、:隐含规则告诉 make 怎么使用传统的规则完全任务,用户使用它们时就不必详细指定编译的具体细节,只需所目标文件列出即可。2.模式规则:模式规则是用来定义相同处理规则的多个文件的.模式规则能引入用户自定义变量,为多个文件建立相同的规则,从而简化 makefile 的编写。6.文件 I/O 编程系统调用:系统调用是指操作系统提供给用户程序调用的一组特殊接口,用户程序可以通过这组特殊接口来获得操作系统内核提供的服务。用户编程接口:系统调用并不是直接与程序员进行交互的,实际使用中程序员调用的通常是用户编程接口。区别:并不是所有的函数都一一对应一个系统调用,有时,一个 API 函数会需要几个系统调用来

12、共同完成函数的功能。系统命令:其相对 API 更高一层,实际上是一个可执行程序,它的内部引用了用户编程接口 API 来实现相应的功能。底层文件 I/O 操作:文件锁:文件锁包括建议性锁和强制性锁。建议性锁要求每个上锁文件的进程都要检查是否有锁存在,并且尊重已有的锁;强制锁是由内核执行的锁,当一个文件被上锁进行写入操作的时候,内核将阻止其他任何文件对其进行读写操作。Fcntl( )不仅可施加建议锁,还可以施加强制性锁。Lockf( )用于对文件施加建议性锁。I/O 处理模型:1.阻塞 I/O 模型:此模型下,若所调用的 I/O 函数没有完成相关的功能,则会使进程挂起,直到相关数据到达才会返回。2

13、.非阻塞模型:在这种模型下,当请求的 I/O 操作不能未完成时,则不让进程睡眠,而且立即返回。3.I/O 多路转接模型:这种模型下,如果请求的 I/O 操作阻塞,且它不是真正阻塞 I/O,而是让其中一个函数等待,在这期间,I/O 还能进行其操作。4.信号驱动 I/O 模型:这种模型下,通过安装信号处理程序,系统可以自动捕获特定信号的到来,从而启动 I/O。5.异步 I/O 模型:这种模型下,当一个描述符已准备好,可以启动 I/O 时,进程会通知内核。I/O 提供的 3 种类型的缓冲存储:1.全缓冲:这种情况下,当填满标准 I/O 缓存后,才进行实际 I/O 操作。2.行缓冲:这种情况下,输入和

14、输出遇到行结束符时,标准 I/O 库执行 I/O 操作。3.不带缓冲:标准 I/O 库不对字符进行缓冲。7.进程控制开发Linux 下的进程结构:数据段,代码段,堆栈段。Linux 下进程的执行模式:用户模式,内核模式。守护进程:守护进程不因用户,终端或者其他的变化而受到影响,它从被执行开始运转,直到整个系统关闭时才会退出。守护进程创建过程:1.创建子进程,父进程退出Fork( )创建子进程,exit( )使父进程退出。2.在子进程中创建新会话Setsid( )创建新的会话3.改变当前目录为根目录Chdir(“/”)设置工作目录4.重设文件权限掩码Umask(0) 重设文件权限掩码5.关闭文件

15、描述符Close( )关闭文件描述符8.进程间通信Linux 进程间通信方式:1.管道及有名管道2.信号3.消息队列4.共享内存5.信号量6.套接字9.多线程编程线程间的同步与互斥:1.互斥锁线程控制互斥锁是用一种简单的加锁方法来控制对共享资源的原子操作。互斥锁又分为:快速互斥锁,递归互斥锁,检错互斥锁;快速互斥锁:是指调用线程会阻塞直至拥有互斥锁的线程解锁为止;递归互斥锁:能够成功返回,并且增加调用线程在互斥上加锁的次数;检错互斥锁:为快速互斥锁的非阻塞版本,它会立即返回并返回一个错误信息。2.信号量信号量也就是操作系统中所用到的 PV 原子操作。11.嵌入式 Linux 设备驱动开发Linux 的设备分类:字符设备,块设备,网络设备。

展开阅读全文
相关资源
猜你喜欢
相关搜索

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

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报