从“只会点鼠标”到“爱上敲命令”:Linux基础入门 三剑客和lvm
2026/6/25 15:29:18 网站建设 项目流程

一句话总结:今天学了怎么在 Linux 里"找数据、改数据、切数据",以及怎么给系统加一块新硬盘。


一、三剑客:grep、sed、awk

Linux 文本处理有三把瑞士军刀,记住三个词就行:

工具干的事一句话记法
grep数据在文件里搜关键字
sed数据替换/删除/插入内容
awk数据按列提取、格式化输出

1. grep —— 内容过滤与查找

就像在书里用荧光笔划线,把含有关键词的行标出来。

-v:反向匹配(不要什么)
grep -v "error" app.log

打印app.log不包含"error" 的所有行。相当于「过滤掉 error 行」。

-n:显示行号
grep -n "timeout" app.log

输出类似45:Connection timeout— 告诉你 "timeout" 出现在第 45 行,方便定位。

-r:递归查找
grep -r "localhost" /etc/

/etc/目录及所有子目录的所有文件中,搜 "localhost"。不用一个一个文件翻。

-E:扩展正则(支持 | 或)
grep -E "error|warning" app.log

查找包含"error" 或 "warning"的行。|表示"或"。


2. sed —— 流编辑器

sed 像一个自动修改流水线,你告诉它改什么,它批量处理。

替换内容
sed -i 's/192.168.1.1/10.0.0.1/g' config.conf

把配置文件里所有的旧 IP 换成新 IP。s表示替换(substitute),g表示全局(global)。

删除行
sed -i '4d' test.txt

直接删除第 4 行。d就是 delete。

插入行(上方)
sed -i '3i\# 这是新添加的注释' config.conf

在第 3 行上面插入一行。原第 3 行及之后顺延。i是 insert。

追加行(下方)
sed -i '3a\new_port=8080' config.conf

在第 3 行下面追加一行。a是 append。

💡-i参数表示直接修改文件,不加-i只是预览效果,不改文件本身。


3. awk —— 格式化与数据处理

awk 像一个表格切割机,默认按空格把一行切成多列,然后挑出你要的列。

按列打印
awk '{print $1,$3}' test.txt

默认以空格分隔,打印每行的第 1 列和第 3 列。$1是第1列,$2是第2列,$0是整行。

指定分隔符
awk -F':' '{print $1,$3}' /etc/passwd

以冒号:分隔,提取用户名(第1列)和 UID(第3列)。-F指定分隔符。

按关键字过滤
awk '/root/{print $1,$3}' /etc/passwd

只处理包含 "root" 的行,打印其第1和第3列。比grep+awk两步更高效。

按条件过滤
awk 'NF==2{print $0}' data.txt

只处理恰好有 2 列的行。NF是 awk 内置变量,表示"当前行有几列"。


4. 正则表达式基础(匹配规则)

正则表达式就像搜索规则说明书,告诉工具你要找什么样模式的文字。

符号含义示例效果
[^abc]取反(不要 abc)grep '[^0-9]' test.txt找包含非数字字符的行
^行首grep '^root' /etc/passwd找以 "root"开头的行
$行尾grep 'bash$' /etc/passwd找以 "bash"结尾的行
^$空行grep -v '^$' config.conf过滤掉空行(看配置神器)
{m,n}重复次数grep -E 'a{2,4}' test.txt找连续 2~4 个 a 的行

实用技巧:grep -v '^$' 文件名— 去掉配置文件中的空行,只看有效内容。


二、存储管理

1. 核心逻辑:五步走

用一块新硬盘,就像搬进新家装一个柜子

加磁盘 → 识别设备 → 分区(可选) → 格式化 → 挂载
步骤对应操作生活类比
① 加磁盘虚拟机添加新硬盘买了个新柜子搬回家
② 系统识别lsblk查看拆开包装,知道柜子到了
③ 分区fdisk /dev/sdb给柜子分几个格子
④ 格式化mkfs.ext4 /dev/sdb1给格子铺上地板
⑤ 挂载mount /dev/sdb1 /mnt/data打开柜门,开始用
常用查看命令
df -h # 看已挂载的磁盘用了多少(人类友好格式) du -sh /目录 # 看某个目录实际占多大 blkid # 查看所有磁盘的设备ID(UUID) lsblk # 树状查看磁盘和分区结构 dd if=/dev/zero of=test.img bs=1M count=100 # 创建一个100MB的测试文件

2. 分区工具
fdisk(MBR分区表,最大2TB)
fdisk -l # 查看系统所有磁盘 fdisk /dev/sdb # 进入交互式分区界面

进入后常用按键:

m → 查看帮助 n → 新建分区 p → 查看分区效果 w → 保存并退出(重要!不w不生效)
gdisk(GPT分区表,支持超过2TB)

gdisk 是 fdisk 的升级版,用法基本一样,适合大容量磁盘。


3. 格式化(创建文件系统)

分区完成后,需要"铺地板"才能存数据:

mkfs.ext4 /dev/sdb1 # 格式化为 ext4(Linux最经典,兼容性好) mkfs.xfs /dev/sdb1 # 格式化为 xfs(高性能,大文件友好)

CentOS 7+ 默认用 xfs,Ubuntu 默认用 ext4。


4. 挂载(使用磁盘)
临时挂载(重启失效)
mount /dev/sdb1 /mnt/data # 挂载 umount /dev/sdb1 # 卸载(设备名或挂载点都行)
永久挂载(重启不丢)

编辑/etc/fstab文件,每行格式:

设备名(UUID) 挂载目录 文件系统类型 挂载选项 是否备份(0) 是否自检(0)

示例:

UUID=xxxx-xxxx /mnt/data ext4 defaults 0 0
mount -a # 让 fstab 配置立即生效 reboot # 重启后自动挂载验证

⚠️强烈建议用 UUID 代替设备名(如/dev/sdb1),因为重启后设备名可能变化,UUID 是唯一的、不变的。


3. 磁盘阵列(RAID)

RAID 就是把多块硬盘组合起来,要么更快、要么更安全

RAID 级别别名最少盘数速度安全性空间利用率
RAID 0条带化2🚀 极快(并行读写)❌ 坏一块全丢100%
RAID 1镜像2正常✅ 坏一块还能用50%
RAID 5分布式奇偶校验3不错✅ 允许坏一块~75% (N-1)
  • RAID 0:像两个人一起搬砖 — 快,但一个人摔了砖全碎

  • RAID 1:像写两份一样的笔记 — 安全,但纸用得多一倍

  • RAID 5:像三个人干活,一个人当后备 — 又快又安全,但需要点技术


4. 逻辑卷管理(LVM)

LVM 是一个灵活的分区系统,可以在不关机、不丢数据的情况下动态调整磁盘空间大小

三层结构(像俄罗斯套娃)
物理卷(PV) → 卷组(VG) → 逻辑卷(LV) 硬盘/分区 大池子 最终使用的"虚拟盘"
① 物理卷(PV)管理
pvcreate /dev/sdb # 初始化磁盘为物理卷 pvs # 简略查看所有PV pvdisplay /dev/sdb # 查看某个PV的详细信息 pvremove /dev/sdb # 从LVM中移除
② 卷组(VG)管理
vgcreate myvg /dev/sdb # 创建卷组,把PV加进去 vgs # 简略查看 vgextend myvg /dev/sdc # 向卷组加入新磁盘(扩容!) vgreduce myvg /dev/sdc # 从卷组移除磁盘 vgremove myvg # 删除卷组
③ 逻辑卷(LV)管理
lvcreate -L 10G -n mylv myvg # 从卷组划出10G的逻辑卷 lvs # 简略查看 lvextend -L +5G myvg/mylv # 给逻辑卷增加5G(在线扩容!) lvreduce -L -5G myvg/mylv # 缩减(⚠️ 必须先缩小文件系统) lvremove myvg/mylv # 删除逻辑卷(数据全丢!)

🎯LVM 最爽的地方:硬盘空间不够了?加块新硬盘,vgextend加进卷组,lvextend扩容逻辑卷 —全程不用重启,数据不丢


今日干货总结

场景用啥一句话命令
搜关键词grepgrep -rn "关键字" /路径
批量替换sedsed -i 's/旧/新/g' 文件
提取某列awkawk '{print $1,$3}' 文件
看磁盘使用dfdf -h
新硬盘上线五步走lsblk → fdisk → mkfs → mount → /etc/fstab
空间不够了LVMvgextend → lvextend搞定

记不住没关系,收藏这篇,用的时候回来查就行 😄

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询