![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux
CR7lmz
这个作者很懒,什么都没留下…
展开
-
Linux文本三剑客之 sed
sed概念: sed是一种流式编辑器,他一次只能处理一行数据。处理时,把当前的行内容存储在临时缓冲区中,成为“模式空间”,接着用sed 命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非使用-i选项。sed语法格式:sed [option] "pattern(匹配模式) command(sed命令)" [filename]常用选项(option):主要是用来控制sed的处理流程。-n:只打印模式匹配的行-e:多点编辑原创 2020-05-23 17:43:08 · 295 阅读 · 0 评论 -
Linux文本三剑客之 grep
grep什么是grep?grep说白了就是一个文本过滤器,帮助用户在文件中查找我们想要的内容,并打印出来。以及可以使用正则表达式查找。grep的语法格式1.从文件中找到匹配的pattern的行。grep [option] pattern [filename]2.结合管道(’|’)一起使用,从管道中找出匹配pattern的行。ps aux | grep [option] patterngrep的常用选项-v :不显示匹配行的信息-i :搜索时忽略大小写-n: 显示行号-r: 递归原创 2020-05-22 14:54:17 · 209 阅读 · 0 评论 -
设计模式 之单例模式
什么是设计模式?简而言之。就是一些大佬总结出来的经验,将一些常见的问题或场景,设计成一种套路,可以让后续的程序员快速设计自己的代码。那么为什么我们需要用设计模式呢?单例模式代码框架稳定,代码复用度高,比较容易理解。常见的设计模式:创建型模式:用于构建对象,将实现从系统中分离出来。单例模式。结构型模式:用于在许多不同的对象中形成大型的对象结构。适配器模式行为模式:管理对象观察者模式...原创 2020-02-27 09:05:34 · 247 阅读 · 0 评论 -
Linux POSIX信号量、实现生产者消费者模型
posix与system v的区别之前我们在进程间通信中学到过system v版本的信号量,它和posix的区别在于:system v版本的用于进程之间,posix版本的用于线程之间。他们的主要区别在于信号量和共享内存。信号量的区别:1.system v版本的信号量一般是随内核的,无论有无竞争都要执行系统调用,所以性能上比较差。它的接口是semget,semctl,semop。2.pos...原创 2020-02-17 12:01:31 · 624 阅读 · 0 评论 -
Linux 生产者消费者模型
生产者消费者模型生产者消费者模型是非常常用的模型。本文用的是互斥和同步实现生产者消费者模型。下面来介绍是如何实现生产者消费者模型1.在模型(生产者消费者模型)中,我们的临界资源不再是单单的一个数了,而是存储多个元素的队列,我们用的是STL中的queue容器。2.模型中有生产者和消费者。生产者:网队列中放数据。消费者:从队列中拿数据。如果我们仅仅只用queue当做是模型的临界资源是不满...原创 2020-02-16 20:51:58 · 239 阅读 · 0 评论 -
Linux 同步:条件变量
我们知道互斥是为了保证每次只能有一个执行流访问临界资源。接下来我们看看为什么还需要同步?同步同步是为了保证执行流访问临界资源的合理性。 也就是说当没有临界资源了,让执行流(消费者)进行等待,等待另一个执行流(生产者)来生产一个临界资源,之后再唤醒刚才进入等待的执行流进行访问资源。(举个例子:现在有一个全局变量g_val=0,但是有一个执行流A想对g_val进行-1操作,因为临界资源此时为0,...原创 2020-02-15 15:10:09 · 138 阅读 · 0 评论 -
Linux 互斥:互斥量、死锁及死锁检测、读写锁、自旋锁
我们先来看看为什么需要同步和互斥呢?因为需要保证线程安全,线程安全是指多个线程在同时运行时访问临界资源,不会导致程序产生二义性,程序结果唯一。但是多个线程在对临界资源进行的是非原子操作,有可能被其他线程打断,从而导致操作和得到结果不一致,进而产生程序的二义性。所以就需要同步与互斥来保证。原子操作:操作一步完成,要么完成,要么没有完成,不存在中途被其他执行流打断。互斥功能:每一次只能有一个执...原创 2020-02-14 16:48:55 · 264 阅读 · 0 评论 -
Linux 线程控制
线程控制线程控制分为:线程创建-》线程终止-》线程等待-》线程分离我们首先来说说线程创建:线程创建Linux下线程是用户级线程,所以系统并没有给我们提供相关接口。线程控制当中我们使用的是库函数。(由此也可以验证在内核中是没有线程这个概念的。)int pthread_create(pthread_t *thread,const pthread_attr_t *attr,void*(*sta...原创 2020-02-13 16:00:42 · 135 阅读 · 0 评论 -
Linux 线程的概念
多线程原创 2020-02-10 14:06:05 · 172 阅读 · 0 评论 -
Linux 进程间通信
进程间通信原创 2020-02-10 14:04:46 · 127 阅读 · 0 评论 -
Linux 一切皆文件
基础IO原创 2020-02-10 14:04:15 · 258 阅读 · 0 评论 -
Linux 环境变量
环境变量环境变量也是Linux操作系统中非常重要的一部分。我们来看看什么是换环境变量。概念: 指的是用来在指定操作系统运行环境的一些参数。举个例子:我们写完一个代码后,进行链接的时候,我们并不知道链接的静态库或者动态库在哪里,但是我们依旧可以链接成功。这就是因为环境变量帮助编译器进程查找。常见的环境变量:1.PATH:指定命令的搜索路径。2.HOME:指定用户的主工作目录,默认为用户...原创 2020-01-29 17:51:21 · 108 阅读 · 0 评论 -
Linux 进程
进程在说进程之前,我们先来说说冯诺依曼体系结构。像我们常见得计算机,或者不常见的计算机,如服务器等。都是遵循冯诺依曼体系结的。下图为冯诺依曼体系结构:对于冯诺依曼,要注意几点:1.此处的存储器是指内存。2....原创 2020-01-08 15:16:04 · 215 阅读 · 0 评论 -
Linux 基础的开发工具以及使用方法
Linux软件包管理 yum我们先来看看什么是软件包?软件包管理就相当于我们手机上的应用商店,软件包就相当于手机上的APP。yum是linux下非常常用的一种包管理器。...原创 2019-11-12 17:30:53 · 146 阅读 · 0 评论 -
Linux 权限
权限概念:在Linux用户下有两种不同的用户:超级用户(root)、普通用户。超级用户:可以做任何事情,不受限制。(类似于,用自己的东西)进入超级用户命令:su或者su -root超级用户的命令提示符:"#"。普通用户:只能做有限的事情。(类似于,别人的东西,他只允许你看或者动)普通用户的命令提示符:"$"。Linux权限管理:文件访问者的分类:在linux中文件分为三类:...原创 2019-11-10 17:13:24 · 193 阅读 · 0 评论 -
Linux linux基本指令
Linux基本指令相对路径&绝对路径:相对路径:以当前目录为参考,开始计算路径。绝对路径:从/(根目录下)进行计算。ls功能:列出当前目录下,所有的子目录以及文件的信息。常用选项:ls -a 列出目录下所有文件,包括 . 开头的隐藏文件。ls -l 列出文件的详细信息。(ls -l相当于ll)ls -lrt 列出最近一次使用的文件pwd功能:显示用户当前的目录cd...原创 2019-10-23 14:25:29 · 154 阅读 · 0 评论