基础开发工具
1-1 什么是软件包
概念
Windows 下软件大多是
exe安装程序;Linux 软件包 = 将程序二进制文件、配置文件、手册、依赖信息打包成的归档文件。 程序开发完成后不能直接分发零散文件,打包后方便统一安装、卸载、依赖检测。两大分类
- 源码包
- 格式:
.tar.gz/.tar.bz2- 特点:提供 C/C++ 等源代码,下载后需要
./configure && make && make install编译- 优点:可自定义编译参数;缺点:编译耗时,需要编译环境,手动处理依赖
- 二进制软件包(预编译包) 厂商 / 社区提前编译好,无需本机编译,直接安装
- RedHat/CentOS 系列:rpm 包(
.rpm)- Ubuntu/Debian 系列:deb 包(
.deb)rpm 包命名示例
tree-1.7.0-11.el8.x86_64.rpm
- tree:软件名
- 1.7.0:主版本。次版本
- 11:发布号
- el8:适配 CentOS8/RHEL8
- x86_64:64 位 CPU 架构
💡 yum 底层本质就是自动下载、安装 rpm 包,并且自动解决依赖关系。
1-2 Linux 软件生态
1. 发行版分裂带来的包体系差异
Linux 没有统一标准,不同系列使用独立包格式与工具:
发行版家族 包格式 本地包工具 网络包管理器 CentOS/RHEL/Fedora rpm rpm yum / dnf Ubuntu/Debian deb dpkg apt / apt-get 本文重点**:CentOS7 使用
yum;CentOS8+/RockyLinux 默认使用dnf(dnf 兼容 yum 命令)**2. 软件仓库(Repository)
官方 / 第三方服务器集中存放大量 rpm 软件包 + 包索引,称为软件仓库(源)。
yum 工作流程:联网访问仓库索引 → 分析依赖 → 批量下载 rpm 包 → 安装。
3. 软件来源三种途径
- 官方源:系统自带,稳定、安全;缺点国内访问慢
- 第三方源(epel):官方没有的拓展软件(nginx、htop 等)
- 本地 rpm 包:离线下载
.rpm文件,rpm -ivh安装(无法自动解决依赖)4. 依赖地狱问题
Linux 软件普遍存在依赖:A 软件运行需要 B 库,B 库又依赖 C 库。
手动
rpm安装需要人工逐层下载依赖;yum/apt 核心价值:自动递归处理依赖。
1-3 yum 具体操作
**⚠️前置条件:**服务器可以访问外网;CentOS 执行 yum 多数命令需要 root 权限(加 sudo 或切换 root)
1-3-1 查看软件包
# 1.列出仓库所有可用软件包 yum list 2.搜索指定软件(模糊匹配) yum search tree 3.查看软件详细信息(版本、功能、依赖) yum info tree 4.查询:哪个软件包提供某个命令 yum provides ifconfig 5.查看本机已经安装的软件 yum list installed1-3-2 安装软件
# 基础安装 yum install tree 自动确认安装(脚本常用,不需要手动输入y) yum install -y tree 同时安装多个软件 yum install -y gcc gcc-c++ make vim 安装软件组(开发工具合集!开发重点) yum groupinstall "Development Tools"💡
Development Tools包含 gcc、g++、make、gdb 等全套 LinuxC/C++ 开发工具。1-3-3 卸载软件
# 卸载软件 yum remove tree 自动确认卸载 yum remove -y tree⚠️注意:yum remove 会同时移除依赖它的包,不要随意卸载系统基础组件!
1-3-4 注意事项
**权限:**普通用户执行 yum 安装会报错,必须 root/sudo
**网络:**yum 依赖网络,离线环境无法直接使用 yum;需要本地 yum 源
慎用 yum update
yum update该命令会升级本机所有已安装软件到最新版本,生产环境不建议随意执行,可能引发兼容性故障。 只想升级单个软件:
yum update treeyum 与 rpm 区别
rpm:本地工具,操作本机 rpm 文件,不会自动下载依赖yum:上层工具,联网,自动处理依赖清理缓存
yum clean all # 清空本地缓存的包和索引
yum makecache # 重新生成软件源缓存
1-4 安装源(yum 源)
1. yum 源配置文件位置
CentOS7:
/etc/yum.repos.d/目录内以.repo结尾的文件就是源配置。2. 为什么要换源?
系统默认官方源服务器在海外,下载速度极慢;更换国内镜像源(阿里云、网易、清华源)大幅提升下载速度。
3. CentOS7 更换阿里云 yum 源演示
# 1.备份原有官方源 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 2.下载阿里云repo配置文件 curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo 3.安装epel拓展源(大量额外软件) curl -o /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo 4.重建缓存 yum clean all && yum makecache4. 源分类
- Base 源:系统基础软件
- Epel 源:拓展第三方软件(必备开发源)
- 本地源:无外网服务器,挂载系统光盘制作离线 yum 源
常见问题
Could not retrieve mirrorlist:网络不通 / 源地址失效- 找不到某个软件:没有安装 epel 源
- CentOS7 停止维护后,官方源失效,需要切换阿里云 vault 归档源
Vim 完整详解
1. Vim 三大核心模式(重中之重)
Vim 是模态编辑器,不同模式按键作用完全不同,新手最大难点就是区分模式。
模式 作用 进入方式 退出方式 普通模式 (Normal) 默认模式,用于移动光标、复制删除、执行操作 打开文件默认进入;任意模式按 Esci/a/o→ 插入模式;:→ 底行模式;v/V/Ctrl-v→ 可视模式插入模式 (Insert) 输入文本、编写代码 普通模式按下 i/a/o按下 Esc返回普通模式底行模式 (Command) 保存、退出、查找、替换、设置参数 普通模式输入 :执行命令完成 或 Esc**补充:**可视模式(Visual),属于衍生模式,用来选中一段文本批量操作。
**⚠️新手常见错误:**打开 Vim 直接打字乱码!因为默认处于普通模式,按键不是输入字符,而是命令。
2. Vim 启动、保存与退出
启动命令
vim # 启动vim,不打开文件 vim test.c # 打开/新建test.c vim test.c +15 # 打开文件,直接跳转到第15行底行模式基础保存退出(普通模式输入
:)
:w 保存文件(write) :w new.c 另存为新文件 :q 正常退出(文件未修改才可退出) :wq 保存并退出 :x 等价于:wq(文件无修改则不写入,更推荐) :q! 强制退出,放弃所有修改 :wq! 强制保存退出(只读文件需要权限时使用)3. 普通模式(Normal)高频指令
所有命令必须先按 Esc 确保处于普通模式。
3.1 光标移动
基础移动
h 向左 j 向下 k 向上 l 向右单词跳转(写代码高频)
w 跳到下一个单词开头 b 跳到上一个单词开头 e 跳到当前单词末尾行内快速跳转
0 跳转到当前行最开头 $=4 跳转到当前行末尾 ^=6 跳转到当前行第一个非空白字符文件全局跳转
gg 跳转到文件第一行 G 跳转到文件最后一行 nG / :n 跳转到第n行,例如 10G 直接到第10行3.2 删除操作
x 删除光标当前单个字符 X 删除光标左边字符 dd 删除**整行** ndd 删除n行,例如5dd 删除光标往下5行 dw 删除光标到当前单词结尾 d0 删除光标到行首 d$ 删除光标到行尾3.3 复制、粘贴、撤销
yy 复制当前一整行 nyy 复制n行,3yy复制3行 yw 复制一个单词 p 粘贴到光标**下一行/后方** P 粘贴到光标**上一行/前方** u 撤销上一次操作 Ctrl+r 反撤销(恢复被撤销内容)3.4 修改、跳转辅助
cw 删除当前单词并直接进入插入模式(改单词神器) cc 清空当前行,进入插入模式 r 替换光标处单个字符(无需进入插入模式) R 连续覆盖替换模式,Esc退出4. 插入模式(Insert)进入方式
普通模式下执行下列按键进入编辑:
i 在**光标前方**插入 a 在**光标后方**插入 I 当前行**行首**开始插入 A 当前行**行尾**开始插入 o 在光标**下方新开一行**插入 O 在光标**上方新开一行**插入开发最常用:
i、A、o。编辑完成务必按Esc回到普通模式。5. 底行命令模式(
:触发)拓展指令
:set nu 显示行号 :set nonu 关闭行号 :set ts=4 设置Tab占4个空格(C/C++开发常用) :set expandtab 将Tab自动转换成空格 字符串查找 :/keyword 向下搜索关键词keyword ?keyword 向上搜索关键词 n 跳到下一个匹配结果 N 跳到上一个匹配结果 全局字符串替换 :%s/oldstr/newstr/g 全文替换oldstr为newstr :%s/oldstr/newstr/gc 全文替换,每次确认(c=confirm) :! ls 在vim内临时执行shell命令6. 可视模式 Visual(选区操作)
普通模式按下按键进入选区模式,选中文本后配合 d 删除、y 复制:
v 字符可视模式:自由选中字符 V 行可视模式:直接选中整行 Ctrl+v 块可视模式:矩形选区(批量注释神器!)👉 批量注释示例:
Ctrl+v进入块选择- 上下移动光标选中多行代码开头
- 按下
I输入//- 按下 Esc,所有选中行统一添加注释
7. 进阶实用功能
7.1 多文件与分屏
# 启动时分屏打开两个文件 vim -O test1.c test2.c # 垂直分屏 vim -o test1.c test2.c # 水平分屏vim 内部底行命令
:vsplit 垂直拆分窗口 :split 水平拆分窗口 Ctrl+w w 在多个窗口之间切换光标 Ctrl+w q 关闭当前窗口7.2 代码跳转(大型项目必备 ctags/cscope)
安装:
yum install ctags项目根目录执行:ctags -R生成 tags 索引文件,vim 内:
Ctrl+] 跳转到函数/变量定义处 Ctrl+o 跳回原来位置8. Vim 配置文件~/.vimrc
用户目录下
.vimrc文件,每次启动 vim 自动加载配置,不需要每次手动输入 set 命令。 示例开发常用配置,直接写入~/.vimrc
" 开启语法高亮 syntax on " 显示行号 set nu " Tab宽度4 set tabstop=4 set shiftwidth=4 " Tab转为空格 set expandtab " 开启自动缩进 set autoindent " 搜索忽略大小写 set ignorecase " 光标所在行高亮 set cursorline配置生效方式:保存文件后重新打开 vim,或者 vim 内执行
:source ~/.vimrc
e>





