前言:
本篇笔记围绕排查与运维实战,梳理磁盘管理、apt 包管理、systemd 服务管理三大模块。每一条命令说明作用、参数含义,同时对比易混淆工具。
一、磁盘管理
核心目标:快速判断磁盘剩余容量、定位大文件根源、识别磁盘与分区结构。
1. df(disk free):磁盘分区整体概览
-
作用:从文件系统层面查看所有挂载分区的总容量、已用空间、剩余空间,是判断 磁盘 是否爆满”的首选命令。
-
常用语法
df -h # 人类可读单位(KB/MB/GB)查看所有分区 df -h / # 只查看根分区 df -i # 查看inode使用率 -
示例
-
输出字段解读
第一列: 文件系统(重点区分两类)
① /dev/xxx → 磁盘真实分区(存在固态硬盘上)
/dev/ 是 Linux 所有硬件设备文件存放目录,数据断电不会消失
② tmpfs → 临时文件系统(内存虚拟磁盘!!)
不是硬盘分区,是内核在内存中开辟的临时存储空间。这里面的数据不在物理硬盘,而是在内存 + Swap 交换分区里。电脑断电、重启,里面所有文件会清空,
最后一列: 挂载点
挂载点 = 访问这个存储的入口目录。
/ :根目录,/dev/nvme0n1p3 挂载在这里,我的所有系统、家目录 /home/qyc全都在这个分区
/run:tmpfs 挂载点,系统运行时进程临时文件、pid 文件放这里
/dev/shm:共享内存目录,程序之间高速通信常用
/run/user/1000:我的当前用户(uid=1000 qyc)专属临时目录
/boot/efi:EFI 引导分区挂载位置,开机启动用
-
注意:统计结果包含「已删除但仍被进程占用的文件」。
2. du(disk usage):统计目录/文件实际占用
-
作用:遍历目录内所有文件,累加计算实际占用的磁盘空间,用于定位大文件根源。
-
高频组合命令语法(用于磁盘爆满排查)
# 统计当前目录下一级项目大小,从大到小排序,取前5 du -sh ./* | sort -rh | head -5 -
参数解释
-s:summary,只输出每个下级文件夹总大小-h:人类可读单位sort -rh:-r倒序(从大到小),-h同上head -5:只取前5行结果
-
注意
*通配符不会匹配.开头的隐藏文件/目录- 统计系统目录需加
sudo,无权限会导致统计结果偏小
3. lsblk(list block devices):查看磁盘与挂载结构
-
作用:以树形结构展示所有物理磁盘、分区及挂载点,无需root权限。
-
语法
lsblk -
输出关键字段
- NAME:设备名(
nvme0n1=整块磁盘,nvme0n1p1=该磁盘第1个分区,loop设备≠物理硬盘,不要算进磁盘容量,可以grep =v loop过滤掉) - SIZE:设备/分区大小
- TYPE:
disk真实的磁盘,part人为的分区 - MOUNTPOINTS:挂载点,未挂载则为空
- NAME:设备名(
-
注意:新装硬盘在 lsblk 里能看到 disk,但是没有任何分区、没有挂载点,代表硬盘还没分区格式化。
4. fdisk:查看详细分区表
- 核心作用:列出磁盘分区表底层信息(起始扇区、分区类型、文件系统等)。
- 常用语法
(结果比较长我就不贴了喵)sudo fdisk -l - 注意:入门阶段了解即可,fdisk更适配传统MBR分区。
对比:df vs du
| 命令 | 统计视角 | 数据来源 | 特点 |
|---|---|---|---|
df -h | 分区整体视角 | 文件系统超级块 | 速度快,包含已删除但被进程占用的文件 |
du -sh | 文件累加视角 | 遍历所有文件大小求和 | 速度慢,只统计可见文件 |
二、软件包管理(apt/dpkg 体系)
Ubuntu 属于 Debian 系:底层 dpkg 管理单个 deb 包,上层 apt 自动解决依赖。
1. apt update:刷新软件源列表
sudo apt update
- 作用:从软件源服务器拉取最新的软件版本、依赖信息,更新本地软件目录清单。
- 注意:只更新信息列表,不升级任何软件,就是只是查一下并更新最新的软件包信息,建议安装新软件前先执行,避免找不到包或安装旧版本。;升级软件用
apt upgrade。
2. apt install:安装软件包
sudo apt install nginx # 安装指定软件
sudo apt install -y nginx # 自动确认所有提示,无需手动输入y
sudo apt install --reinstall nginx # 重装已安装的软件
这里去浏览器访问localhost可以看到欢迎页了哦
- 练习后相关卸载命令
apt remove nginx:卸载软件,保留配置文件apt purge nginx:彻底卸载,删除配置文件
3. dpkg -l:查询已安装软件
dpkg -l | grep nginx
- 作用:列出所有已安装的 deb 包,可以配合
grep过滤指定软件。 - 注意
ii:正常安装状态rc:软件已删除,配置文件残留
4. which:查找命令可执行文件路径
which nginx
- 原理:遍历
PATH环境变量中的目录,返回第一个匹配的可执行文件路径。 - **相关
命令**:whereis nginx` 可同时查找二进制、源码、帮助手册位置。
5. apt show:查看软件包详情
apt show nginx
(相关详细信息没有截)
- 作用:展示软件版本、安装大小、依赖关系、功能描述等完整信息。安装前了解软件用途,排查版本兼容问题。
三、systemd 服务管理
systemd 是 Linux 主流初始化系统(PID=1),负责管理系统服务、开机启动、进程守护、统一日志。
1. systemctl status:查看服务状态
systemctl status nginx
- 关键信息
Loaded:服务加载状态 + 开机自启状态enabled:开机自动启动disabled:开机不启动
Active:当前运行状态active (running):正常运行inactive (dead):未运行failed:启动失败,下方附带报错信息
Main PID:服务主进程PID- 末尾:服务最新运行日志,快速定位报错
2. 服务启停与重启
systemctl start nginx # 启动服务
systemctl stop nginx # 停止服务
systemctl restart nginx # 重启服务(服务短暂中断)
systemctl reload nginx # 重载配置,不重启进程(线上环境首选)
这些命令都很简单易懂,自己试一下就ok了
3. 开机自启管理
systemctl enable nginx # 设置开机自启
systemctl disable nginx # 取消开机自启
通过设置可以避免每次开机都要systemctl start nginx,减少常用服务的开启
高效组合写法
sudo systemctl enable --now nginx # 设置开机自启 + 立即启动服务
4. journalctl:统一日志查询
systemd 接管所有服务日志,统一存储管理,无需逐个去 /var/log 找文件。
- 实时跟踪日志
journalctl -u nginx -f-u nginx:只过滤 nginx 服务单元的日志-f:实时滚动刷新新日志,等同于tail -f
- 按时间范围查询
journalctl -u nginx --since today # 查看今天的日志 journalctl -u nginx --since "1 hour ago" # 查看最近1小时 journalctl -u nginx -n 20 # 查看最后20行
四、练习
故意改错 nginx 配置(/etc/nginx/nginx.conf 里随便加一行乱码),然后: systemctl status nginx 看报错 journalctl -u nginx 定位到具体错误行 修好它,重启成功
PS:如有错误纰漏之处还请指正,欢迎交流~