自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 收藏
  • 关注

原创 数仓分层到底在分什么:从 DWD 到 ADS,最后落到 ClickHouse

上一篇我们解决了「数据怎么进来」——用 DataX 把业务库的刷卡主数据和用户信息表搬到了 Hive 的 ODS 层。。这时候如果直接拿 ODS 去做报表,会发生什么?ifcase when[图1:数仓分层数据流转图]

2026-10-14 09:51:38 28

原创 从一次刷卡数据采集说起:DataX 到底是怎么把数据「搬」到 Hive 的

离线同步工具其实不少:Sqoop、Flume、Kettle、DataX……对比项SqoopFlumeDataX定位关系库 ↔ Hadoop日志流式采集异构数据源离线同步数据源以 RDBMS 为主以文件/日志为主插件化,几十种同步粒度任务级事件级单机多线程,任务级学习成本中中低(一个 JSON 搞定)换数据源只需要换插件、改 JSON,不用改代码。业务库里是 MySQL、Oracle、SQLServer,目标端是 HDFS、Hive、HBase、ES,写法几乎一样。

2026-10-14 09:47:29 8

原创 PyQt5 从入门到人脸检测:一套控件、信号槽与多媒体实战学习路径

现象原因对策1改了ui.py,重新pyuic5后改动没了pyuic5每次重新生成会覆盖永远不要手改ui.py,逻辑全写在继承子类里2运行报Designer 里连了,子类没实现同名方法子类必须定义名字完全一致的槽方法3摄像头画面人脸发蓝、嘴唇发黄OpenCV 是 BGR,QImage 按 RGB 解释4点了"打开摄像头"界面直接卡死read()阻塞主线程用QTimer定时读帧,别在槽里死循环5定时器间隔设 1ms 后窗口卡死、CPU 飙满间隔小于实际帧处理耗时,事件堆积。

2026-10-12 21:18:00 191

原创 YOLO1 与 YOLO2 原理详解:从“一阶段检测“到“精度飞跃“

把检测从两阶段回归到一阶段,开创了实时检测的先河。代价是精度不如两阶段方法,尤其在小目标和密集目标上吃亏。用 anchor + 多尺度 + BN + 聚类 + passthrough 这套组合,把一阶段方法的精度拉到接近两阶段水平,同时保留速度优势。它为后续 YOLO3/4/5 甚至 YOLOX 奠定了基本范式。预测范式:从"网格直接回归 5 值"到"网格 + anchor + 偏移";网络结构:从 GoogLeNet 风格到 Darknet-19,从 FC 回归到全卷积;精度补丁。

2026-10-12 19:01:29 116

原创 OpenCV 摄像头年龄性别识别 + 疲劳检测

两个程序的骨架都不复杂:年龄性别识别是"检测定位 → 裁图 → 分类查表",疲劳检测是"定位 → 计算比值 → 阈值判断 → 连续帧确认"。决定能否举一反三的是中间的细节——blob 如何构造、检测结果四维结构如何解读、EAR 为何采用比值、为何需要帧数确认。掌握这些内容后,可尝试将疲劳检测改造为"张嘴检测"或"点头检测",完成这一改造即说明两种思路均已理解到位。

2026-10-09 21:16:09 289

原创 Hive 学习第三天:HQL 查询精讲与内置函数实战

内置函数满足不了时,可以自己开发。UDF:一进一出,最常见;UDAF:自定义聚合,多进一出;UDTF:一进多出。新建 Maven 工程,引入 hive-exec 依赖;继承GenericUDF,实现初始化(校验参数类型)和evaluate(核心逻辑)方法;打包成 jar,在 Beeline 中注册使用:ADD JAR /路径/my_udf.jar;TEMPORARY表示仅当前会话有效;需要长期共享可放到 HDFS 并使用注册为永久函数。

2026-10-08 19:49:01 186

原创 Hive 学习第二天:数据类型、建表设计与数据导入导出

Hive 学习第二天:数据类型、建表设计与数据导入导出学习环境:Hive 3.x(Beeline + HiveServer2)学习目标:掌握 Hive 的基本类型与复杂类型;能根据场景正确选择内部表/外部表/分区表/分桶表;熟练使用 LOAD、INSERT 完成数据导入导出;理解 SerDe 的作用。

2026-10-08 19:48:21 321

原创 Hive 学习第一天:搞懂它是什么,并搭好可用的环境

Hive 学习第一天:搞懂它是什么,并搭好可用的环境学习环境:CentOS 7 + JDK 8 + Hadoop 3.x + Hive 3.x + MySQL 5.7前置条件:Hadoop 伪分布式集群已能正常启动(参考 Hadoop 两天笔记)。学习目标:理解 Hive 的本质和架构,知道它和 MySQL 这类传统数据库的区别;完成生产常用的 MySQL 元数据部署,并用 Beeline 跑通第一个查询。

2026-10-08 19:46:58 202

原创 Hadoop 学习第二天:HDFS 常用操作与 WordCount 分布式计算实战

现象:任务提交后长时间没有进度,日志里有内存不足或 Container 被 kill 的信息。原因:伪分布式机器内存紧张,YARN 默认给每个 Container 分配的内存超出了机器实际可用量。对策:在中调小(NodeManager 可用总内存)和(单个 Container 上限),比如都调成 1024~2048 MB,重启 YARN 后重新提交。第一天:理解 HDFS / YARN / MapReduce 三组件分工,搭好伪分布式集群;

2026-10-08 19:36:11 231

原创 Hadoop 学习第一天:从“是什么”到跑通伪分布式集群

学习环境:CentOS 7 + JDK 8 + Hadoop 3.x学习目标:搞懂 Hadoop 解决什么问题、由哪些核心组件构成,并在一台机器上把伪分布式集群启动起来。

2026-10-08 19:35:30 224

原创 TextRNN 做微博情绪四分类

模型输出的是 4 个原始分数(logits)因为,softmax 已经包含在损失函数内部。如果自己在模型末尾再加一层 Softmax,不会报错,但等于做了两次 softmax,损失数值和梯度都会异常——新手高频坑,记住"logits 进 cross_entropy"即可。

2026-09-22 20:49:25 291

原创 基于 dlib 与 OpenCV 的人脸换脸术实现:原理与逐段代码解析

dlib 的 68 点模型把一张人脸划分为多个语义区域,每个区域对应一段连续的关键点索引。下面这段代码就是把这些索引区间整理成具名常量,方便后续按区域取点。区域索引范围说明JAW_POINTS0-16下巴轮廓17-21右眉22-26左眉27-34鼻梁与鼻翼36-41右眼42-47左眼48-60嘴唇外轮廓17-67除下巴外的脸部区域接下来把参与换脸的几个区域合并成一个总列表,并转换为元组。这里选取了左右眉、双眼、鼻子和嘴巴,这些区域基本覆盖了人脸正面的主要特征。注意这里。

2026-09-20 21:10:04 300

原创 基于 dlib 与 OpenCV 的疲劳驾驶检测:眼睛纵横比(EAR)原理与代码逐段解析

使用 dlib 的正面人脸检测器定位画面中的人脸。使用 dlib 的 68 点人脸关键点模型,获取每只眼睛周围的 6 个关键点坐标。根据眼睛 6 个关键点的几何关系,计算眼睛纵横比(EAR)。当 EAR 持续低于阈值(本文取 0.3)达到一定帧数时,判定为疲劳闭眼,触发警报。在画面中实时绘制眼睛轮廓和 EAR 数值,便于观察。其中,眼睛纵横比(EAR)是核心指标。它利用眼睛关键点之间的欧氏距离比值,刻画眼睛睁开程度,具有尺度不变性,即人脸离摄像头远近变化时,该比值仍然稳定。

2026-09-20 21:02:05 234

原创 用 Flask 部署 PyTorch 图像分类模型:原理与逐段代码讲解

在深度学习项目中,训练好一个模型只是第一步,如何把模型部署成可供外部调用的服务,是工程落地中非常关键的一环。本文以一段完整的 Flask 代码为例,讲解如何将 PyTorch 训练好的 ResNet18 图像分类模型封装成 HTTP 接口,并逐段剖析每一行代码背后的原理。在深入代码之前,先梳理一下整个服务的运行流程,这有助于理解每一段代码在整体中的位置。除了核心的预测接口,代码还提供了三个辅助接口,用于演示 Flask 的基本用法。,因为 Flask 默认只响应 GET 请求,效果与显式声明一致。

2026-09-20 20:19:30 148

原创 从零实现 CBOW 词向量模型:PyTorch 逐段代码详解

嵌入层,本质是一个 vocab_size × embedding_dim 的查找表。每个单词的索引对应表中的一行,这一行就是该单词的词向量。在训练过程中,这个矩阵会不断更新,最终学到的就是词向量本身。:第一个全连接层,把词向量映射到 128 维的隐藏空间,并经过 ReLU 激活函数引入非线性。:输出层,把隐藏层映射回词表大小,得到每个单词的得分。:对输出做对数 Softmax,把得分转换为概率分布的对数形式,方便与 nn.NLLLoss 配合使用。

2026-09-15 20:16:04 108

原创 从手搭CNN到迁移学习:食物图像分类完整实战(含逐行代码讲解)

self.imgs.append(img_path) # 存图片路径self.labels.append(label) # 存标签(此时是字符串)原理:PyTorch 要求自定义数据集继承Dataset,并重写三个方法。这里__init__读取一个 txt 文件,每行格式为图片路径 标签,把路径和标签分别存进列表。return len(self.imgs) # 返回数据集大小__len__让能返回样本总数。image = Image.open(self.imgs[idx]) # 按路径读图片。

2026-09-14 19:55:15 87

原创 基于 dlib 的人脸关键点检测实战:从静态图像到实时视频

将指定的点连接起来pts = shape[start:end] # 获取点集该函数接收起始索引start和结束索引end,用于将指定范围内的关键点依次连接成线段。首先,通过切片操作获取从start到end-1的关键点坐标子集。然后,使用 for 循环遍历这些点,每次取相邻的两个点pts[l-1]和pts[l],将其转换为元组形式,作为线段的起点和终点。最后,调用cv2.line在图像上绘制一条绿色线段,线宽为 2 个像素。# 将指定的点构成一个凸包,绘制成轮廓,一般眼睛、嘴使用凸包用来绘制。

2026-09-14 19:36:20 146

原创 PyTorch 食物图像分类实战:从数据准备到 CNN 训练全流程解析

让对象支持下标访问(p[1]),__len__让对象支持 len() 调用。这是 PyTorch Dataset 的核心协议——DataLoader 正是通过这两个方法按索引取样本并统计长度。self.labels.append(int(label)) # 直接转int,不再存字符串image = Image.open(self.imgs[idx]).convert("RGB") # 统一转RGB,解决灰度图通道报错__init__:读取 txt 文件,按空格拆分每行,分别存入图片路径列表和标签列表。

2026-09-10 19:34:20 241

原创 HDFS 与 MapReduce 核心原理详解

MapReduce 是 Hadoop 的分布式计算框架,核心思想是「分而治之」:把大规模数据集拆分成多个小任务并行处理,再汇总结果。客户端写入一个文件时,数据会经过 NameNode 的元数据管理和 DataNode 的流水线复制,最终形成多副本冗余。库时,需要确保 NameNode 开启了 WebHDFS 服务(默认端口 9870)。HDFS Shell 命令是操作 Hadoop 分布式文件系统最基础、最常用的方式。这类命令用于查看、创建、删除和移动 HDFS 中的文件与目录。下面给出常用操作示例。

2026-09-09 21:09:39 132

原创 大数据入门:Hadoop 与 MapReduce 学习路线

大数据是指无法用传统工具处理的海量数据集合,其核心特征通常概括为 4V:Volume(数据量大)、Velocity(处理速度快)、Variety(数据类型多样)、Value(价值密度低)。学习大数据技术,首先需要理解分布式存储和分布式计算的基本思想。大数据并不是一个绝对的概念,而是相对于传统数据处理能力而言的。当数据量达到 TB、PB 甚至 EB 级别,传统的关系型数据库和单机处理工具已经无法在可接受的时间内完成存储、计算和分析时,我们就称之为大数据。

2026-09-09 21:02:07 359

原创 从“找到脸“到“认出人“:我用 OpenCV 把人脸检测与识别完整跑通了一遍

这些轴在图像空间里还原出来,就是一张张"特征脸"(Eigenface)——它们看起来像模糊的人脸轮廓,但每一张都对应一种独立的明暗变化模式。训练时,把每张训练脸都表示成"若干特征脸的加权组合",权重向量就是这张脸的"指纹"。Eigenfaces 用 PCA 找"方差最大的方向",但方差大不代表能区分人——光照变化造成的方差往往比人脸差异还大。要做的,就是从这 10000 维里找出少数几个"最能代表整张脸变化方向"的轴,把脸投影到这些轴上,实现降维。到这里,OpenCV 内置的三种人脸识别方法就全部讲完了。

2026-09-06 21:01:47 336

原创 从矿物分类到手写数字识别:CNN与KNN实战代码全解析

return x原理讲解:这是一个三层一维卷积网络。输入数据原本是形状为的二维张量,通过增加一个通道维度,变为,以符合Conv1d的输入要求。三个卷积层逐步提取特征,通道数从16增加到64。每个卷积层后接ReLU激活函数引入非线性。最后通过对特征维度做全局平均池化,将每个样本压缩为64维向量,再经过全连接层输出4个类别的得分。CNN和KNN代表了深度学习和传统机器学习的两条技术路线。CNN通过多层卷积自动学习数据的层次化特征,适合处理具有局部相关性的数据(如图像、序列),但需要大量数据和较长的训练时间。

2026-09-04 21:18:23 230

原创 PyTorch CNN 手写数字识别:MNIST 实战代码逐行详解

本节的 CNN 模型由三个卷积模块和一个全连接输出层组成。每个卷积模块内部使用 nn.Sequential 把多个层组合在一起,使前向传播过程更加清晰。nn.Conv2d(stride=1,padding=2),nn.ReLU(),nn.ReLU(),nn.ReLU(),nn.ReLU()下面逐层分析网络结构。本文逐行解析了基于 PyTorch 的 MNIST 手写数字识别代码,覆盖了数据加载、批量处理、设备选择、CNN 结构设计、训练与测试流程以及交叉熵损失函数的原理。

2026-09-03 19:28:35 342

原创 SQL 语言分类详解:DML、DDL 与 DCL

DDL(Data Definition Language,数据定义语言)主要用于定义和管理数据库对象的结构,包括数据库、表、索引、视图、存储过程等。DDL 语句通常会自动提交事务,执行后立即生效,且一般无法回滚。DDL负责搭建和维护数据库的结构骨架,DML负责对结构中的数据进行日常操作,DCL则负责控制谁能访问和操作这些数据。理解这三类语言的区别,有助于在实际开发中写出更规范、更安全的 SQL,也能帮助初学者更快地建立对关系型数据库的整体认知。

2026-09-02 21:14:05 343

原创 OpenCV 实战:四段代码逐行详解

这里定义了一个简单的辅助函数cv_show,用于显示图像并等待 1 毫秒。使用waitKey(1)而不是waitKey(0),是为了让窗口在视频循环中能够持续刷新,而不会阻塞主循环的执行。# 一共4个坐标点# 按顺序找到对应坐标0123分别是 左上,右上,右下,左下s = pts.sum(axis=1) # 对pts矩阵的每一行进行求和操作。(x+y)diff = np.diff(pts, axis=1) # 对pts矩阵的每一行进行求差操作。(y-x)

2026-08-30 20:34:19 332

原创 PyTorch 手写数字识别实战:从数据加载到模型训练(零基础详解版)

张量:PyTorch 中的基本数据结构,可以理解为多维数组。图片、标签、模型参数都以张量的形式存在。数据集与数据加载器:数据集负责存储和管理样本,数据加载器负责按批次把数据送入模型。神经网络:由多个线性层和非线性激活函数堆叠而成的函数逼近器,通过调整参数来拟合输入到输出的映射关系。前向传播与反向传播:前向传播计算预测结果和损失,反向传播通过链式法则计算每个参数的梯度。损失函数:衡量预测与真实标签的差距,是模型优化的目标函数。优化器:根据梯度更新参数,常用的有 SGD、Adam 等。

2026-08-28 20:02:59 356

原创 线性回归算法实现训练数据集、测试数据集的缺失值填充

train_data_X = train_data_all.drop('矿物类型', axis=1)这段代码完成函数定义和初始数据准备。第一行定义函数train_data是特征数据,是标签数据。接下来,pd.concat把特征和标签按列方向拼接成一张完整的表,重置行索引,避免拼接后索引错乱。最后用drop去掉标签列矿物类型,得到纯特征数据,后续所有填充操作都在这个特征表上进行。train_data_X = train_data_all.drop('矿物类型', axis=1)

2026-08-27 20:57:05 349

原创 OpenCV 答题卡识别判卷实战:从图像预处理到自动评分

本文通过一个完整的 OpenCV 案例,详细讲解了答题卡识别判卷的实现流程。图像预处理:灰度化、高斯模糊、Canny 边缘检测的组合应用。轮廓检测与筛选:通过面积排序和多边形逼近定位目标区域。透视变换:校正倾斜图像,得到标准化视角。掩膜统计:利用掩膜和像素统计判断填涂状态。支持多页答题卡批量识别,提高处理效率。引入 OCR 技术识别考生信息和准考证号。优化填涂检测算法,支持铅笔和钢笔等多种填涂方式。结合深度学习模型,提升复杂场景下的鲁棒性。

2026-08-25 21:09:14 350

原创 深度学习入门:从神经网络到反向传播的完整解析

深度学习(Deep Learning,简称 DL)是机器学习(Machine Learning,简称 ML)领域中一个新的研究方向。它属于人工智能的一个子领域,基于人工神经网络的概念和结构,通过模拟人脑的工作方式来执行机器学习任务。深度学习的主要特点是使用多层次的神经网络来提取和学习数据中的特征,并通过反向传播算法来优化网络参数,从而实现对复杂数据的建模与分类。目前,深度学习在图像识别、语音识别、自然语言处理等领域取得了显著的成果,并被广泛应用于各种实际场景。机器学习。

2026-08-25 14:54:02 166

原创 OpenCV图像处理学习笔记:从角点检测、SIFT特征提取到指纹识别系统实战

本篇学习笔记系统总结了OpenCV图像处理第七天的实战内容,包含Harris角点检测原理、SIFT尺度不变特征提取、FLANN/KNN特征匹配与Lowe比率测试,以及两个综合实战项目——指纹验证系统(1:1比对)和指纹识别系统(1:N数据库检索),另外还讲解了BGR三通道直方图均衡化、匹配点坐标可视化标注等作业案例。每节附完整可运行代码与运行效果说明,并详细整理了实操中遇到的各类坑与解决对策,希望对OpenCV入门学习者有所帮助。

2026-08-23 19:18:00 227

原创 OpenCV 学习笔记(六):从直方图到文档自动矫正的踩坑实录

本篇是 OpenCV 自学 Day6 的实战笔记。前几篇打下了图像读写、色彩空间、几何变换的基础,这一篇要把“会调 API”升级到“能解决真实问题”——核心目标是用 OpenCV 写一个倾斜发票自动矫正扫描器,过程中把直方图、图像金字塔、透视变换串成一条完整的工程链路。本文风格依旧是“边讲边踩坑”,每个知识点都标注【坑点】和【对策】,便于自己复盘,也希望能帮到同样在入门 OpenCV 的同学。把 Day6 的四个小练习摆在一起看,会发现它们不是零散的 API 罗列,而是一套图像预处理 + ROI 提取的工具

2026-08-21 21:24:29 289

原创 从零开始学 Numpy:18 个实战知识点带你打通科学计算第一关

最近在系统学习 Numpy,跟着一套 18 个知识点的学习路线从环境配置一路走到文件读写、矩阵运算。本文是这套学习内容的整理与复盘,既适合零基础入门,也把过程中踩过的坑一并写出来,方便大家避雷。所有代码均基于 numpy 1.26.1 + Python 3 验证通过。序号坑点正确做法1resize()返回值赋值给变量得到 None直接调用,不接收返回值2ravel()修改了原数组需要独立副本时用flatten()或.copy()3报参数过多4当成矩阵乘法矩阵乘法必须用dot()或5。

2026-08-20 20:27:14 291

原创 MySQL 流程控制函数与分组函数详解

处理数值型:sum、avg 一般用于处理数值型;max、min、count 可以处理任何类型。-- sum、avg 不建议用于处理字符型-- sum、avg 不建议用于处理日期型-- max、min 适合处理任何类型-- max、min 适合处理任何类型-- count 忽略 null 值-- count 适合处理任何类型是否忽略 null 值:max、min、avg、count、sum 聚合函数都忽略 null 值。SELECT-- count 忽略 null 值。

2026-08-18 20:24:04 227

原创 MySQL 基础与 SQL 语言语法入门指南

数据库(Database)是一个有组织的数据集合,便于存储、管理和检索。你可以把它想象成一个电子化的文件柜。表(Table):数据库中的数据存储在表中。表由行(记录)和列(字段)组成。行(Row/Record):表中的一条具体数据。列(Column/Field):表中数据的属性或类别,如"姓名"、"年龄"。本文涵盖了 MySQL 的基础概念和 SQL 语言的核心语法,为你构建了坚实的学习起点。动手实践:在自己的电脑上安装 MySQL,按照本文的示例代码逐一练习。深入理解。

2026-08-17 20:05:20 179

原创 基于 OpenCV 的信用卡卡号智能识别系统详解

本文实现了一套基于传统图像处理和模板匹配的信用卡卡号识别系统。其优点是流程清晰、无需训练数据,适合固定样式的卡片图片;缺点是模板匹配对字体、光照、倾斜和遮挡较为敏感,定位参数的通用性有限。实际项目中可以引入透视变换矫正卡片角度,使用更鲁棒的文字检测方法,或直接采用深度学习目标检测与序列识别模型,以获得更好的泛化能力。

2026-08-16 19:26:30 357

原创 Shell 脚本编程入门:从基础语法到文本处理实战

Shell 是一个命令行解释器,它接收应用程序或用户输入的命令,然后调用操作系统内核来执行。我们日常输入的 cd、ls 等命令,都需要经过 Shell 解析后再交给 Linux 内核,由内核操作硬件完成最终任务。整个调用关系可以概括为:外层应用程序 → Shell → Linux 内核 → 硬件。除了命令解释器这一身份之外,Shell 还是一种功能相当强大的编程语言,具备易编写、易调试、灵活性强等特点,非常适合用来完成系统管理、自动化运维和批处理任务。$HOME:当前用户的家目录$PWD。

2026-08-14 19:39:52 229

原创 Linux 常用基本命令详解:帮助命令、文件目录类与时间日期类

Shell 可以看作是一个命令解释器,为我们提供了交互式的文本控制台界面。我们可以通过终端控制台输入命令,由 Shell 进行解释并最终交给内核执行。本文围绕 Linux 中常用的帮助命令、文件目录类命令和时间日期类命令展开,整理其基本语法、常用选项与实操案例,方便日常查阅和上手练习。

2026-08-13 19:29:34 215

原创 CountVectorizer 词频统计算法详解:从文本到数字特征

本文介绍的算法是 NLP 中最基础的文本向量化方法,它通过统计词频构建特征矩阵,简单高效。其核心是词袋模型,并借助参数灵活控制特征粒度。理解这一算法,是后续学习 TF-IDF、Word2Vec 等更复杂词向量技术的基石。在实际项目中,我们通常还会结合停用词过滤、最大特征数限制等参数来优化特征空间,以提升模型性能。

2026-08-11 21:18:12 339

原创 TF-IDF算法详解

在 Python 中,最常用的 TF-IDF 实现来自库的类。它能够将原始文本集合转换为 TF-IDF 特征矩阵,方便后续的文本分类、聚类或相似度计算。TF-IDF 作为文本挖掘领域最经典的特征加权算法之一,凭借其简洁直观的数学原理和出色的实际效果,至今仍在关键词提取、文本相似度计算、搜索引擎排序等场景中广泛应用。原理层面:TF-IDF 由词频(TF)和逆文档频率(IDF)两部分组成,前者衡量词语在单篇文档中的重要程度,后者衡量词语在整个语料库中的区分能力,两者相乘得到最终的加权分数。工具层面。

2026-08-11 20:47:04 341

原创 学习日记 8.8

Linux作为开源操作系统的代表,在服务器、云计算、容器技术、嵌入式开发等领域占据着绝对主导地位。对于开发者、运维工程师、网络安全人员以及任何希望深入了解计算机系统的人来说,掌握Linux都是一项必备的核心技能。通过虚拟机(VMware)安装CentOS 7,是初学者最安全、最便捷的入门实践方式,它允许你在不影响现有Windows或macOS系统的情况下,搭建一个完整的Linux学习环境。通过VMware安装CentOS 7,你成功搭建了一个安全、隔离的Linux学习环境。

2026-08-09 21:17:39 242

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除