![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux
ZBQ__
这个作者很懒,什么都没留下…
展开
-
简单shell脚本练习
最近刚刚接触脚本语言,先从shell开始,练习一些简单的脚本。<1>制作程序菜单编写的脚本运行结果<2>统计基本信息利用$可以在脚本中引用环境变量<3>利用变量(打印环境变量)<4>添加用户变量...原创 2020-04-19 18:03:49 · 354 阅读 · 0 评论 -
文件操作命令
文件操作命令(1)touch:创建一个文件 touch file创建多个文件 touch file1 file2 file3(2)mkdir:删除空的目录将工作目录下,名为 AAA 的子目录删除 :rmdir AAA在工作目录下的 BBB 目录中,删除名为 Test 的子目录。若 Test 删除后, BBB 目录成为空目录,则 BBB 亦予删除:rmdi...原创 2019-05-27 19:56:42 · 412 阅读 · 1 评论 -
库文件及静态库和动态库
1、什么是库文件?库:预先编译好的方法的集合。库分为静态库和动态库。(1)静态库:libxx.a 库里用到的方法包含在可执行程序中(2)共享库:libxx.so 库里用到的方法只做标记,运行时才加载无论动态库或者静态库都是从.o文件生成的,因此在讲解动态库和静态库之前,我们先执行以下命令生成 hello.o 文件和 test.o 文件:gcc -c hello.cgcc -c te...原创 2019-06-26 20:44:38 · 190 阅读 · 0 评论 -
复制进程fork与替换进程exec
(1)fork复制进程的过程:一个现有进程可以用fork()函数通过系统调用创建一个新进程#include <unistd.h>pid_t fork(void);// 返回:若成功则在子进程中返回0,在父进程中返回子进程PID,若出错则返回-1fork调用仅仅被调用一次,却能够返回两次,它可能有三种不同的返回值:1)在父进程中,fork返回新创建子进程的进程ID;2)在子...原创 2019-07-02 16:51:36 · 386 阅读 · 2 评论 -
进程间通信方式——管道
1.管道的创建:管道是由调用pipe函数来创建#include <unistd.h>int pipe (int fd[2]); //返回:成功返回0,出错返回-1是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系(父子进程)的进程间使用。2.有名管道和无名管道的区别:有名管道:可以在任意两个进程之间,有名的名字存在磁盘中无名管道:只可以在父子进程之间3.管...原创 2019-07-03 16:24:21 · 122 阅读 · 0 评论 -
程序编译链接,运行原理,虚拟地址空间布局
(1)预编译过程:(.i)1.删除#define文本替换2.#if#endif #elif3.#include递归展开4.删除注释5.添加行号(主要目的是为了方便调试)6.保留#pragma(2)编译(.s)1.词法分析(例:int 8a=10//变量不能以数字开头2.语法分析(根据一条表达式分析)3.语义分析(根据上下文分析)4.代码优化5.生成汇编指令(3)汇编过程...原创 2019-07-18 19:37:32 · 484 阅读 · 0 评论 -
网络四层模型
数据链路层:实现了网卡接口的网络驱动程序,以处理数据在物理媒介上的传输.主要协议:ARP(地址解析协议)RARP(逆地址解析协议):实现了IP地址和物理地址之间的转换.网络层:实现数据报包的选路和转发.核心协议:IP协议:(因特网协议)根据数据包的目的地址来决定如何投递它.如果数据包不能直接发送给目标主机,那么IP协议就为它寻找合适的下一跳路由器,并将数据包交付给该路由器来转发.多次重复这...原创 2019-07-27 19:13:06 · 521 阅读 · 0 评论 -
常用端口号总结
FTP(20/21)(文件传输协议)其中20用于传输数据,21用于传输控制信息(主动模式/被动模式)SSH (网络协议,用于计算机的登录加密) 22 telnet 23 远程通讯协议SMTP 25 简单邮件传输协议DNS(53)域名解析http 80 超文本传输协议pop3 110 (邮局协议) 995 密文//rpcbind 111NTP 123 ...原创 2019-07-29 19:46:54 · 281 阅读 · 0 评论 -
TCP可靠机制
超时重传:可以重传超时事件内未收到确认的TCP报文段.为此,TCP每个模块为每个TCP报文段都维护一个重传定时器,该定时器在TCP报文段第一次被发送时启动.如果超时时间内未收到接收方的应答,TCP模块将重传TCP报文段并重置定时器.TCP一共执行5次重传,每次重传超时时间都增加一倍,在5次重传均失败的情况下,底层的IP和ARP开始接管,直至客户端放弃连接为止.Linux有两个重要的内核参数与...原创 2019-07-31 12:07:51 · 232 阅读 · 1 评论 -
I/O复用
select系统调用:在一段指定时间内,监听用户感兴趣的文件描述符上的可读,可写和异常等事件.select系统调用原型:n==-1 失败n==0 超时n>0 有n个描述符上有事件就绪(n是返回值)select调用返回时,内核修改它们来通知应用程序哪些文件描述符已经就绪,fd_set结构体仅包含一个整型数组,该数组的每个元素的每一位标记一个文件描述符,timeout参数用...原创 2019-08-02 20:53:18 · 129 阅读 · 0 评论 -
线程同步
实现线程同步的方式和方法:信号量,互斥锁,读写锁,条件变量1.信号量:信号量可以分为二值信号量和计数信号量.信号量的使用函数信号量实际上就是一个值,这个值被用来解决临界区问题以及实现进程在多处理器环境下的进程同步。互斥锁:在访问共享资源之前进行加锁操作,在访问完成之后进行解锁操作.加锁后,任何其他试图再次加锁的线程会被阻塞,直到当前进程解锁.可以确保同一时间内只有一个线程可以访...原创 2019-08-03 20:20:16 · 117 阅读 · 0 评论 -
内核内存管理
一、内核内存管理的物理单位:页1、物理页的结构flags :用来存放页的状态,每一位可以表示一种状态,共可以表示32中状态(page-flags.h)_count : 用来存放页的引用次数,内核代码不可以直接检查该域,应该使用page_count()函数来检查,返回值为0则代表该页空闲,返回值为正数则表示该页正在被使用virtual:页在虚拟内存中的地址2、内核使用struct ...原创 2019-08-10 16:58:25 · 196 阅读 · 2 评论 -
libevent库
libevent库是一个轻量级的网络I/O库它向libevent框架中注册相应的事件和回调函数,当这些事件发声时,libevent会调用这些回调函数处理相应的事件(I/O读写,定时和信号)它的优点:(1)轻量级,专注于网络,不如ACE那么臃肿庞大(2)源代码相当精炼,易读(3)可以支持跨平台操作(4)支持多种I/O多路复用技术(5)支持I/O,定时器和信号等事件我们首先来学习一下Re...原创 2019-08-14 18:35:36 · 163 阅读 · 0 评论 -
Liunx之HTTP,HTTPS协议
HTTP是客户端和服务端之间数据传输的格式规范.HTTPS是基于安全套接字层的HTTP协议(加密传输,身份认证)HTTP的过程:1.浏览器打开一个TCP连接2.浏览器发送HTTP请求到服务器端3.服务器发送HTTP回应信息到浏览器4.TCP连接关闭SSL的过程:1.验证服务器端2.允许客户端和服务器端选择加密算法和密码,确保双方都支持3.验证客户端4.使用公钥加密技术来生成共...原创 2019-08-19 12:41:39 · 193 阅读 · 0 评论