【Linux】vim
🌻个人主页:路飞雪吖~
🌠专栏:Linux
目录
一、Linux开发工具
🌟vim的基本概念
二、Linux编译器-gcc/g++使用
🌟gcc如何完成(ESc - iso)
1、预处理(进行宏替换)
2、编译(生成汇编)
3、汇编(生成机器可识别代码)
4、连接(生成可执行文件或库文件)
编辑
🌠库函数
三、Linux项目自动化构建工具-make/Makefile
🌟是什么?
🌟语法
⭐形成可执行:
⭐清理项目:
⭐make/makefile基本原理:
🌠小贴士:
🌠语法
一、Linux开发工具
🌟vim的基本概念
vim是一个多模式编辑器。
vim常见模式:
• 正常/普通/命令模式(Normal mode)
控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode
• 插入模式(Insert mode)只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。该模式是我们后面用的最频繁的编辑模式。
• 末行模式(last line mode)
文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下,shift+: 即可进入该模式。要查看你的所有模式:打开vim,底行模式直接输入
:help vim-modes
在命令模式进行的操作:
光标所在行 | 光标快速定位 | ||
复制:yy n+yy | 文本结尾:shift+g=G | 行尾:shift+4=$ | 光标位置向后按照字符进行删除:n+x |
粘贴:p,n+p | 文本开始: gg | 行首:shift+6=^ | 光标位置向前: shift+x = X |
撤销:u | 文本任意一行:n,shift+g | 以单词为单位,向后跳转: w | 大小写快速切换: shift+~ |
剪切:dd,n+dd | 光标局部定位: h(左),j(下),k(上),l(右) | 以单词为单位,向前跳转: b | 替换字符: n+r |
在底行模式:
底行模式 | |
显示文件行数: :set nu | 保存并退出: :wq! |
查找关键字: :/关键词 | 在vim里进行操作: :!ls -al |
多屏打开文件: :vs filename | 多屏光标切换: :ctrl+ww 左/右键 |
直接退出: ctrl + zz |
在视图模式:ctrl+v
多行注释:
视图模式 | 允许光标进行批量化选择 |
1、ctrl+v | 进入visual BLock |
2、h/j /k/l (光标定位) | 进行区域选择 |
3、 shift+i | |
4、 // | |
5、按两次 Esc |
取消注释:
ctr+v |
h/j /k/l (光标定位) |
d |
二、Linux编译器-gcc/g++使用
🌟gcc如何完成(ESc - iso)
写的代码是如何变成可执行文件的?
1、预处理(进行宏替换)
• 预处理功能主要包括宏定义,文件包含,条件编译,去注释等。
• 预处理指令是以#号开头的代码行。
预处理完之后还是C语言,只不过是处理的比较干净的C语言代码。
gcc -E code.c -o code.i
• -E 开始进行程序的翻译,预处理做完就停下来;
• -o 指目标文件;
• ".i " 文件为已经过预处理的C原始程序 。
2、编译(生成汇编)
把代码翻译成汇编代码。
• 在这个阶段中,gcc 首先要检查代码的规范性、是否有语法错误等,以确定代码的实际要做的工作,在检查无误后,gcc 把代码翻译成汇编语言。
• 用户可以使用“-S”选项来进行查看,该选项只进行编译而不进行汇编,生成汇编代码。
gcc -S code.i -o code.s
• -S 开始进行程序的编译,编译完就停下来;
3、汇编(生成机器可识别代码)
• 汇编阶段是把编译阶段生成的“.s”文件转成目标文件;
• 在此可使用选项“-c”就可看到汇编代码已转化为“.o”的二进制目标代码了
gcc -c code.c -o code.o
• 开始进行程序的翻译,汇编完成就停下
• 形成 code.o 可重定位目标文件
4、连接(生成可执行文件或库文件)
• 在成功编译之后,就进入了链接阶段。
gcc -o code code.o
• code.o 目标文件和标准库进行关联,构建可执行程序。
• code 编译出来的文件名,code.o 要编译的文件
🌠小贴士:
连接方式分为动态链接和静态链接。
🌠库函数
ldd 可执行程序的名字
表示这个可执行程序,自己在链接时依赖哪些库。
<1> 静态库
• XX.a (linux)、XX.lib (windows)
• 静态链接:把我们要访问的方法实现,拷贝到我们自己的可执行程序中;
• 比较浪费资源,可执行程序体积比较大;
• 不依赖其他库,库丢失也无所谓,程序照样能运行。
<2> 动态库
• XX.so (linux)、XX.dll (windows)
• 一旦动态库缺失,所有程序无法运行;
• 比较节省资源,可执行程序体积小;
<3> 要进行动态链接必须要有动态库,要进行静态链接必须要有静态库。
三、Linux项目自动化构建工具-make/Makefile
🌟是什么?
make :是一条命令
makefile:是一个文件
make和makefile组合是一个帮助我们自动化构建项目的一个工具。
🌟语法
⭐形成可执行:
makefile本质是依赖关系和依赖方法的集合。
依赖关系:我和爸爸的关系
依赖方法:我跟爸爸提的要求
proc : proc.c
目标文件 :依赖关系 列表
⭐清理项目:
proc:proc.c
gcc -o proc proc.c
.PHONY:clean
clean:
rm -f proc
⭐make/makefile基本原理:
🎉 makefile文件,会被make从上到下开始扫描,第一个目标名,是缺省要形成的。如果我们想要执行其他组的依赖关系和依赖方法就 make name
• 依赖方法可以是任意指令;
• @ 关闭命令回显
🎉 makefile在执行gcc命令时,如果发生了语法错误,就会终止推导过程。
🌠小贴士:
<1> .PHONY的作用是什么?
.PHONY:让目标文件,对应的方法,总是被执行的!
<2> 当源文件修改了之后,就可以重新编译:
有时候需要重新编译,又时候不需要,为什么?
对于 源文件 和 可执行程序 ,都是文件,文件 = 内容 + 属性。
属性:文件的大小,文件创建的时间
AMC时间:
A:表示这个文件最近被访问的时间
M:最近内容被修改的时间
C:最近属性被改变的时间
当修改内容的时候,可能会引发属性的联动(文件的新增,大小就会改变,大小就是文件的属性):
为了效率,Access时间,不是每一次刷新,而是积累一定次数才会刷新。
回到刚才的问题:有时候需要重新编译,有时候不需要,为什么?
根据对比文件各自的 Modify 时间 做到的!
根据源文件和可执行程序谁的时间更加新,来决定的!
可执行程序更加新,不需要重新编译,
源文件更加新,需要重新编译。
以上总结: .PHONY 是让依赖方法,忽略掉时间对比,所以能总是被执行!
🎉 make解释makefile的时候,是会自动推导的。
一直推到,推导过程,不执行依赖方法。
直到推到到有依赖文件存在,然后在逆向的执行所有的依赖方法。
🌠语法
<1>
% 为makefile语法中的通配符;
%.c : 当前目录下所有的 .c 文件,展开到依赖列表中;
$< : 依赖关系:右侧的依赖文件,一个一个的交给gcc -c选项,形成同名的 .o 文件
<2>
$(bin) : $(src)
目标文件:依赖关系列表
makefile中也可以定义变量,没有类型。
$() :把变量的内容替换进来
$^ : 所有的依赖文件列表【$(src)】的所有内容,一次性全部给gcc
$@ : 目标文件,要形成的目标文件
<3> make默认只形成一个可执行程序。
如何一次形成多个可执行程序?
如若对你有帮助,记得点赞、收藏、关注哦!
若有误,望各位,在评论区留言或者私信我 指点迷津!!!谢谢^ ^ ~
相关文章:
【Linux】vim
🌻个人主页:路飞雪吖~ 🌠专栏:Linux 目录 一、Linux开发工具 🌟vim的基本概念 二、Linux编译器-gcc/g使用 🌟gcc如何完成(ESc - iso) 1、预处理(进行宏替换ÿ…...
virtualbox给Ubuntu22创建共享文件夹
1.在windows上的操作,创建共享文件夹Share 2.Ubuntu22上的操作,创建共享文件夹LinuxShare 3.在virtualbox虚拟机设置里,设置共享文件夹 共享文件夹路径:选择Windows系统中你需要共享的文件夹 共享文件夹名称:挂载至wi…...
SQLModel与FastAPI结合:构建用户增删改查接口
SQLModel简介 SQLModel是一个现代化的Python库,旨在简化与数据库的交互。它结合了Pydantic和SQLAlchemy的优势,使得定义数据模型、进行数据验证和与数据库交互变得更加直观和高效。SQLModel由FastAPI的创始人Sebastin Ramrez开发,专为与FastA…...
数据库日志
MySQL中有哪些日志 1,redo log重做日志 redo log是物理机日志,因为它记录的是对数据页的物理修改,而不是SQL语句。 作用是确保事务的持久性,redo log日志记录事务执行后的状态,用来恢复未写入 data file的已提交事务…...
力扣第 71 题 简化路径
一、题目描述 给定一个字符串 path,表示一个由目录名和斜杠 "/" 组成的绝对路径,请简化该路径,使其变为规范路径。 在 Unix 风格的文件系统中: 一个点 "." 表示当前目录本身;两个点 "..&q…...
Android 性能优化:内存优化(理论篇)
内存作为App程序运行最重要的资源之一,需要运行过程中做到合理的资源分配与回收,不合理的内存占用轻则使得用户应用程序运行卡顿、ANR、黑屏,重则导致用户应用程序发生 OOM(out of memory)崩溃。喜马直播随着近些年的业…...
Flink四大基石之窗口(Window)使用详解
目录 一、引言 二、为什么需要 Window 三、Window 的控制属性 窗口的长度(大小) 窗口的间隔 四、Flink 窗口应用代码结构 是否分组 Keyed Window --键控窗 Non-Keyed Window 核心操作流程 五、Window 的生命周期 分配阶段 触发计算 六、Wi…...
Easy Excel 通过【自定义批注拦截器】实现导出的【批注】功能
目录 Easy Excel 通过 【自定义批注拦截器】实现导出的【批注】功能需求原型:相关数据:要导出的对象字段postman 格式导出对象VO 自定义批注拦截器业务代码: 拦截器代码解释:详细解释:格式优化: Easy Excel…...
PHP 去掉特殊不可见字符 “\u200e“
描述 最近在排查网站业务时,发现有数据匹配失败的情况 肉眼上完全看不出问题所在 当把字符串 【M24308/23-14F】复制出来发现 末尾有个不可见的字符 使用删除键或左右移动时才会发现 最后测试通过 var_dump 打印 发现这个"空字符"占了三个长度 …...
Flume和kafka的整合:使用Flume将日志数据抽取到Kafka中
文章目录 1、Kafka作为Source【数据进入到kafka中,抽取出来】2、kafka作为Sink 【数据从别的地方抽取到kafka里面】 1、Kafka作为Source【数据进入到kafka中,抽取出来】 kafka源 --> memory --> 控制台: a1.sources r1 a1.sinks k1…...
Flutter:启动屏逻辑处理02:启动页
启动屏启动之后,制作一个启动页面 新建splash:view 视图中只有一张图片sliding.png就是我们的启动图 import package:flutter/material.dart; import package:get/get.dart; import index.dart; class SplashPage extends GetView<SplashController…...
【MySQL】自动刷新flush privileges命令
在 MySQL 中,执行 FLUSH PRIVILEGES 命令的主要作用是使权限表中的更改立即生效。下面是关于这个命令的一些关键点: 1. 什么是 FLUSH PRIVILEGES 当你使用 SET PASSWORD 或其他 SQL 语句直接修改了用户的密码或权限(例如,使用 U…...
2024免费天气接口(无废话版)
免费接口1:http://t.weather.sojson.com/api/weather/city/101030100 免费接口2:http://t.weather.itboy.net/api/weather/city/101030100 至于后面那个城市编码 请自行查询:如图 注意!!! 点击下载时 可能…...
fpga 时序分析基础
目录 触发器的动态参数 同步时序电路分析 1. 时钟脉冲的特性 2. 同步时序电路分析 Timing Analyzer的应用 异步时序与亚稳态问题 时序分析就是对时序电路进行时序检查,通过分析电路中所有寄存器之间的路径延迟以检查电路的传输延迟是否会导致触发器的建立时间…...
Laravel8.5+微信小程序实现京东商城秒杀方案
一、商品秒杀涉及的知识点 鉴权策略封装掊口访问频次限制小程序设计页面防抖接口调用订单创建事务使用超卖防御 二、订单库存系统方案(3种) 下单减库存 优点是库存和订单的强一致性,商品不会卖超,但是可能导致恶意下单ÿ…...
Git——本地仓库链接并推送到多个远程仓库
步骤 1. 新建仓库init 或 删除已有仓库远程链接 // 1.新建init git init// 2.已有仓库,查看链接的远程仓库 git remote -v// 3.已有远程连接仓库,需要删除连接 git remote rm origin(或对应远程仓库名) 2.新建远程仓库 在gitee、github等托管平台创建…...
llama-factory 系列教程 (七),Qwen2.5-7B-Instruct 模型微调与vllm部署详细流程实战
文章目录 介绍llama-factory 安装装包下载模型 微调模型数据集训练模型 微调后的模型推理 介绍 时隔已久的 llama-factory 系列教程更新了。本篇文章是第七篇,之前的六篇,大家酌情选看即可。 因为llama-factory进行了更新,我前面几篇文章的实…...
Spring Boot的理解
一、什么是Spring Boot? Spring Boot是一个用于构建基于Spring框架的应用程序的开源框架。它简化了Spring应用程序的开发过程,使开发者能够更容易地创建独立运行的、生产级别的Spring应用程序。Spring Boot提供了许多功能和约定,可以帮助开发者快速搭建…...
QT QFormLayout控件 全面详解
本系列文章全面的介绍了QT中的57种控件的使用方法以及示例,包括 Button(PushButton、toolButton、radioButton、checkBox、commandLinkButton、buttonBox)、Layouts(verticalLayout、horizontalLayout、gridLayout、formLayout)、Spacers(verticalSpacer、horizontalSpacer)、…...
系统性能定时监控PythonLinux
系统性能定时监控 1.系统监控概述 ⽤Python来编写脚本简化⽇常的运维⼯作是Python的⼀个重要⽤途。在Linux下,有许多系统命令可以让我们时刻监控系统运⾏的状态,如 ps , top , free 等等。要获取这些系统信息,Python…...
python学习——列表的相关操作
在 Python 中,列表(list)是一种非常灵活的数据结构,可以用来存储一系列的元素。以下是列表的一些常见操作: 文章目录 创建列表访问元素修改元素列表切片添加元素删除元素列表推导式其他操作pop基本用法指定索引使用场…...
HTML CSS 魔法秀:打造翻转卡片登录注册页面
这段 HTML 和 CSS 代码创建了一个具有翻转卡片效果的登录和注册页面。下面是对重点标签和 CSS 样式的解释和总结: 一键复制 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"…...
Web day04 SpringBoot
目录 1.Spring概念: 2. spring程序快速入门: 3.HTTP协议: 特点: 基于TCP 协议: 基于请求响应模型: HTTP协议是无状态协议: 请求协议:为浏览器向服务器发出的消息 获取请求数据…...
selinux和防火墙实验
1 、 selinux 的说明 SELinux 是 Security-Enhanced Linux 的缩写,意思是安全强化的 linux 。 SELinux 主要由美国国家安全局( NSA )开发,当初开发的目的是为了避免资源的误用。 系统资源都是通过程序进行访问的,如…...
ClamAV 在 CentOS 的开发版本 `clamav-devel`
是的,ClamAV 在 CentOS 上有开发版本(通常称为 clamav-devel),它包含了开发 ClamAV 应用程序所需的头文件和库文件。以下是如何在 CentOS 上安装 ClamAV 及其开发版本的步骤。 ### 1. **安装 EPEL 仓库** ClamAV 通常在 EPEL&am…...
C++《二叉搜索树》
在初阶数据结构中我学习了树基础的概念以及了解了顺序结构的二叉树——堆和链式结构二叉树该如何实现,那么接下来我们将进一步的学习二叉树,在此会先后学习到二叉搜索树、AVL树、红黑树;通过这些的学习将让我们更易于理解后面set、map、哈希等…...
⭐️ GitHub Star 数量前十的工作流项目
文章开始前,我们先做个小调查:在日常工作中,你会使用自动化工作流工具吗?🙋 事实上,工作流工具已经变成了提升效率的关键。其实在此之前我们已经写过一篇博客,跟大家分享五个好用的工作流工具。…...
uni-app中的样式尺寸单位,px,rpx,vh,vw
uni-app 支持less、sass、scss、stylus等预处理器。 尺寸单位 uni-app 支持的通用 css 单位包括 px、rpx px 即屏幕像素rpx 即响应式 px,一种根据屏幕宽度自适应的动态单位。以 750 宽的屏幕为基准,**750rpx 恰好为屏幕宽度。**屏幕变宽,r…...
跳表(Skip List)
跳表(Skip List) 跳表是一种用于快速查找、插入和删除的概率型数据结构,通常用于替代平衡二叉搜索树(如 AVL 树或红黑树)。跳表通过在有序链表的基础上增加多层索引,使得查找操作的平均时间复杂度降低&…...
103.【C语言】数据结构之建堆的时间复杂度分析
1.向下调整的时间复杂度 推导 设树高为h 发现如下规律 按最坏的情况考虑(即调整次数最多) 第1层,有个节点,最多向上调整h-1次 第2层,有个节点,最多向上调整h-2次 第3层,有个节点,最多向上调整h-3次 第4层,有个节点,最多向上调整h-4次 ... 第h-1层,有个节点,最多向上调整1次 第…...
数字信号处理实验报告四:IIR数字滤波器设计及软件实现
1.实验目的 (1)熟悉用双线性变换法设计IIR数字滤波器的原理与方法; (2)学会调用MATLAB信号处理工具箱中滤波器设计函数(或滤波器设计分析工具fdatool)设计各种IIR数字滤波器,学会根据滤波需求确定滤波器指标参数。 (3)掌握IIR数字滤波器的MATLAB实现方法。 (3)…...
Flutter:encrypt插件 AES加密处理
1、pubspec.yaml导入插件 cupertino_icons: ^1.0.8 # 密码加密 encrypt: 5.0.3encrypt封装 import package:encrypt/encrypt.dart; /// 加密类 class EncryptUtil {static final EncryptUtil _instance EncryptUtil._internal();factory EncryptUtil() > _instance;Encrypt…...
软银集团孙正义再度加码OpenAI,近屿智能专注AI人才培养
11月28日凌晨,全球最大财经CNBC报道,软银集团创始人兼CEO孙正义再次向人工智能领域的领军企业OpenAI投资了15亿美元。软银对OpenAI的投资已不是首次。就在上个月,软银已在OpenAI的上一轮融资中注入了5亿美元的资金。但他一直寻求获得OpenAI更…...
windows11下的Ubuntu(WSL)中安装界面测试ROS
症状:我在WSL(Ubuntu)中我自己的用户名下面安装好了ROS,输入命令行能用,就是不弹出窗口。 首先到windows应用商店安装Ubuntu,我这里安装的是20.04,然后安装对应的ROS(Noetic版本). 然后windows安装VcXsrv. Ubuntu安装xfce4。 …...
Stable Diffusion 3详解
🌺系列文章推荐🌺 扩散模型系列文章正在持续的更新,更新节奏如下,先更新SD模型讲解,再更新相关的微调方法文章,敬请期待!!!(本文及其之前的文章均已更新&…...
【CSS】设置文本超出N行省略
文章目录 基本使用 这种方法主要是针对Webkit浏览器,因此可能在一些非Chrome浏览器中不适用。 基本使用 例如:设置文本超出两行显示省略号。 核心代码: .ellipsis-multiline {display: -webkit-box; -webkit-box-orient: vertical; /* 设置…...
Python绘画:蛋糕
Python绘画:蛋糕 🐸 前言 🐸🐋 效果图 🐋🐉 代码 🐉 🌵🌲🌳🌴🌿🍀☘️🌱🍃🎋…...
使用wget在清华镜像站下载Anaconda报错ERROR 403: Forbidden.
问题描述 使用wget在清华镜像站下载Anaconda报错ERROR 403: Forbidden. Resolving mirrors.tuna.tsinghua.edu.cn (mirrors.tuna.tsinghua.edu.cn)… 101.6.15.130, 2402:f000:1:400::2 Connecting to mirrors.tuna.tsinghua.edu.cn (mirrors.tuna.tsinghua.edu.cn)|101.6.15…...
道可云人工智能元宇宙每日资讯|第三届京西地区发展论坛成功召开
道可云元宇宙每日简报(2024年11月27日)讯,今日元宇宙新鲜事有: 工信部等十二部门印发《5G规模化应用“扬帆”行动升级方案》 11月25日,工业和信息化部等十二部门印发《5G规模化应用“扬帆”行动升级方案》。《方案》…...
web安全之信息收集
在信息收集中,最主要是就是收集服务器的配置信息和网站的敏感信息,其中包括域名及子域名信息,目标网站系统,CMS指纹,目标网站真实IP,开放端口等。换句话说,只要是与目标网站相关的信息,我们都应该去尽量搜集。 1.1收集域名信息 知道目标的域名之后,获取域名的注册信…...
Google Earth Engine APP(GEE) ——基于多种机器学习多源遥感不同变量组合下的森林地表生物量模型预测APP
目录 Arguments: Returns: ui.Select Arguments: Returns: ui.Chart Arguments: Returns: ui.Chart Arguments: Returns: Classifier Arguments: Returns: Classifier Arguments: Returns: Classifier 本代码的主要功能是将我们提前准备好的森林生物量样本点上传到…...
Redis开发02:redis.windows-service.conf 默认配置文件解析与注解
文件位置:redis安装目录下的 redis.windows-service.conf ,存放了redis服务的相关配置,下面列举出默认配置的含义: 配置项含义bind 127.0.0.1限制 Redis 只监听本地回环地址,意味着只能从本地连接 Redis。protected-m…...
webrtc 3A移植以及实时处理
文章目录 前言一、交叉编译1.Pulse Audio webrtc-audio-processing2.交叉编译 二、基于alsa进行实时3A处理1.demo源码2.注意项3.效果展示 总结 前言 由于工作需要,硬件3A中的AEC效果实在太差,后面使用SpeexDSP的软3A,效果依旧不是很好&#…...
Android so库的编译
在没弄明白so库编译的关系前,直接看网上博主的博文,常常会觉得云里雾里的,为什么一会儿通过Android工程cmake编译,一会儿又通过NDK命令去编译。两者编译的so库有什么区别? android版第三方库编译总体思路: 对于新手小白来说搞明白上面的总体思路图很有必…...
Reachy 2,专为AI与机器人实验室打造的卓越开源双臂移动操作平台!
近期,花粉机器人(POLLEN ROBOTICS)隆重推出Reachy 2仿生机器人——下一代开源操作平台,为AI与机器人实验室带来理想的双臂移动操作科研平台! Reachy 2的仿生性: 》拥有两个基于Maxon无刷电机的仿生7自由度…...
Jest 测试异步函数
异步编程的发展历史 异步函数,就不用我描述了,JS是单线程的,所以没有办法处理异步问题,但是可以通过其他的机制实现 回调函数 例如,我们写一个定时器,在函数fetchData中,有一个延时处理的函数,但是,你有不能等他,如果他是一年呢? 所以,我们给他一个回调函数,来等他执行完返回处…...
linux安全管理-防火墙配置
1. 开启系统防火墙 1、检查内容 检查操作系统是否开启防火墙; 2、配置要求 操作系统开启防火墙; 3、配置方法 systemctl status firewalld ##查看系统防火墙运行状态 systemctl start firewalld ##启动防火墙 systemctl restart firewalld ##重启防火墙…...
Blender 运行python脚本
Blender 运行python脚本 步骤 1:打开 Blender 首先,打开 Blender 软件。你可以从官方网站 [blender.org]( 下载最新的 Blender 版本,并按照安装向导进行安装。 步骤 2:打开“文本编辑器”面板 在 Blender 的默认布局中ÿ…...
Three.js CSS2D/CSS3D渲染器
在Three.js开发过程中,有时需要将 HTML 元素与 Three.js 渲染的 3D 场景相结合,这就需要用到 CSS2DRenderer 和 CSS3DRenderer。本文将详细介绍这两种渲染器的原理及其应用 一、CSS2DRenderer 渲染器 概述 CSS2DRenderer 渲染器用于在 3D 场景中渲染纯…...
centos7 yum install 失败,mirrorlist.centos.org连接不上
由于centos7停止支持,导致mirrorlist.centos.orgdns解析都是失效啦,yum命令没法安装程序. 换一个镜像源就好 sudo cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak sudo curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/…...