欢迎光临
我们一直在努力

【Linux】 软件包管理器(yum)+ Vim使用


基础开发工具

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 installed

    1-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 tree

  • yum 与 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 makecache

    4. 源分类

    • Base 源:系统基础软件
    • Epel 源:拓展第三方软件(必备开发源)
    • 本地源:无外网服务器,挂载系统光盘制作离线 yum 源

    常见问题

    • Could not retrieve mirrorlist:网络不通 / 源地址失效
    • 找不到某个软件:没有安装 epel 源
    • CentOS7 停止维护后,官方源失效,需要切换阿里云 vault 归档源

    Vim 完整详解

    1. Vim 三大核心模式(重中之重)

    Vim 是模态编辑器,不同模式按键作用完全不同,新手最大难点就是区分模式。

    模式作用进入方式退出方式
    普通模式 (Normal) 默认模式,用于移动光标、复制删除、执行操作 打开文件默认进入;任意模式按 Esc

    i/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 保存并退出
    😡 等价于: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>

    赞(0)
    未经允许不得转载:171主机测评 » 【Linux】 软件包管理器(yum)+ Vim使用
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址