Linux中yum、vim和gcc
是 Vim 高效操作的核心之一,体现了“动词 + 数字 + 名词”的编辑语言思想。相当于一种“覆盖式输入”,适合局部内容精确修改,比先删除再插入更高效。更精细,适合在不离开当前视线范围的情况下快速浏览上下文。分屏后可以同时查看或编辑多个文件,极大提升效率。软件源决定了你从哪个服务器下载包,类似手机的应用商店。的区别:前者向下搜索,后者向上搜索,配合。):运行时加载,文件小,需确保环境有对应库。的简
一、yum
CentOS/RHEL 系列使用 yum(RHEL 8+ 已逐步过渡到 dnf),Ubuntu/Debian 系列使用 apt。本文以 lrzsz(文件传输工具)为例。
1. 查看软件包
# CentOS / RHEL
yum list | grep lrzsz
# 输出示例:lrzsz.x86_64 0.12.20-36.el7 @base
# Ubuntu / Debian
apt search lrzsz
apt show lrzsz # 查看详细信息
命名规范详解
以 lrzsz.x86_64 0.12.20-36.el7 @base 为例:
-
x86_64→ 64位系统包,i686为32位 -
el7→ 适用于 CentOS 7 / RHEL 7(el6则对应版本6) -
@base→ 软件源名称,类似“应用商店”标识
2. 安装软件
# CentOS
sudo yum install -y lrzsz
# Ubuntu
sudo apt install -y lrzsz
关键注意事项:
-
必须使用
sudo或 root 权限(向系统目录写入内容) -
一次只能运行一个
yum/apt任务,不能并发安装 -
确保网络畅通:可以通过
ping www.baidu.com验证 -
出现
complete或无报错即成功
3. 卸载软件
# CentOS
sudo yum remove [-y] lrzsz
# Ubuntu
sudo apt remove [-y] lrzsz # 保留配置文件
sudo apt purge [-y] lrzsz # 彻底删除(含配置)
4. 软件源(Repository)管理
软件源决定了你从哪个服务器下载包,类似手机的应用商店。
| 系统 | 标准源路径 | 扩展源路径 |
|---|---|---|
| CentOS | /etc/yum.repos.d/(如 CentOS-Base.repo) |
epel.repo(需安装 epel-release) |
| Ubuntu | /etc/apt/sources.list |
/etc/apt/sources.list.d/ |
安装扩展源示例(CentOS):
sudo yum install -y epel-release
云服务器通常已配置国内镜像源,无需手动调整。虚拟机用户建议更换为阿里云、清华源以提升速度。
二、vim
1. 三种核心模式
| 模式 | 说明 | 进入方式 |
|---|---|---|
| 正常模式(Normal) | 控制光标、删除、复制、粘贴 | 启动 Vim 后默认 |
| 插入模式(Insert) | 编辑文本,输入内容 | 按 i / a / o |
| 末行模式(Last Line) | 保存、退出、查找、设置行号 | 在正常模式按 : |
💡 Vim 共有 12 种模式(
:help vim-modes),但掌握以上三种即可覆盖日常操作。
2. 常用操作速查表(基于正常模式)
光标移动(推荐使用字母键)
| 按键 | 功能 |
|---|---|
h/j/k/l |
左/下/上/右 |
gg |
文件首行 |
G |
文件末行 |
^ / $ |
行首 / 行尾 |
w / b |
下一个单词开头 / 上一个单词开头 |
e |
下一个单词尾部 |
翻页与滚动
| 按键 | 功能 |
|---|---|
Ctrl+f |
向前翻一页 |
Ctrl+b |
向后翻一页 |
Ctrl+u |
向上滚动半页 |
Ctrl+d |
向下滚动半页 |
💡
Ctrl+u和Ctrl+d比Ctrl+f/Ctrl+b更精细,适合在不离开当前视线范围的情况下快速浏览上下文。
删除、复制、粘贴
| 按键 | 功能 |
|---|---|
x |
删除光标后一个字符 |
X |
删除光标前一个字符 |
dd |
删除整行,或剪切当行 |
yy |
复制整行 |
p |
粘贴 |
u |
撤销 |
Ctrl+r |
恢复撤销 |
| 按键 | 功能 |
|---|---|
# |
向前(上方)搜索光标所在的单词,并将光标移动到上一个匹配处 |
💡 对应的正向搜索是
*(向后 / 下方搜索)。#和*都不会改变文件内容,只用于快速定位。
n 在 Vim 中用于重复上一次搜索动作,方向与上次搜索相同。# 和 n 配合可以实现高效的单词浏览:
| 操作序列 | 功能 |
|---|---|
# |
从光标位置向前(上方)搜索当前单词,跳转到上一个匹配处 |
n |
继续向前搜索,跳转到更前一个匹配处(重复 # 的方向) |
N |
反向重复上一次搜索,即向后搜索(与 # 方向相反) |
🎯 实战技巧:先用
#跳到上一个匹配,然后连续按n可以一路向上浏览所有匹配。如果想向下浏览,可以先按*再按n。
替换操作
| 按键 | 功能 |
|---|---|
r |
替换光标所在的单个字符 |
R |
进入替换模式,连续替换字符,直到按 Esc 退出 |
💡
R相当于一种“覆盖式输入”,适合局部内容精确修改,比先删除再插入更高效。
进入插入模式的不同方式
| 按键 | 说明 |
|---|---|
i |
光标前插入 |
a |
光标后插入 |
o |
下一行插入 |
O |
上一行插入 |
3. n + 标识符 组合操作(高效重复执行)
Vim 中很多命令前可以加数字 n,表示重复执行 n 次。
| 组合 | 功能 |
|---|---|
5j |
光标向下移动 5 行 |
3w |
向右跳 3 个单词 |
7x |
删除光标后 7 个字符 |
4X |
删除光标前 4 个字符 |
2dd |
删除 2 行 |
3yy |
复制 3 行 |
5r- |
将光标后 5 个字符依次替换为 - |
2Rabc |
进入替换模式,替换 2 个字符为 ab(c 会继续替换后续) |
4Ctrl+d |
向下滚动 4 次半页(注意:该组合部分终端需按 4 次 Ctrl+d 或依靠 Vim 映射) |
⚠️
n + 操作符是 Vim 高效操作的核心之一,体现了“动词 + 数字 + 名词”的编辑语言思想。
4. 末行模式实用命令
4.1 基本操作
| 命令 | 作用 |
|---|---|
:w |
保存文件 |
:q |
退出 |
:wq / :x |
保存并退出 |
:q! |
强制退出(不保存) |
:set nu |
显示行号 |
:15 |
跳转到第15行 |
4.2 查找与替换
| 命令 | 作用 |
|---|---|
/keyword |
向下搜索关键词 |
?keyword |
向上搜索关键词 |
:noh |
取消高亮 |
:%s/old/new/g |
全文替换所有 old 为 new |
:%s/old/new/gc |
全文替换,每次确认 |
🔍
/和?的区别:前者向下搜索,后者向上搜索,配合n/N可继续查找。
% 符号详解
% 在末行模式中表示 整个文件范围,常用于全局替换或全局操作。
| 命令 | 说明 |
|---|---|
:%s/foo/bar/g |
将全文中所有 foo 替换为 bar |
:%y |
复制整个文件内容 |
:%d |
删除整个文件内容 |
:%!sort |
将整个文件内容传递给外部命令 sort 排序 |
💡
%相当于1,$的简写,表示从第一行到最后一行。例如:1,$s/foo/bar/g等价于:%s/foo/bar/g。
4.3 多文件与分屏操作
| 命令 | 作用 |
|---|---|
:e filename |
在当前窗口打开另一个文件 |
:sp filename |
水平分屏并打开文件(可省略文件名) |
:vs filename |
垂直分屏并打开文件(可省略文件名) |
Ctrl+w w |
在分屏之间切换光标 |
Ctrl+w h/j/k/l |
向左/下/上/右切换分屏 |
Ctrl+w q |
关闭当前分屏 |
:q |
关闭当前分屏(同上) |
💡
:vs是:vsplit的简写,:sp是:split的简写。分屏后可以同时查看或编辑多个文件,极大提升效率。
分屏示例流程:
vim file1.c
:vs file2.c " 垂直分屏打开 file2.c
:sp file3.c " 水平分屏打开 file3.c(在左侧或当前分屏中)
Ctrl+w w " 切换到下一个分屏
Ctrl+w h " 切换到左侧分屏
:q " 关闭当前分屏
三、gcc/g++
1. GCC 编译四步骤
GCC 编译过程分为四个阶段,每一步都可以通过选项显式控制:
| 阶段 | 命令示例 | 说明 |
|---|---|---|
| 预处理 | gcc -E hello.c -o hello.i |
宏展开、头文件包含、条件编译、去注释 |
| 编译 | gcc -S hello.i -o hello.s |
生成汇编代码,检查语法错误 |
| 汇编 | gcc -c hello.s -o hello.o |
生成机器可识别的目标文件 |
| 链接 | gcc hello.o -o hello |
链接库与目标文件,生成可执行程序 |
💡 小提示:
-o指定输出文件;.i、.s、.o分别是预处理、汇编、目标文件的常见后缀。
2. 静态链接 vs 动态链接
| 类型 | 特点 | 优点 | 缺点 |
|---|---|---|---|
| 静态链接 | 将所有依赖代码复制到最终程序 | 独立运行,启动快 | 文件大,更新需重新编译 |
| 动态链接 | 运行时加载共享库(如 .so) |
节省磁盘和内存,更新方便 | 依赖系统存在对应库 |
📦 示例:多个程序调用
printf(),静态链接会各自包含一份printf.o,动态链接则共享同一份库。
3. 静态库与动态库
-
静态库(
.a):编译时嵌入程序,文件大,独立运行。 -
动态库(
.so):运行时加载,文件小,需确保环境有对应库。
🪟 Windows 下为
.dll(动态)和.lib(静态)。
4. 常用 GCC 选项一览
| 选项 | 作用 |
|---|---|
-E |
仅预处理 |
-S |
生成汇编代码 |
-c |
生成目标文件(不链接) |
-o |
指定输出文件 |
-static |
强制静态链接 |
-shared |
生成动态库 |
-g |
加入调试信息(GDB 用) |
-O0 ~ -O3 |
优化级别(-Os 优化大小) |
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐
所有评论(0)