从“只会点鼠标”到“爱上敲命令”:Linux基础入门 三剑客和lvm

发布时间:2026/6/25 15:29:29
从“只会点鼠标”到“爱上敲命令”:Linux基础入门 三剑客和lvm 一句话总结今天学了怎么在 Linux 里找数据、改数据、切数据以及怎么给系统加一块新硬盘。一、三剑客grep、sed、awkLinux 文本处理有三把瑞士军刀记住三个词就行工具干的事一句话记法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表示替换substituteg表示全局global。删除行sed -i 4d test.txt直接删除第 4 行。d就是 delete。插入行上方sed -i 3i\# 这是新添加的注释 config.conf在第 3 行上面插入一行。原第 3 行及之后顺延。i是 insert。追加行下方sed -i 3a\new_port8080 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列。比grepawk两步更高效。按条件过滤awk NF2{print $0} data.txt只处理恰好有 2 列的行。NF是 awk 内置变量表示当前行有几列。4. 正则表达式基础匹配规则正则表达式就像搜索规则说明书告诉工具你要找什么样模式的文字。符号含义示例效果[^abc]取反不要 abcgrep [^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 # 查看所有磁盘的设备IDUUID lsblk # 树状查看磁盘和分区结构 dd if/dev/zero oftest.img bs1M count100 # 创建一个100MB的测试文件2. 分区工具fdiskMBR分区表最大2TBfdisk -l # 查看系统所有磁盘 fdisk /dev/sdb # 进入交互式分区界面进入后常用按键m → 查看帮助 n → 新建分区 p → 查看分区效果 w → 保存并退出重要不w不生效gdiskGPT分区表支持超过2TBgdisk 是 fdisk 的升级版用法基本一样适合大容量磁盘。3. 格式化创建文件系统分区完成后需要铺地板才能存数据mkfs.ext4 /dev/sdb1 # 格式化为 ext4Linux最经典兼容性好 mkfs.xfs /dev/sdb1 # 格式化为 xfs高性能大文件友好CentOS 7 默认用 xfsUbuntu 默认用 ext4。4. 挂载使用磁盘临时挂载重启失效mount /dev/sdb1 /mnt/data # 挂载 umount /dev/sdb1 # 卸载设备名或挂载点都行永久挂载重启不丢编辑/etc/fstab文件每行格式设备名(UUID) 挂载目录 文件系统类型 挂载选项 是否备份(0) 是否自检(0)示例UUIDxxxx-xxxx /mnt/data ext4 defaults 0 0mount -a # 让 fstab 配置立即生效 reboot # 重启后自动挂载验证⚠️强烈建议用 UUID 代替设备名如/dev/sdb1因为重启后设备名可能变化UUID 是唯一的、不变的。3. 磁盘阵列RAIDRAID 就是把多块硬盘组合起来要么更快、要么更安全。RAID 级别别名最少盘数速度安全性空间利用率RAID 0条带化2 极快并行读写❌ 坏一块全丢100%RAID 1镜像2正常✅ 坏一块还能用50%RAID 5分布式奇偶校验3不错✅ 允许坏一块~75% (N-1)RAID 0像两个人一起搬砖 — 快但一个人摔了砖全碎RAID 1像写两份一样的笔记 — 安全但纸用得多一倍RAID 5像三个人干活一个人当后备 — 又快又安全但需要点技术4. 逻辑卷管理LVMLVM 是一个灵活的分区系统可以在不关机、不丢数据的情况下动态调整磁盘空间大小。三层结构像俄罗斯套娃物理卷(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搞定记不住没关系收藏这篇用的时候回来查就行