Linux
文章平均质量分 80
暂代
须知少日拿云志,曾许人间第一流。
展开
-
分享几条比较重要的Linux指令
一、df作用 用于显示磁盘分区上的可使用的磁盘空间。默认单位为KB,可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。语法 df 选项 参数选项 -a(all):包含全部的文件系统 -h(human-readable):以可读性较高的方式来显示信息 -H:与-h参数相同,但在计算的时候是以1000bytes为换算单位而不是102...原创 2018-03-24 08:42:19 · 312 阅读 · 0 评论 -
Linux下删除特殊名称文件的方法
Linux下删除特殊名称文件方法前提:虽然Linux规定文件或目录名由除“/”和空字符“\0”之外的任意ASCII字符序列组成,但是,不幸的是,我们可能无意中创建了一些特殊名称的文件,或者由程序意外的创建了一些由特殊字符组成的文件,这个时候,要删除它们,用常规的rm / rmdir就不可以了。第一种方法:删除时使用 --这种方法可以删除以 ‘-’ 开头的文件使用示例:[zand...原创 2019-04-02 18:28:59 · 1161 阅读 · 0 评论 -
Epoll的惊群效应
什么是惊群效应? 在多线程或者多进程环境中使用Epoll来处理事件,每个线程 / 进程都同时监听着socket,那么当socket中的某个事件就绪后或者添加新的事件进去,操作系统就不知道应该将哪个线程 / 进程唤醒来处理此次事件,所以操作系统的处理方法就是同时唤醒多个线程 / 进程,可是此时必定只有一个线程/进程能够获得处理此次事件的权利,那么其他没有竞争到处理权限的线程 / 进程就会失败,错...原创 2019-06-20 21:38:40 · 1479 阅读 · 0 评论 -
Linux下IO多路复用
文章目录一、IO多路复用处理数据报文二、select1. 简介2. 函数原型2.1 参数说明2.2 fd_set结构说明2.3 timeval结构说明2.4 返回值说明3. 就绪条件3.1 读就绪3.2 写就绪4. 函数使用5. 函数特点6. 函数缺点三、poll1. 函数原型1.1 参数说明1.2 pollfd结构说明1.3 返回值说明2. 就绪条件3. 函数使用4. 优点5. 缺点四、epol...原创 2019-06-21 21:04:02 · 1496 阅读 · 0 评论 -
深入探索 Linux listen() 函数 backlog 的含义
转载至:https://blog.csdn.net/yangbodong22011/article/details/603997281:listen()回顾以及问题引入listen()函数是网络编程中用来使服务器端开始监听端口的系统调用,首先来回顾下listen()函数的定义: 有关于第二个参数含义的问题网上有好几种说法,我总结了下主要有这么3种:Kernel会为LISTEN状态...转载 2019-06-23 10:44:33 · 294 阅读 · 0 评论 -
线程相关笔记
注意:本篇文章不是系统的线程知识讲解,更多的是一些实用的线程常识和个人的笔记总结。如果读者想要获取更系统的OS线程知识讲解,那么本篇文章并不能很好的对你带来帮助,请移步至更详细系统的OS线程相关教程。一、简介线程,有时又被称为轻量级进程,是程序执行流的最小单元。一个标准的线程由线程ID、当前指令指针(PC)、寄存器集合和堆栈组成。通常意义上,一个进程由一个到多个线程组成,各个线程之间共享...原创 2019-07-09 12:41:12 · 199 阅读 · 0 评论 -
Nginx使用指南之安装
一、pcre 和 pcre-devel安装PCRE(Perl Compatible Regular Expressions) 是一个Perl库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库,pcre-devel 是使用 pcre 开发的一个二次开发库。nginx也需要此库。命令:sudo yum...原创 2019-08-01 15:55:21 · 943 阅读 · 4 评论 -
记一次对“缓冲区溢出漏洞”的攻击实验
记录一次对“缓冲区溢出漏洞”进行攻击的实验。通过这个实验,可以加深对函数调用底层原理(栈帧结构)以及缓冲区溢出危害的理解。进行这个实验之前,读者最好先了解一下函数的栈帧结构以及X86-64汇编语言基本语法。原创 2019-08-24 16:07:47 · 910 阅读 · 0 评论 -
Python2.7.5生成验证码
开发网站登陆 / 注册页面的时候往往需要实现验证码模块用于反爬虫机制,这里介绍用python2来来实现生成验证码的功能。这里用到了graphic-verification-code库,这个库依赖于PIL库。原创 2019-08-17 16:57:16 · 231 阅读 · 0 评论 -
事件复用技术比较:Epoll & Kqueue
什么是事件复用技术假设你有一个简单的web服务器,并且那里已经打开了两个socket连接。当服务器从两个连接那里都收到Http请求的时候,它应该返回一个Http响应给客户端。但是你没法知道那个客户端先发送的消息和什么时候发送的。BSD套接字接口的阻塞行为意味着,如果你在一个连接上调用recv()函数,你就没办法去响应另外一个连接上的请求。这时你就需要I/O复用技术。 I/O复用技术的一个直接方式...转载 2018-09-29 17:56:39 · 3604 阅读 · 0 评论 -
Linux环境变量
Linux环境变量&文件查找声明一个变量:declare tmp声明一个变量tmp,也可以不用声明直接使用。什么是环境变量?通俗的解释,只要是能作用于Shell自身和它的子进程的变量就是环境变量。怎么定义环境变量?1.临时环境变量export tmp=1此时tmp就成了一个环境变量,只不过如果当前Shell进程终止就会失效,重新启动Shell...转载 2018-09-16 14:51:33 · 366 阅读 · 0 评论 -
Linux重要目录说明(持续更新)
经过查阅资料,在这里记录Linux下一些重要目录的说明,以供以后参考1./proc是虚拟的目录,是系统内存的映射。可以直接访问这个目录来获取系统信息。2./sys设备文件管理的目录3./SElinux强制访问安全系统,可以通俗的理解为加固Linux系统安全的一个目录4./bin/bin目录下包含了引导启动所需的命令或普通用户能用的命令(可能在引导启动后)。这...原创 2018-03-24 09:37:48 · 316 阅读 · 0 评论 -
Linux进程_僵尸和孤儿
僵尸进程(zombie)介绍:僵尸进程是进程状态中的一种特殊状态(z状态)。当子进程退出但是父进程没有接收到子进程退出的返回代码,此时的子进程就被称为僵尸进程。产生原因:一个进程使用fork创建子进程,如果子进程退出,而父进程并没有调用wait或waitpid获取子进程的状态信息,那么子进程的进程描述符仍然保存在系统中。那么此时的子进程就变为僵尸进程。代码演示: 首先介绍几个函数:...原创 2018-04-01 09:55:25 · 259 阅读 · 0 评论 -
Linux终端_常用快捷键
心血来潮,将平时常用 / 了解的一些快捷键放在这里,以供以后翻阅ctrl+l 清屏ctrl + Backspcace 删除字符,相当于windows下的Backspace↑(Ctrl+p) 显示上一条命令↓(Ctrl+n) 显示下一条命令!! 执行上一条指令Ctrl+r 然后输入若干字符,开始向上搜索包含该字符的命令,继续按Ctrl+r,搜索上一条匹配的命令Ctrl+s ...原创 2018-04-02 16:52:11 · 361 阅读 · 0 评论 -
手把手带你写一个微型Shell
首先,我们来理理思路。主要的思路就是用当前进程(我们写的shell程序)创建一个子进程,然后让exec函数族中的函数用我们指定的进程映像(我们在终端输入的命令就是调用相应的进程)替换掉子进程的进程映像,子进程执行完毕后,用wait函数来接收子进程(避免产生僵尸进程),然后这个过程循环起来,就实现了一个连续的命令解释程序(my_shell)。我画一个图,方便大家理解这个过程。以上就是...原创 2018-04-03 12:40:55 · 774 阅读 · 0 评论 -
Linux_进程管理接口使用实例
< 1 >进程的创建1 . 创建进程的函数函数原型 pid_t fork(void)函数返回值 子进程返回0,父进程返回子进程ID(pid),进程创建失败返回-1函数说明 父子进程代码共享,数据各自开辟空间,私有一份(采用写时拷贝) 当一个进程调用fork()后,就有两个二进制代码相同的进程。而且他们 都运行到相同...原创 2018-04-05 22:27:14 · 514 阅读 · 0 评论 -
静态库和共享库(动态库)_Linux环境
静态库的生成和使用静态链接库一.静态库的生成 ar -rc lib库名.a *.o……注意:”lib库名.a”叫做库文件名,不同于库名。二.静态库的使用 1.官方方法: ① gcc filename.c -L 指定路径 -l库名 这种方法搜索库的路径是通过 “-L” 选项来指定搜索静态库的路径 ②gcc filename.c -l库名 这种方法是在系统缺省路径(/l...原创 2018-04-29 08:46:59 · 391 阅读 · 0 评论 -
Linux进程间通信
进程间通信(1)什么是进程间通信? 进程间通信(IPC)是一组编程接口,让程序员能够协调不同的进程,使之能在一个操作系统里同时运行,并相互传递、交换信息。这使得一个程序能够在同一时间里处理许多用户的要求。因为即使只有一个用户发出要求,也可能导致一个操作系统中多个进程的运行,进程之间必须互相通话。IPC接口就提供了这种可能性。(2)进程间通信的目的是什么? 进程间通信的目的一般有以下几点...原创 2018-05-22 14:44:24 · 388 阅读 · 0 评论 -
从源码到可执行文件(那些被隐藏了的过程)
1.预处理( 预处理器 cpp)对应Linux下的指令为: gcc -E file.c -o file.i此阶段的工作:完成条件编译的替换将#include引入的头文件包含进当前 文件替换宏常量,展开宏定义(#define)去掉注释保留#pragma2.编译(编译器 cc1)对应Linux下的指令为:gcc -S file.c -o file.s此阶段的工...原创 2018-06-30 07:19:38 · 865 阅读 · 0 评论 -
supervisor 简明使用
supervisor简明使用简单介绍 supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。它是通过 fork/exec 的方式把这些被管理的进程当作supervisor的子进程来启动,这样只要在supervisor的配置文件中,把要管理的进程的可执行文件的路径写进去即可。也实现当子进程...原创 2019-09-29 10:07:28 · 324 阅读 · 0 评论