docs: 添加Linux相关技术文档

新增多篇Linux技术文档,涵盖基础命令、文件操作、用户权限、网络配置、进程管理、软件安装、系统监控和磁盘管理等主题。每篇文档包含详细命令示例和使用说明,适合作为Linux系统管理参考手册。

文档内容包含:
1. Linux基础命令与快捷键
2. 文件操作与查找技巧
3. 用户管理与权限配置
4. 网络配置与防火墙管理
5. 进程与服务管理方法
6. 软件包管理与安装
7. 系统资源监控命令
8. 磁盘分区与LVM管理
This commit is contained in:
2026-04-16 13:02:54 +08:00
parent ced925ba46
commit 57e553807d
9 changed files with 2236 additions and 3515 deletions
+565
View File
@@ -0,0 +1,565 @@
---
title: Linux磁盘管理
date: 2021-04-07 16:04:58
author: 文永达
top_img: https://gcore.jsdelivr.net/gh/volantis-x/cdn-wallpaper/abstract/00E0F0ED-9F1C-407A-9AA6-545649D919F4.jpeg
tags: [Linux, Shell, 磁盘管理]
categories: [操作系统, Linux]
---
# Linux磁盘管理
## 磁盘空间查看
### df 命令
查看磁盘整体情况。
```shell
# 统计磁盘整体情况
df -lh
```
### du 命令
查看目录占用空间。
```shell
# 查看根目录下文件夹大小
du -sh /*
```
---
## 安装与分区
### Linux分区顺序
1. **boot 分区**:引导启动分区,通常 200-500M
2. **swap 分区**:缓存分区,通常为物理内存的 2 倍
3. **根分区(/)**:剩余空间分配给根分区
4. **home 分区**:可选
---
## LVM扩容
### 旧有卷扩容
将 `/home` 部分空间合并至 `/` 下。
#### 1. 查看当前分区
```shell
df -h
```
#### 2. 查看卷的文件系统类型
```shell
mount | grep home
```
#### 3. 安装备份工具
```shell
dnf install -y xfsdump
```
#### 4. 备份 /home
```shell
xfsdump -f ~/sdb_dump/ /home -M sdb_home -L sdb_home_1
```
#### 5. 卸载 /home
```shell
umount /home/
df -h
```
#### 6. 移除逻辑卷
> ⚠️ 删除前请确保重要文件已备份!
```shell
lvremove /dev/mapper/almalinux-home
```
#### 7. 扩展根分区
```shell
# 扩展根分区增加8.7G
lvresize -L +8.7G /dev/mapper/almalinux-root
lsblk
```
#### 8. 扩展文件系统
```shell
xfs_growfs /
df -h
```
#### 9. 重新创建 home 逻辑卷
```shell
lvcreate -L 9G -n home almalinux
lsblk
```
#### 10. 扩展剩余空间给 home
```shell
lvextend -l +100%FREE -n /dev/mapper/almalinux-home
lsblk
```
#### 11. 格式化并挂载
```shell
# 格式化
mkfs.xfs /dev/mapper/almalinux-home
# 挂载(因lv名称和挂载点不变,无需修改/etc/fstab)
mount -a
df -Th
```
#### 12. 还原数据
```shell
xfsrestore -f sdb_dump /home/
```
---
### 新加卷扩容
#### 1. 查看现有分区大小
```shell
df -Th
```
#### 2. 查看扩容后磁盘大小
```shell
lsblk
```
#### 3. 创建分区
```shell
fdisk /dev/sda
```
**fdisk 操作步骤**:
- 输入 `n` 创建新分区
- 选择分区类型(主分区/扩展分区)
- 设置分区大小
- 输入 `w` 保存更改
#### 4. 刷新分区并创建物理卷
```shell
partprobe /dev/sda
pvcreate /dev/sda4
```
#### 5. 查看卷组
```shell
vgdisplay
```
#### 6. 将物理卷扩展到卷组
```shell
vgextend rl /dev/sda4
```
#### 7. 查看逻辑卷
```shell
lvdisplay
```
#### 8. 扩展根分区逻辑卷
```shell
lvextend -l +100%FREE /dev/rl/root
```
#### 9. 刷新根分区
```shell
xfs_growfs /dev/rl/root
```
---
## 分区格式转换
### Microsoft 基本数据 → Linux 文件系统
#### 1. 查看当前分区类型
```shell
fdisk -l
```
#### 2. 转换分区类型
```shell
fdisk /dev/sdb
# 输入 t 命令(转换分区类型)
t
# 输入 20(Linux file system)
20
# 输入 w(写入更改)
w
```
#### 3. 手动挂载硬盘
```shell
mkdir /sdb
mount -t ext3 /dev/sdb1 /sdb
```
#### 4. 查看挂载结果
```shell
df -Th
```
#### 5. 设置自动挂载
查看硬盘UUID:
```shell
blkid /dev/sdb1
```
编辑 `/etc/fstab`:
```shell
vim /etc/fstab
# 添加以下行
UUID=7d592b46-68dc-41c2-bdb3-7ee410f0bb33 /sdb ext3 defaults 0 0
```
重载配置:
```shell
systemctl daemon-reload
```
---
### ext3 升级 ext4
#### 1. 确认当前文件系统类型
```shell
df -Th | grep /dev/sdb1
```
#### 2. 卸载目标分区
> ⚠️ 不能对正在使用的根分区操作
```shell
umount /dev/sdb1
```
#### 3. 检查并修复文件系统
```shell
e2fsck -f /dev/sdb1
```
#### 4. 将 ext3 转换为 ext4
```shell
tune2fs -O has_journal,extent,huge_file,flex_bg,uninit_bg,dir_nlink,extra_isize /dev/sdb1
```
#### 5. 查看转换是否成功
```shell
dumpe2fs -h /dev/sdb1 | grep features
```
确认输出中包含:`extent`、`huge_file`、`flex_bg`、`uninit_bg`、`dir_nlink`、`extra_isize`
#### 6. 再次检查文件系统
```shell
e2fsck -f /dev/sdb1
```
#### 7. 挂载并验证
```shell
mount -t ext4 /dev/sdb1 /sdb
df -Th | grep /dev/sdb1
```
#### 8. 修改 /etc/fstab
```shell
/dev/sdb1 /sdb ext4 defaults 0 0
```
---
### NTFS → ext4
#### 1. 确认目标分区
```shell
lsblk -f
```
#### 2. 卸载分区
```shell
sudo umount /dev/sda1
```
#### 3. 格式化为 ext4
```shell
sudo mkfs.ext4 /dev/sda1
```
#### 4. 验证结果
```shell
lsblk -f
```
---
## 挂载卷
### Windows 网络共享位置
#### 1. 创建挂载目录
```shell
mkdir -p /mnt/wdshare/
```
#### 2. 安装依赖
```shell
dnf install -y cifs-utils
```
#### 3. 挂载
```shell
mount -t cifs -o username=user,password=backup //192.168.0.1/备份 /mnt/wdshare/
```
#### 4. 永久挂载
编辑 `/etc/fstab`:
```shell
//192.168.0.1/备份 /mnt/wdshare/ cifs username=user,password=backup 0 0
```
重载配置:
```shell
sudo systemctl daemon-reload
sudo mount -a
```
---
### NTFS 分区
#### 1. 识别NTFS分区
```shell
sudo parted -l
```
#### 2. 创建挂载点
```shell
sudo mkdir /mnt/ntfs1
```
#### 3. 安装依赖
```shell
sudo apt update
sudo apt install fuse -y
sudo apt install ntfs-3g -y
```
#### 4. 挂载分区
```shell
sudo mount -t ntfs-3g /dev/sda1 /mnt/ntfs1/
```
#### 5. 验证挂载
```shell
df -Th
```
#### 6. 永久挂载
编辑 `/etc/fstab`:
```shell
/dev/sda1 /mnt/ntfs1 fuseblk defaults 0 0
```
重载配置:
```shell
sudo systemctl daemon-reload
```
---
## Swap配置
### 创建Swap分区
#### 1. 查看当前Swap大小
```shell
free -h
```
#### 2. 创建Swap文件
```shell
# 创建4G的swap文件
dd if=/dev/zero of=/home/swap bs=1024 count=4194304
```
> `count` 值 = 大小(M) × 1024
#### 3. 格式化Swap分区
```shell
mkswap /home/swap
```
#### 4. 启用Swap
```shell
swapon /home/swap
```
#### 5. 设置自动挂载
编辑 `/etc/fstab`:
```shell
/home/swap swap swap default 0 0
```
---
### 关闭Swap
```shell
swapoff /home/swap
```
---
### 修改Swap使用率
`swappiness` 值表示使用 swap 的倾向:
- `0`:最大限度使用物理内存
- `100`:积极使用 swap
#### 1. 查看当前值
```shell
cat /proc/sys/vm/swappiness
```
#### 2. 临时修改
```shell
sysctl vm.swappiness=60
```
#### 3. 永久修改
编辑 `/etc/sysctl.conf`:
```shell
vm.swappiness=60
```
应用更改:
```shell
sysctl -p
```
---
## 内核升级
### CentOS 7.9 内核升级
#### 1. 查看当前内核版本
```shell
uname -a
```
#### 2. 查看系统版本
```shell
cat /etc/redhat-release
```
#### 3. 导入公钥
```shell
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
```
#### 4. 安装ELRepo
```shell
yum install -y https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm
```
#### 5. 安装新内核
```shell
yum --enablerepo=elrepo-kernel install kernel-ml -y &&
sed -i s/saved/0/g /etc/default/grub &&
grub2-mkconfig -o /boot/grub2/grub.cfg
```
#### 6. 重启系统
```shell
reboot
```
#### 7. 验证内核版本
```shell
uname -a
```