- 博客(70)
- 收藏
- 关注
原创 【Linux】软硬链接 | 动静态链接(三)
嘿嘿,各位如果第一次看到这里会很懵,因为这里并没有从头到尾讲解。了解软硬链接至少要知道文件系统这方面知识,我把他们总结成了文件操作篇,可以去看我前面的文章(相当于文件篇一二三),再来看这篇文章就畅通无阻了(有基础的除外)。1.关于软硬链接:ln:创建软硬链接。-s:创建软链接(不带该选项则是硬链接)。unlink:删除链接文件,当然也可以删除非连接任意文件。ar:形成静态库。-r:静态库中有该.o文件就替换它。-c:静态库中没有该.o文件就创建它。ldd:查看当前可执行文件依赖哪些动态库。
2025-03-05 20:42:23
1045
1
原创 【Linux】磁盘结构 | 文件系统 | inode(二)
我们在上一篇已经学过了文件的很多内容,这一篇重要讲讲文件在硬件上的存储方式,已经如何寻找他们,让我们开始吧!lsblk -f 命令:系统会列出所有块设备,并显示每个设备的文件系统相关信息。df -h 命令:查看磁盘情况。unmount 命令:卸载分区。可能不少小伙伴都是一知半解,因为这部分知识确实很难,但是我们目前不需要了解的那么详细,但是至少要脑海中要有对这方面的框架,这对以后的知识会更好的理解。接下来我们还有重磅内容,对,这部分知识很多,我们不要急躁。
2025-03-05 20:41:41
820
4
原创 【Linux】文件操作 | 文件描述符 | 文件缓冲区 | 文件重定向(一)
我们将开启新篇章,文件!进程我们已经学的十有六七了,想再学习进程就需要学习关于文件的知识了,本章内容先从文件的操作开始讲起,之后由浅入深的学习文件系统。开始吧!我们本篇的内容十分重磅,包括文件的各种操作、接口,知道了什么是文件缓冲区和内核缓冲区,也知道了什么是重定向和文件内容刷新方式,文件描述符等。那么下一篇,则是也和文件有关的文件系统(你这家伙,力竭了吗?加油啊)。
2025-03-03 16:04:05
951
原创 【Linux】实现一个简易shell | 内键命令(八)
大家如果看过我之前的文章的话,就已经知道了几乎关于进程所有的操作和属性(当然关于信号和通信我们以后再提)。此时已经完全可以实现一个简易的shell程序了,注意,本篇代码含量很高,前方高能,做好准备!此外,还将补充内键命令。这酸爽!大家如果能比着实现一遍的话,实力绝对突飞猛进!如果能自己敲一遍更是无敌!进程讲解很多了,至少你已经知道了很多关于进程的知识,在生活中也能理解很多现象。但是我们说过一句话叫做Linux下一切皆文件!但是此时我们还没有提到关于任何关于文件的知识。
2025-03-03 16:01:37
586
原创 【Linux】进程替换(七)
我们知道了进程退出信息,进程的一些属性,进程调度算法等等,这些知识其实都是在为你学习本章内容做铺垫,如果一个子进程不想执行任何关于父进程的内容怎么办呢?本章我们学习进程替换,也是一个非常重磅的内容,我们开始吧!我们已经知道了如何进行程序替换,这其实是一个很重要的概念,我们以后其实会用很多。接下来我们要利用已学的知识完成一个自己的shell程序。是不是非常期待,对,这部分很烦,但是必须跟下来,下一章继续!
2025-03-02 19:29:48
839
原创 【Linux】进程退出 | 初始缓冲区 | 子进程回收(六)
我们已经知道了很多的进程属性,还有进程调度算法,进程地址空间和写时拷贝等等(这是一系列文章,大家感兴趣可以在我的主页追剧,零基础就从基础命令开始看起)。本篇来聊一聊一个进程退出时肯定也需要让OS知道其是如何退出的,包括我们经常说到的缓冲区,我们这篇先来对缓冲区有一个初步的认识,这部分知识很重要!我们又学习了很多新内容,进程退出信息非常重要,明白了进程退出时需要向上级汇报工作,也知道了一些关于缓冲区的知识,但是这些只是还是凤毛麟角,我们接下来要讲解进程替换和其他重磅内容,大家继续追剧哦!
2025-03-02 19:29:00
890
原创 【Linux】命令行参数 | 环境变量(四)
我们已经了解了进程的很多概念,上次讲到了进程调度算法,这次我们来一个更炸裂的环境变量,大家应该都学过JAVA,每次都要下载并配置环境变量,这次,我们来彻底搞懂它。env : 查看shell本身自己的环境变量。set : 查看所有变量,包括临时变量。unset : 取消非只读环境变量。export : 导入环境变量我们目前已经认识了很多的环境变量,但是其实使用的还是很少,而且它到底有什么用?我们会在下一节进程地址空间来更加具体的理解。加油吧,各位!
2025-03-01 23:04:14
954
原创 【Linux】进程优先级 | 进程调度(三)
我们已经知道了进程的一些属性,和进程的各种状态及孤儿进程,那么接下来我们就需要知道进程的调度方法和优先级,少年,开始吧!ps -l:查看当前系统中进程状态,将能显示为数字的都显示为数字。大佬不愧为大佬,这个调度算法和位图的设计简直无敌,接下来我们就会讲解命令行参数和环境变量,这部分知识也更为炸裂,各位敬请期待!
2025-02-26 20:30:30
1625
原创 【Linux】进程状态(二)
我们已经知道了进程的一些属性,和如何创建子进程,那么接下来我们需要了解更多关于进程的概念。top命令:相当于任务资源管理器。可执行程序 + &:该进程在后台运行。echo $?:查看上次进程退出信息。while :;sleep 1;done我们知道了进程的状态并且知道如何观察,但是这只是冰山一角,我们目前只是初窥门径,欲知后事如何,且听下回分解(记得追剧啊!
2025-02-26 20:30:03
801
原创 【Linux】初始操作系统和进程(一)
我们此时已经掌握了很多关于需要了解操作系统的前置知识,接下来我们需要来深入了解操作系统了。进程 = 内核数据结构(task_struct) + 程序的代码和数据进程调度(宏观认识)这里我们先来了解概念,操作系统中,调度是指一种资源分配和管理的机制。进程调度主要是决定就绪状态的进程(已经在内存中,准备好运行的进程)获得 CPU 资源的顺序。所以当CPU调度进程的时候,并不是直接把文件的代码和数据直接执行的,而是通过拿到对应的类对象进行调度的。进程会根据task_struct属性被OS调度器调度,运行。
2025-02-25 19:58:21
1155
原创 【Linux】gdb/cgdb调试工具
在 Linux 环境中,GDB(GNU Debugger)是一个强大的调试工具。但是这里建议使用cgdb(后面说)。本篇就要来给大家讲解这两种调试工具,并掌握他们的命令。本篇命令较多,大多都是记忆成本,但是我们还是需要学会使用的。大家都要加油学习,知识很多,但是要相信水滴石穿,聚沙成塔,最终会在顶峰相会!
2025-02-25 19:57:52
918
原创 【Linux】git原理与上传
git是一个非常优秀的发明,方便我们对项目进行版本控制,大家可以多去操作熟悉里面的命令,熟能生巧。至于git的其他操作,我们有多余时间可以进行学习,把最重要的几个命令和原理一定要掌握好。
2024-11-04 22:53:52
1232
2
原创 【Linux】进度条的实现(配合make和makefile超详细)
大家最好跟着完成一遍,即使是抄的,抄明白以后自己完成,就会很有成就感。这是我们第一个在Linux中实现的小项目,其实是很有意义的。
2024-11-04 22:46:14
729
原创 【Linux】固定VMwareIP地址
不知道大家都是怎么学习Linux的,是使用XShell学习还是直接下载VMware的Linux镜像源文件直接在VMware中学习的。其实这里建议大家使用XShell远程登录Linux系统服务器,这样方便我们学习而且也方便与Windows交互。本篇文章将讲述如何固定VMwareIP地址。这里需要有一些网络基础知识(当然没有跟着我下面的操作也可以),因为VMware分配IP是使用DHCP服务分配的。DHCP:动态获取IP地址,即每次重启设备后都会获取一次,会导致IP地址频繁变更。我们需要在VMare中配置IP地
2024-11-03 15:00:11
616
原创 【Linux】vim编辑器 | gcc编译器
好了,此时你已经拥有了一个强大的vim配置和gcc编译器,但是这仅仅只是冰山一角,当代码有错误的时候,难道每次都要生成一个可执行文件?又该如何调试代码?这就是下一章的内容了,老铁焖,加油啊!
2024-10-28 11:15:40
1114
原创 【Linux】权限 | yum软件包管理器
我们先来看一张图:所以我们可以把yum理解为手机上的应用商店,它可以直接帮你处理好软件的安装。我们已经知道了文件权限和yum的一些原理,接下来我们要学习Linux下的gcc编译器和vim编辑器了。
2024-10-27 14:53:17
1006
原创 【Linux】基础命令(二)
之前那一篇我们已经介绍了一部分的基础命令,当然那只不过是九牛一毛,本篇我们继续介绍一些比较重要且需要掌握的基础命令。
2024-10-06 12:16:14
942
原创 JDBC编程
这里我们可以发现,其实我们之前学习的SQL语句都是很重要的。你可能会有点反应不过来,这里面这么多类和方法,但实际就是这样,我们没有必要去学习所有的知识的原理,尤其是这些东西,而且真的很难记住,我们只需要大致学会使用,使用的时候去查看也是无可厚非的。但是JDBC的API还是太过复杂,我们以后可能会学习其他更好的框架进行使用,但是毕竟这是元老级别,我们必须了解并且掌握使用。
2024-10-05 21:34:09
1181
原创 MySQL索引与事务
本篇主要介绍MySQL中背后的数据结构,和实际我们使用时会涉及到的逻辑情况,当然,我们对于背后的数据结构不要求实现它,只需了解即可。我们先来看官方对其的解释:索引是帮助MySQL高效获取数据的数据结构。当使用select查询的时候,会先遍历表,之后把当前行带入到遍历条件中,看是否成立。如果表很大,这样成本非常高。索引属于针对查询操作引入的优化手段,可以通过索引来加快查询速度,避免针对表的遍历。所以索引是能提高查询速度的,但是也有代价。但是实际开发中,查询的频率比插入删除的频率高很多。这里有4种索引(可能会有
2024-10-01 21:05:39
1173
原创 MySQL基础篇的补充
如下图:其实有全外连接,但是MySQL不支持。查询语句的书写顺序查询语句的执行顺序重要的事情说三遍,虽然这些东西可能在实际上运用的很少,但是我们也必须了解,毕竟技多不压身。
2024-09-21 12:01:31
1175
原创 C++类和对象(二)类的默认成员函数:取地址及const取地址重载 | 初始化列表 | 友元 | 隐式类型转换
我们要多去使用才能更好的掌握,加油吧各位!
2024-05-09 18:33:26
1581
原创 实现日期类
没啥总结,就是有空再写一遍,这里给出全部代码:class Date//设置友元函数声明//流插入初始为全局函数//流提取public://缺省函数在定义的时候给//直接定义在类里面,默认是inline(内联)//频繁调用//默认平年//判断闰年,先判断2月再判断闰年return 29;else//检查日期合法性// d1 - d2//为了区分,构成重载//强行给后置++ 增加了一个int形参//流插入。
2024-05-08 23:13:22
485
1
原创 C++类和对象(一)this指针 | 默认成员函数 | 运算符重载 | 访问权限
其实任何东西,只要你想学,没人能挡得住你,而且其实学的也很快。那么本篇开始学习类和对象(C++的,由于作者有Java基础,可能有些东西过得很快)。
2024-05-08 19:50:12
1341
1
原创 初始C++(一)
C语言学好了,现在当然要进阶了,那么就是从C++开始。C++兼容C,支持其中90%的语法。可能有很多同学听说过C#,C#和C没有关系,是微软研究出来对标Java的语言。C++有63个关键字。今天就到这,加油各位!
2024-05-07 23:35:47
847
原创 【Linux】基础命令(一)
Linux就是操作系统,我们一般使用的是Windows操作系统。嗯……接下来就涉及计算机组成原理了。所以操作系统也是软件!这个软件大家可以理解为管理设备驱动和硬件的软件,我们平时用的软件是在操作系统上使用的。这里有一些区别:Windows中:\是路径分隔符Linux:/是路径分隔符OK了,结束,这只是基础,下节更精彩!
2024-05-07 19:24:06
996
原创 贪吃蛇(C语言超详细版)
如果你通过该文章完成了一次,其实你会发现,也没那么难,无非就是根据游戏的进程一步一步去实现每个最微小的步骤。其实所有的难题,都是聚沙成塔的,只要你一步一个脚印去实现,真的没有难题!API帮助了我们实现了贪吃蛇,我们可能不知道其内部的实现,但是我们只需要去学会使用它即可。如果你可以独立完成一次,那么恭喜你,你已经彻底学会了C语言,接下来就可以往更高的地点出发。
2024-03-23 21:04:25
4904
10
原创 预处理详解
define 机制包括了一个规定,允许把参数替换到文本中,这种实现通常称为宏(macro)。宏参数和#define 定义中可以出现其他#define 定义的符号。但是对于宏,不能出现递归。条件编译:在编译一个程序的时候我们如果要将一条语句编译或放弃是很方便的,因为可以使用条件编译指令。比如我们调试代码,删除可惜,保留又碍事,所以我们可以选择性的编译。虽然编译和执行我们一般并不会关注,但是预先善其事必先利其器,我们身为程序员,应当有一种庖丁解牛的精神,对于哪怕在细小的细节也应该关注。
2024-03-13 20:33:19
900
1
原创 Java反射、枚举类和lambda表达式
看枚举之前,我们先来看自定义枚举类,此时我们自己定义一个枚举类。/** 1.构造器私有化* 2.本类内部创建一组对象 四个 春夏秋冬* 3.对外暴露对象 -> 通过为对象前加 public final static 修饰符* 4.可以提供 get 方法 但是只读不写(没有set方法)* *///自定义枚举类//特点//对外暴露public static final TestEnum SPRING = new TestEnum("春天","花香");
2024-03-10 12:10:11
877
6
原创 Map和Set(搜索二叉树和哈希表)
TreeSet和TreeMap背后都是一颗搜索树(红黑树)。如果要学好他们,我们要先学二叉搜索树,之后学习AVL树(高度平衡的二叉搜索树),最后学习红黑树。接下来我们就来完成一个搜索二叉树,首先我们先定一个搜索二叉树的类。//创建根节点里面定义一个内部类,就是树的节点。因为是二叉树,索引要记录节点的左边和右边,构造方法只需要给定一个val。为了方便我们找到其他节点,我们定义一个根节点。多加练习就可以记住,这里有一个技巧:HashSet底层是HashMap;TreeSet底层是TreeMap。
2024-03-09 18:18:35
997
原创 顺序表、链表(ArrayList、LinkedList)
本篇我们来讲解数据结构中的顺序表和顺序表,因为Java有集合框架,所以可以直接使用类创建对象来完成。我们定义head成员,是为了保存头结点。//节点使用内部类来写//定义一个链表的成员的头结点。
2024-02-10 17:28:56
2035
原创 Java图书管理系统
因为Java是面向对象的语言,所以相对C语言,实现一个图书管理系统是相对容易的,这一篇我们来讲解图书管理系统(当然是简易版的)。先介绍一下这个图书管理系统,它有两个身份,一个图书管理员,一个普通用户。每一个对应的操作权限不一样。并且这个系统有借阅和归还功能。我们想好整体框架以后,再去完善细节就会比较轻松。
2024-01-19 11:35:20
609
5
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人