![Linux应用程序开发复习(1)_第1页](http://file2.renrendoc.com/fileroot_temp3/2021-11/8/2e7bd0f9-9f9e-4bd1-995e-db2f52d5d2e8/2e7bd0f9-9f9e-4bd1-995e-db2f52d5d2e81.gif)
![Linux应用程序开发复习(1)_第2页](http://file2.renrendoc.com/fileroot_temp3/2021-11/8/2e7bd0f9-9f9e-4bd1-995e-db2f52d5d2e8/2e7bd0f9-9f9e-4bd1-995e-db2f52d5d2e82.gif)
![Linux应用程序开发复习(1)_第3页](http://file2.renrendoc.com/fileroot_temp3/2021-11/8/2e7bd0f9-9f9e-4bd1-995e-db2f52d5d2e8/2e7bd0f9-9f9e-4bd1-995e-db2f52d5d2e83.gif)
![Linux应用程序开发复习(1)_第4页](http://file2.renrendoc.com/fileroot_temp3/2021-11/8/2e7bd0f9-9f9e-4bd1-995e-db2f52d5d2e8/2e7bd0f9-9f9e-4bd1-995e-db2f52d5d2e84.gif)
![Linux应用程序开发复习(1)_第5页](http://file2.renrendoc.com/fileroot_temp3/2021-11/8/2e7bd0f9-9f9e-4bd1-995e-db2f52d5d2e8/2e7bd0f9-9f9e-4bd1-995e-db2f52d5d2e85.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1. Linux快速入门 Linux文件系统和Windows文件系统的区别:Windows文件系统是以驱动器为基础的,且每一个目录与相应的分区对应;而Linux恰好相反,文件系统是一棵文件树,且它的所有文件和外部设备都以文件的形式挂在这个文件树上。主分区,扩展分区和逻辑分区:主分区的数量可以是1-3个;扩展分区也就是除主分区外的分区,它不能直接使用,必须再将它划分为若干个逻辑分区才可使用。Linux文件类型及属性:Linux的主要文件类型分为4种:普通文件,目录文件,链接文件,设备文件。Linux中的文件属性:* rwx rwx rwx 第一个字符*显示文件类型:“-”普通文件;“d”目录文件
2、;“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系统中使用的外部设备。/etc 该目录下存放了系统管理时要用到的各种配置文件和子
3、目录。/etc/rc.d 该目录主要存放了Linux启动和关闭时要用到的脚本/etc/rc.d/init 该目录主要存放所有Linux服务默认的启动脚本/home 该目录是Linux系统中默认的用户工作根目录/lib 该目录用来存放动态链接共享库/root 该目录是超级用户登录时的主目录/proc 该目录用于放置系统核心与执行程序所需的一些信息。/sbin 该目录用来存放系统管理员的常用的系统管理程序/tmp 该目录用来存放不同程序执行时产生的临时文件/usr 用户的很多应用程序和文件都存放在此目录/usr/bin 系统用户使用的应用程序/usr/sbin 超级用户使用的比较高级的管理程序和系
4、统守护程序/usr/src 内核源代码默认的放置目录/srv 该目录存放一些服务启动之后需要提取的数据/var 服务的日志信息都存放在这里2. Linux基础命令 Shell是命令语言,命令解释程序及程序设计语言的统称。 1.用户系统相关命令切换为超级用户 su -root超级用户#,普通用户$增加一个新的用户 useradd tls设置用户账号密码 passwd tls删除一个用户 userdel tls锁定用户账户 usermod -l tls2. 系统管理命令 显示当前系统中由该用户运行的进程列表 ps 查看所有进程及其PID,系统时间,命令详细目录,执行者等。 ps -ef输出特定的信
5、号给指定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 -l列出目录中所有文件 ls -a在当前目录创建一个文件夹 m
6、kdir -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软链接与硬链接的异同:In -s * *是软链接,只会在用户待定的位
7、置上生成一个文件的镜像,不会重复战胜磁盘空间。In * *是硬链接,在用户选定的位置上生成一个和源文件大小相同的文件。无论是软链接还是硬链接,文件都保持同步变化。6. 压缩打包相关命令 对文件进行压缩和解压缩 gzip -d对文件目录进行打包或解包 tar -c3. Linux下的C编程基础。Linux中最常用的编辑器有vi和emacsLinux中最常用的编译器是gcc编译器linux中常用的调度器gdblinux中最常用的项目管理器makevi的模式:1. 命令行模式:用户在vi编辑文件时,最初进入的为一般模式。可以进行“复制”“粘贴”等操作。2. 插入模式:在该模式下,用户才能进行文字编辑
8、输入。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. 链接:链接函数库Gcc hello.o -o hello链接库的分类:静态库:编译链接时,将库文件的代码
9、全加入可执行文件中,生成文件大,但文件运行不要函数库。动态库:在程序执行时加载库,以节省系统的开销。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变量: Make允许在makefile中创建和使用变量,变量用来代替一个文本字符串。makefile变量定义有两
10、种方式:递归展开方式,简单方式。递归展开方式定义的变量是在引用该变量时进行替换的;简单扩展型变量的值在定义处展开。递归展开方式的定义格式:VAR=var简单扩展方式的定义格式:VAR:=varmake中的变量使用均使用的格式为:$(VAR)。自动变量:自动变量通常可代表编译语句中出现目标文件和依赖文件等,并且具有本地含义。$ 所有不重复的依赖文件$ 目标文件的完整名称$< 第一个依赖文件的名称$? 所有时间戳比目标文件晚的依赖文件,并且以空格分开makefile规则:1. 隐含规则:隐含规则告诉make怎么使用传统的规则完全任务,用户使用它们时就不必详细指定编译的具体细节,只需所目标文件
11、列出即可。2. 模式规则:模式规则是用来定义相同处理规则的多个文件的.模式规则能引入用户自定义变量,为多个文件建立相同的规则,从而简化makefile的编写。6. 文件I/O编程系统调用:系统调用是指操作系统提供给用户程序调用的一组特殊接口,用户程序可以通过这组特殊接口来获得操作系统内核提供的服务。用户编程接口:系统调用并不是直接与程序员进行交互的,实际使用中程序员调用的通常是用户编程接口。区别:并不是所有的函数都一一对应一个系统调用,有时,一个API函数会需要几个系统调用来共同完成函数的功能。系统命令:其相对API更高一层,实际上是一个可执行程序,它的内部引用了用户编程接口API来实现相应的
12、功能。底层文件I/O操作:文件锁:文件锁包括建议性锁和强制性锁。建议性锁要求每个上锁文件的进程都要检查是否有锁存在,并且尊重已有的锁;强制锁是由内核执行的锁,当一个文件被上锁进行写入操作的时候,内核将阻止其他任何文件对其进行读写操作。Fcntl( )不仅可施加建议锁,还可以施加强制性锁。Lockf( )用于对文件施加建议性锁。I/O处理模型:1. 阻塞I/O模型:此模型下,若所调用的I/O函数没有完成相关的功能,则会使进程挂起,直到相关数据到达才会返回。2. 非阻塞模型:在这种模型下,当请求的I/O操作不能未完成时,则不让进程睡眠,而且立即返回。3. I/O多路转接模型:这种模型下,如果请求的
13、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. 行缓冲:这种情况下,输入和输出遇到行结束符时,标准I/O库执行I/O操作。3. 不带缓冲:标准I/O库不对字符进行缓冲。7. 进程控制开发Linux下的进程结构:数据段,代码段,堆栈段。Linux
14、下进程的执行模式:用户模式,内核模式。守护进程:守护进程不因用户,终端或者其他的变化而受到影响,它从被执行开始运转,直到整个系统关闭时才会退出。守护进程创建过程:1. 创建子进程,父进程退出Fork( )创建子进程,exit( )使父进程退出。2. 在子进程中创建新会话Setsid( )创建新的会话3. 改变当前目录为根目录Chdir(“/”)设置工作目录4. 重设文件权限掩码Umask(0) 重设文件权限掩码5. 关闭文件描述符Close( )关闭文件描述符8. 进程间通信Linux进程间通信方式:1. 管道及有名管道2. 信号3. 消息队列4. 共享内存5. 信号量6. 套接字9. 多线程编程线程间的同步与互斥:1. 互斥锁线程控
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度高端白酒品牌独家代理合同二零二五
- 2025年度煤矸石清洁能源项目原料采购合同
- 2025年度夹芯板在仓储物流设施中的采购协议
- 2025年度健身中心健身教练绩效奖金合同细则
- 2025年度海安制造业学徒劳动合同范本
- 2025年度红酒年份酒庄酒窖建设与销售合同
- 二零二五年度跨境资产配置代客理财服务协议
- 智研咨询发布-2025年中国甲胺行业市场竞争格局、行业政策及需求规模预测报告
- 现代服务业发展现状及科技支撑分析
- 病毒性心肌炎的护理要点
- 新版ISO22301BCM体系手册
- 55项临床护理技术操作标准(49-55项)
- 中国主要蜜源植物蜜源花期和分布知识
- 电化学免疫传感器的应用
- 数据中心基础知识培训-2024鲜版
- 第4课+中古时期的亚洲(教学设计)-【中职专用】《世界历史》(高教版2023基础模块)
- 保障性住房建设资金来源与运作机制
- 金点子活动总结汇报
- 原料验收标准知识培训课件
- 江苏春节风俗 南京夫子庙、盐水鸭与昆曲
- Unit4MyfamilyStorytime(课件)人教新起点英语三年级下册
评论
0/150
提交评论