一、软件包的概念
软件包(Package)是预先编译好的应用程序及其依赖项的集合,类似于 Windows 中的安装程序(如 .exe
文件)。
在 Linux 中,软件包包含:
-
可执行程序
-
配置文件
-
依赖关系信息
-
安装脚本
二、Linux 安装软件的 3 种方案
方案 | 特点 | 适用场景 |
---|---|---|
1. 源代码安装 | - 手动编译源码 - 需解决依赖关系(需安装 gcc 、make 等工具)- 灵活性高,但复杂 | 需要定制化功能或特定版本时 |
2. RPM 安装 | - 使用 .rpm 包直接安装- 依赖需手动解决(可能陷入“依赖地狱”) - 适合离线环境 | 已知依赖关系的简单软件安装 |
3. YUM 安装 | - 自动解决依赖关系 - 从远程仓库下载并安装 - 简单高效 | 日常软件安装(推荐) |
三、Linux 软件生态
1. YUM 的角色
-
类比:类似于手机应用商店(如安卓的 Google Play、苹果的 App Store)。
-
功能:
-
集中管理软件源(仓库)
-
自动处理依赖关系
-
提供版本控制和更新
-
2. YUM 源配置
-
仓库文件路径:
/etc/yum.repos.d/
-
查看默认源:
ls /etc/yum.repos.d/ # 列出所有仓库文件 #显示 CentOS-Base.repo CentOS-Epel.repo #后续会解释分别代表什么
-
文件内容:包含软件仓库的 URL、是否启用、GPG 校验等信息。(了解)
3. 软件提供者的动机
-
开源商业策略:
-
免费软件:吸引用户,通过技术支持、企业版增值服务盈利(如 Red Hat)。
-
生态绑定:用户依赖特定 OS 生态后,后续服务(如云服务、硬件)可盈利。
-
-
社区贡献:开发者通过开源协作提升技术影响力。
4. 开源与生态建设
(1)开源是商业战略
-
案例:
-
Red Hat:提供免费的 CentOS,但企业版 RHEL 收费(含技术支持)。
-
Google:开源 Android 系统,通过 Google 服务和应用商店盈利。
-
(2)开源的“隐性成本”
-
使用者角度:
-
学习成本:需要熟悉开源工具的使用和配置。
-
维护成本:长期维护和升级可能需要专业团队。
-
生态依赖性:企业一旦依赖某 OS 生态,迁移成本高。
-
(3)操作系统选型要点
-
生态完整性:软件是否丰富、社区是否活跃。
-
长期支持:是否有稳定维护和更新。
-
商业支持:是否需要付费技术支持。
四、YUM 使用详解
1. YUM 基础
-
YUM 是什么:
YUM 是 Linux 下的软件包管理工具,类似手机应用商店,用于从远程仓库自动下载并安装软件包,解决依赖关系。 -
YUM 源分类:
-
官方源:系统默认配置的软件仓库(如 CentOS-Base)。
-
扩展源:如 EPEL(Extra Packages for Enterprise Linux),需手动安装。
-
-
c常用命令
yum install package # 安装软件(-y 自动确认) yum remove package # 卸载软件 yum list # 列出所有可用软件 yum search keyword # 搜索软件(替代 grep 过滤) yum update # 更新所有已安装软件
2. 配置 YUM 源
-
查看默认源:
ls /etc/yum.repos.d/ # 列出所有仓库文件 cat /etc/yum.repos.d/CentOS-Base.repo # 查看默认源配置
- 安装扩展源 EPEL:
yum install -y epel-release # 安装 EPEL 扩展源
- 更换国内镜像源(解决速度问题):
适用于虚拟机或本地服务器(云服务器通常已优化)。# 备份原文件 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup # 下载阿里云镜像源(以 CentOS 7 为例) wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo # 清理缓存并更新 yum clean all && yum makecache
3. 推荐安装的趣味工具
yum install -y sl # 火车动画(输入 sl 触发)
yum install -y cowsay # 会说话的牛(cowsay "Hello")
yum install -y fortune # 随机名言(fortune | cowsay)
4. 文件传输工具 lrzsz
-
功能:通过 Xshell 等工具在 Windows 和 Linux 间拖拽传输文件。
-
安装与使用:
# 搜索并安装 yum list | grep lrzsz # 显示示例:lrzsz.x86_64 0.12.20-36.el7 @base yum install -y lrzsz.x86_64 # 使用命令 rz # 从 Windows 上传文件到 Linux sz file # 从 Linux 下载文件到 Windows #卸载 yum remove lrzsz.x86_64
五、vim编辑器
1. 多模式操作
模式 | 进入方式 | 退出方式 | 用途 |
---|---|---|---|
命令模式 | 启动 Vim 或按 ESC | 输入 i 进入插入模式 | 执行复制、删除、光标移动等操作 |
插入模式 | 命令模式下按 i 、a 、o | 按 ESC 返回命令模式 | 编辑文本内容 |
底行模式 | 命令模式下按 : | 按 ESC 返回命令模式 | 保存、退出、执行外部命令等 |
模式切换示意图:
命令模式 ← ESC → 插入模式
↓
底行模式(输入 :)
命令模式常用操作
光标移动
命令 | 功能 |
---|---|
gg | 跳转到文件首行 |
G | 跳转到文件末行 |
5G | 跳转到第 5 行 |
$ | 跳转到当前行行尾 |
^ | 跳转到当前行行首(非空白字符) |
w / b | 按单词向后/向前移动 |
h j k l | 左、下、上、右移动(方向键也可用) |
文本操作
命令 | 功能 |
---|---|
yy | 复制当前行 |
3yy | 复制当前行及下 2 行 |
dd | 剪切(删除)当前行 |
3dd | 剪切(删除)当前行及下 2 行 |
p | 粘贴到光标下一行 |
u | 撤销操作 |
Ctrl + r | 重做(反撤销) |
~ | 切换光标处字符大小写 |
3r | 替换光标处及后 2 个字符(输入新字符后生效) |
R | 替换模式:覆盖后续字符(按 ESC 退出) |
3x | 删除光标处及后 2 个字符 |
底行模式操作
基础命令
命令 | 功能 |
---|---|
:w | 保存文件 |
:q | 退出 Vim |
:wq | 保存并退出 |
:w! | 强制保存(只读文件需权限) |
:q! | 强制退出(不保存) |
高级功能
命令 | 功能 |
---|---|
:set nu | 显示行号 |
:set nonu | 隐藏行号 |
:!ls | 执行外部命令(如 ls ) |
:!gcc test.c | 编译当前文件 |
:vs code1.c | 垂直分屏打开 code1.c |
:sp code1.c | 水平分屏打开 code1.c |
Ctrl + ww | 切换分屏窗口 |
2.Vim 个性化配置
配置文件路径
-
用户级配置:
每个用户的 Vim 配置独立保存在家目录的隐藏文件.vimrc
中。ls -al ~ # 查看家目录所有文件(含隐藏文件) vim ~/.vimrc # 编辑当前用户的 Vim 配置
-
全局配置(不推荐修改):
Root 用户的全局配置文件路径为/etc/vimrc
,修改会影响所有用户。
常用配置项
set nu " 显示行号
set showmatch " 高亮匹配括号(如 ()、{})
set cursorline " 高亮当前行
set tabstop=4 " Tab 显示为 4 个空格
set softtabstop=4 " 按 Tab 键插入 4 个空格
set shiftwidth=4 " 自动缩进 4 个空格
syntax on " 开启语法高亮
推荐一个快捷的配置方式:
#命令行输入
$ curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh
#会显示让你输入root用户密码,输入即可
#...等待下载
配置生效方法
-
直接生效:
修改.vimrc
后,重启 Vim 或重新打开文件即可生效。
无需 运行source .bashrc
(该命令用于 Shell 环境变量刷新)。
六、补充:为普通用户添加 sudo 权限
1.问题场景
-
新建的普通用户无法使用
sudo
命令,提示xxx is not in the sudoers file
2.解决步骤
切换至 Root 用户
su - root # 输入 root 密码
安全编辑 sudoers 文件
$ vim /etc/sudoers
添加用户权限
-
在文件中找到以下行(约第 100 行):
-
复制并修改:
按下yy
复制该行,再按p
粘贴到下一行,将root
改为目标用户名:username ALL=(ALL) ALL # 替换为实际用户名
保存并退出
-
在 Vim 中按
ESC
进入命令模式,输入:wq!
强制保存退出(文件默认只读)。
验证权限
su - username # 切换回普通用户
sudo ls /root # 测试 sudo 权限(输入用户密码)