Linux的世界也很美
文章平均质量分 94
为了小伙伴们能快速掌握Linux,在初阶中,熟悉并能牢记Linux的基本指令。
დ旧言~
颜值时代更需要言值
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【Linux】线程池|单例模式|STL、智能指针线程安全|读者写者问题
今天是Linux的最后一片博客,相信大家已经坚持下来了,还是那句话 " 学,然后知不足 "!!!⭐主体。原创 2024-07-08 17:10:27 · 1849 阅读 · 19 评论 -
【Linux】生产者消费者模型——环形队列RingQueue(信号量)
之前写的代码是存在不足的地方的:我们使用线程操作临界资源的时候要先去判断临界资源是否满足条件:并不能事前得知,只能通过先加锁判断,再检测,再操作、解锁,因为我们在操作临界资源的时候,有可能不就绪,但是我们无法提前得知,所以只能先加锁再检测,根据检测结果,决定下一步怎么走,那我们能不能通过一种办法提前得知是否满足条件呢?这样就不用加锁了,直接让线程等待或者访问:答案就是信号量⭐主体。原创 2024-06-15 15:52:03 · 1377 阅读 · 14 评论 -
【Linux】生产者消费者模型——阻塞队列BlockQueue
Linux有两个重要的模型,一个是生产者消费者模型——阻塞队列BlockQueue,另一个则是生产者消费者模型——环形队列RingQueue。今天我们学习其中一个模型:【Linux】生产者消费者模型——阻塞队列BlockQueue。⭐主体生产者消费模型高效在哪里?高效体现在一个线程拿出来任务可能正在做计算,它在做计算的同时,其他线程可以继续从队列中拿,继续做运算,高效并不是体现在从队列中拿数据高效!而是我们可以让一个、多个线程并发的同时计算多个任务!原创 2024-06-11 15:01:41 · 1587 阅读 · 18 评论 -
【Linux】进程通信----管道通信
当我们创建两个进程,希望它们可以相互沟通,我的内容你可以读,我的内容你可以写,这种联系我们就需要我们的管道,这个管道就可以达成两个进程或者更多进程相互通信,那这个关系在Linux中是如何实现的呢,我们又该如何理解呢?⭐主体💫什么是进程间通信?进程具有独立性,每个进程都有自己的PCB,所以进程间需要通信,并且通信的成本一定不低(通信的本质:OS需要直接或者间接给通信双方的进程提供“内存空间”,并且要通信的进程,必须看到一份公共的资源)图解:如何去通信?采用标准的做法。原创 2024-04-30 17:34:49 · 1584 阅读 · 24 评论 -
【Linux】线程安全——补充|互斥、锁|同步、条件变量
每建造一个建筑物时,我们都需要考虑这个建筑物的安全问题,为每一人的安全做个保证,在Linux下的线程其实也有安全隐患,那我们该如何维护线程的安全呢?本篇博客带大家了解Linux下的线程安全。⭐主体。原创 2024-06-04 14:43:49 · 1135 阅读 · 29 评论 -
【Linux】多线程——线程概念|进程VS线程|线程控制
早期我们的计算机还只能单个进程运行,这样的话每个进程就只能独立存在,不可以进行每个进程交互,在这个基础上我们的先人(大佬)看看能不能多个进程同时运行,也就有了现在的多进程,那对比单个进程,多进程有什么优势呢?值不值得我们学习呢?咱们带上这两个问题来康康Linux下的多线程。⭐主体。原创 2024-05-31 17:37:19 · 2082 阅读 · 23 评论 -
【Linux】进程信号
上期我们学习了进程间通信,内容很多,干货满满,当然也是有难度的我们知道进程之间可以相互通信,就像七八十年代,我们远在他乡,思念家人,那时我们只能寄来的信了解家里的情况。我们可以用信来传达,那Linux是采用哪种媒介来传达信息的呢???这里不得不题Linux中的信号量了,那这个信号量到底是个啥呢???⭐主体。原创 2024-05-31 17:37:15 · 963 阅读 · 22 评论 -
【Linux】进程间通信——system V(共享内存 | 消息队列 | 信号量)
同一主机内的进程间通信方案,在OS层面专门为进程间通信设计的方案让不同的进程看到同一份资源system V标准下的三种通信方式共享内存消息队列信号量我们来看看 system V标准下的三种通信方式。⭐主体学习【Linux学习】进程间通信——system V(共享内存 | 消息队列 | 信号量)咱们按照下面的图解:。原创 2024-05-08 22:10:52 · 1363 阅读 · 45 评论 -
【Linux】VScode远程连接Linux
作者:დ旧言~> 座右铭:松树千年终是朽,槿花一日自为荣。> 目标:自己能实现VScode远程连接Linux> 毒鸡汤:有些事情,总是不明白,所以我不会坚持。早安!。原创 2024-04-27 14:22:34 · 2168 阅读 · 3 评论 -
【Linux】静态库和动态库
库是写好的现有的,成熟的,可以复用的代码。现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,因此库的存在意义非同寻常。本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。静态库(.a、.lib)动态库(.so、.dll)今天我们来谈谈 Linux 下静态库和动态库。⭐主体如果不想给对方我们的源代码,我们可以选择给用户提供我们的.o可重定位目标二进制文件(gcc -c 文件)与.h头文件。让用户用我们提供的.o文件进行链接即可。原创 2024-04-20 10:15:42 · 1612 阅读 · 17 评论 -
【Linux】基础IO----理解缓冲区
缓冲区大家其实不陌生,像我们使用的 VS2019 编译器这里就有缓冲区,那它到底在哪呢,比如我们打印时的窗口需要我们输入,这里就有缓冲区。其实在输入我们也好奇为什么编译器会等待我们输入,这里就不得不谈我们缓冲区的相关知识,那具体是什么呢?今天我们来解开这层面纱。⭐主体。原创 2024-04-13 14:09:37 · 1516 阅读 · 21 评论 -
【Linux】基础IO----系统文件IO & 文件描述符fd & 重定向
最早我们在C语言中学习关于如何用代码来管理文件,比如文件的输入和文件的输出,一些文件的接口,掌握上述的知识只能说是对文件入门而已,在Linux中我们是一切接文件的,如何深入学习文件的知识这是一个难题,今天我们所探讨就是Linux的基础I/O。⭐主体。原创 2024-04-08 21:27:39 · 1595 阅读 · 31 评论 -
【Linux】文件系统软硬链接的那些事儿
我们已经知道了简单的文件知识,文件的读写呀,管理文件呀等等等,那我们来想我们学习的文件都时独立,两个文件不能相互沟通,就好像需要过一条河,需要一座桥,使两岸可以来往,那文件的来往那又该如何呢?这里不得不提出软硬链接了。⭐主体我们大致了解磁盘的物理结构、存储结构、逻辑结构;然后就是文件系统与inode的认识。最后是软硬链接,软硬链接本质区别就是有无独立的inode。原创 2024-04-16 22:38:15 · 2454 阅读 · 29 评论 -
【Linux】深挖进程地址空间
学习每一个语言都跟地址扯不开关系,这也是学习每一种语言的必修课,学习好地址空间对语言的掌握熟练度就是质的飞越,我们学习代码知识只是语言的表面,像地址空间就比较深层,有点抽象,不好理解,基于这种情况博主给大家带来【Linux】深挖进程地址空间。⭐主体我们从以下学习【Linux】深挖进程地址空间😋😋。简单来讲就是是什么,为什么,怎么做😜😜。再次回顾 C/C++ 学习地址空间时候:地址空间是什么?是内存么?我们举个栗子:int main()while (1)原创 2023-12-29 21:27:13 · 3119 阅读 · 36 评论 -
Git的使用
在学习Linux的时候,我们大部分都是写一些简单的代码,难一点也就是进度条😁,为保存这些代码,有一个工具叫Git,就是为了保存我的代码,防止走丢。Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。使用Git是作为程序员必备之一的技能。原创 2023-12-02 15:31:23 · 3489 阅读 · 64 评论 -
【Linux】进程控制深度了解
最早的时候我们学习了进程的状态,进程优先级和进程切换,当时不把进程控制加在里面,这里我们单独把它拉出来讲解,学习完本章对进程的板块算是熟练掌握了,咱们话不多说,直接进入今天的主题:【Linux】进程控制深度了解。⭐主体我们从以下学习【Linux】进程控制深度了解🥰🥰。原创 2024-01-02 19:25:55 · 2321 阅读 · 28 评论 -
【Linux】冯诺依曼体系结构与操作系统及其进程
我们最初学习Linux指令已经可以用户与操作系统交互了,往后面我们用Xshell可以编写一些简单的代码,这些只能算是入门,咱们学习Linux可不是这些,如果只学习这些的话,那在C语言中这些我们已经掌握的比较熟练了😏😏。学习Linux掌握的是各种代码底层是如何运行和使用的。⭐主体我们从以下学习冯诺依曼体系结构与操作系统及其进程🤗🤗。原创 2023-12-19 11:16:19 · 2265 阅读 · 22 评论 -
【Linux】Make和Makefile快速入门
不知道大家还记得我们写的进度条,里面就有们的makefile,在哪里面我们没有讲解,拿到这里我们深度解剖,也可以再次回顾我们的进度条,那我们话不多说,进入我们今天的主题----【Linux】Make和Makefile快速入门🤗🤗。⭐浅谈Make和Makefile什么是makelinux中make是一个构建工具,用于自动化编译和构建软件项目。它的作用是允许开发人员管理和维护复杂的软件项目,自动化编译过程并生成可执行文件。软件项目通常由多个源代码文件和依赖项组成。原创 2023-12-12 15:34:10 · 1327 阅读 · 27 评论 -
gdb使用
学习Linux已经有一段时间了,我们基本上可以编写程序,有时候可能会出现报错的情况,我们学习C语言的使用我们可以用VS来调试,可以解决编译出错问题,那Linux是否有调试功能呢,当然有了,gdb就是一个很好的调试器,那咱们就学习一下gdb咯🤭🤭。⭐gdb的使用流程其实gdb的使用和VS的调差不多🤫🤫咱们先安装gdb吧,到时候咔咔讲,发现连环境都没安装好😶🌫️😶🌫️。原创 2023-12-12 10:25:05 · 305 阅读 · 9 评论 -
【Linux】手把手教你做一个简易shell(命令行解释器)
作者简介:დ旧言~,目前大二,现在学习Java,c,c++,Python等> 座右铭:松树千年终是朽,槿花一日自为荣。> 目标:自己能写出一个简易shell(命令行解释器)> 毒鸡汤:要让人觉得毫不费力,只能背后极其努力。原理:shell是命令行解释器,当有命令需要执行时,shell创建子进程,让子进程执行命令,而shell只需等待子进程退出即可。原创 2024-01-02 19:25:52 · 696 阅读 · 7 评论 -
【Linux】深度解剖环境变量
咱们先抛出问题,不知道大家还记得我们使用java时需要安装环境变量,这里的环境变量就是我们今天所谈的环境变量,其实我们使用APP都需要配置环境变量,有些是不需要配置的,因为这些软件自己会配置环境变量,像我们使用的java编辑器就需要配置环境变量。基于这些情况我们来谈谈Linux下的环境变量。⭐主体我们从以下学习【Linux】深度解剖环境变量🥰🥰。原创 2023-12-29 21:27:09 · 1317 阅读 · 8 评论 -
【Linux】进程状态、进程优先级和进程切换
本篇博客基于学习完冯诺依曼体系结构与操作系统及其进程,进一步深度理解进程,学习完本篇对进程的理解会更上一层楼,想必大家已经按耐不住接收新的知识,那咱们话不多说进入今天的主题--->【Linux】进程状态、进程优先级和进程切换😳😳。⭐主体我们从以下学习【Linux】进程状态、进程优先级和进程切换🤗🤗。原创 2023-12-19 11:16:23 · 5009 阅读 · 36 评论 -
Linux小程序之进度条
咱们学习这么久的指令,一句话来概括,都忘光咯,学个锤锤😟😟😟,感觉白学了,博主也是感同身受,毕竟没有相应的练习,很容易遗忘,咱们只要记住主要的指令就可以了,忘了或者不熟咱就查查文档。今天捏我们用我们所学的知识编写一个进度条,看看下面:QQ录屏20231129162350⭐前景知识一:\r和\n的理解C语言会提供一些特殊的字符,比如说我们常用的\n,这个字符大家都不陌生,不就是换行嘛,这个我懂,但是还有一个字符\r,这个字符的作用是回车的意思。原创 2023-11-29 21:04:30 · 1693 阅读 · 24 评论 -
vim指令
前面捏,我们能使用Linux命令,简单的写一个程序,输出了hello Linux,只能说浅谈,本期我们在前面基础的延续,来正式续写Linux代码,Linux路正式启程,大家准备好编译器和小本本,OK,走起!!!⭐。原创 2023-11-18 16:45:45 · 1753 阅读 · 51 评论 -
Linux编辑器-gcc/g++使用
前面咱们用vim来写代码,用起来有点怪怪的,今天咱们学一个新的编译器gcc/g++,这个编译器既可以编译C也可以编译C++,可谓必备之一学习工具呀。⭐。原创 2023-11-20 12:51:56 · 1626 阅读 · 28 评论 -
玩转Linux基本指令
1983年,理查德·斯托曼(Richard Stallman)在MIT人工智能实验室(AI Lab)创立了GNU计划,目标是创建一个完全自由的Unix类操作系统。在这个计划中,斯托曼和其他志愿者开发了GNU工具链(GCC、GDB、GNU Make等),但操作系统内核一直没有完成。1991年,芬兰赫尔辛基大学的学生林纳斯·托瓦兹(Linus Torvalds)开始编写一个新的操作系统内核,这个内核最初被称为“Freax”。他最初的目标只是想学习操作系统内核的开发,并为自己的个人计算机编写一个操作系统。原创 2023-11-11 15:03:37 · 588 阅读 · 23 评论 -
深度解剖Linux权限的概念
前面我们已经学习的Linux的基本指令,对指令有一定的认识,当我们在输入指令时,大家是否有一个问题,Linux有两种用户,一个就是普通用户,另一个是超级用户,就是我们输入的指令是在哪个权限下执行的,这值得我们深思,本篇博客从这个问题展开,学习Linux权限的概念。⭐Linux下有两种用户:超级用户(root)、普通用户。超级用户:可以再linux系统下做任何事情,不受限制普通用户:在linux下做有限的事情。超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。命令:su [用户名]原创 2023-11-12 22:08:49 · 1238 阅读 · 57 评论
分享