Day 5:进程与系统管理 —— 让你的 Ubuntu “活“起来

发布时间:2026/7/19 13:39:35

Day 5:进程与系统管理 —— 让你的 Ubuntu “活“起来 通俗比喻如果说文件是 Linux 的骨骼那么进程就是它的血液。今天我们就来给系统把把脉。前言今天我们学什么前面四天我们建好了环境、学会了在目录间穿梭、搞懂了用户权限、用上了 Vim 和各种文本处理命令。现在终端对你来说已经不再陌生了。但你有没有想过一个问题当你打开一个程序、运行一段代码、甚至敲一条 ls 命令时系统里面到底发生了什么谁在占用 CPU处理器内存还剩多少硬盘会不会突然爆满那个卡死的程序怎么把它宰了今天我们把目光从文件转向系统学习三个板块板块核心命令通俗说法进程管理ps / top / kill看谁在跑让谁停下磁盘与内存df / du / free空间去哪了内存够不够系统日志journalctl / tail系统在想什么哪里报错了学完今天你就不再只是用电脑而是开始管电脑了。第一部分进程管理 —— 系统里的人口普查与强行拆迁什么是进程Process把操作系统想象成一栋大楼每个正在运行的程序就是一个住户进程。每个住户都有一个唯一的门牌号叫做PIDProcess ID进程编号。比如你打开浏览器 产生一个进程你敲一条 ls 命令 也产生一个进程只是它瞬间就结束了。第 1 步用 ps 拍一张进程快照当你想知道现在这栋楼里住了谁时ps 是最直接的命令。通俗类比ps 就像用手机给整栋楼拍一张照片——你能看到此刻每个住户在哪个房间、占了多少空间但这张照片是静止的不实时更新。1.1 打开终端在 Ubuntu 桌面上按Ctrl Alt T弹出终端窗口。1.2 三个最常用的 ps 写法记住就够用了写法一ps aux最常用显示所有用户的所有进程包括后台隐形住户ps aux # 列出所有进程用户、PID、CPU%、内存%、状态、命令小贴士aux 不是英文单词辅助而是三个独立的选项a所有用户, u用户格式, x无终端的进程直接敲就行了不用纠结含义。写法二ps -ef想看父子关系时用全格式显示能清楚看出每个进程的爸爸是谁父进程 ID简称 PPIDps -ef # 另一种标准格式带 PPID父进程ID通俗类比ps aux 像住户登记表每人一行ps -ef 像家谱能看出谁是谁的孩子。写法三ps aux | grep 关键词精准找人配合 grep 过滤器只显示你关心的进程ps aux | grep nginx # 查找名字里含 nginx 的进程1.3 输出怎么看以 ps aux 为例输入 ps aux 后你会看到一堆列重点看这 6 列列名含义通俗说法USER哪个用户运行的这间房是谁租的PID进程编号门牌号杀进程时抄这个数字%CPUCPU 占用百分比这个人多能折腾%MEM内存占用百分比占了多少空间STAT状态码R正在跑S在睡觉Z僵尸已死但没注销户口COMMAND启动命令这个人是来干嘛的⚠️注意如果 COMMAND 列里出现方括号包着的名字如 [kthreadd]这是系统内核自带的物业管理员不是你启动的别乱杀。第 2 步用 top 看实时心电图ps 只能看一瞬间。想看实时变化——谁突然开始狂吃 CPU、内存是不是在慢慢涨——必须用 top。通俗类比ps 是照片top 是监控摄像头画面——实时刷新谁有动静一目了然。相当于 Windows 里的任务管理器。2.1 启动 toptop # 启动实时进程监控面板终端会变成一个实时刷新的面板按q键退出。2.2 top 界面里的常用快捷键在 top 运行中不要退出直接按以下按键按键作用通俗说法P大写按 CPU 使用率排序谁最闹腾排前面M大写按内存使用率排序谁占地方最大排前面1数字键展开所有 CPU 核心把每个核心分开看k杀掉一个进程按了后输入 PID再回车确认q退出 top关掉监控画面2.3 更强推荐安装 htop色彩丰富、支持鼠标sudo apt install htop -y # 安装 htop输入密码时屏幕不显示正常 htop # 启动 htop为什么推荐 htop它有颜色区分CPU 蓝色、内存绿色等可以用鼠标点击操作按F9直接选进程杀掉比 top 友好太多。新手首选第 3 步用 kill —— 温柔的劝退 vs 强制的推土机找到不听话的进程 PID 之后就该用 kill 了。通俗类比kill不带 -9 物业敲门说请您搬走住户可以收拾东西再走。kill -9 直接开推土机把房子推平住户什么都来不及拿。3.1 基本操作kill PID # 温柔劝退发送 SIGTERM信号15给进程时间保存文件再退出 kill -9 PID # 强制推平发送 SIGKILL信号9立即终止不给任何机会 kill -15 PID # 和 kill PID 一样显式指定 SIGTERM3.2 常见信号速查表信号编号名称含义通俗说法1HUP重新加载配置别重启把新配置读一下就行9KILL强制杀死推土机不可阻挡15TERM优雅终止默认敲门劝退给时间收拾19STOP暂停进程按下暂停键3.3 批量杀进程慎用pkill 进程名 # 按名字杀掉所有匹配的进程慎用 killall 进程名 # 同样按名字杀慎用⚠️安全预警kill -9 虽然强大但永远先试试不带参数的 kill。如果程序正在写文件-9 可能导致文件损坏。就像你应该先敲门让人搬走而不是直接开推土机。第二部分磁盘与内存 —— 服务器粮仓与血槽监控第 4 步用 df 看硬盘分区还剩多少空间当你看到报错 No space left on device设备空间不足时第一步就是查 df。通俗类比df 就像看每个硬盘分区的总粮仓容量 还剩多少粮食。不看全局看每个仓库。4.1 基本操作df -h # 人类可读格式GGB, MMB查看所有分区的使用情况 df -i # 查看 inode 使用率文件索引是否用完4.2 输出怎么读以 df -h 为例你会看到类似这样的输出Filesystem Size Used Avail Use% Mounted on /dev/sda1 100G 80G 20G 80% /列名含义通俗说法Filesystem分区名称仓库编号Size总大小仓库总容量Used已用存了多少东西Avail可用还能装多少Use%使用率满了百分之多少Mounted on挂载点这个仓库对应哪个文件夹入口⚠️紧急预警如果 /根目录的 Use% 达到100%系统将无法新建任何文件甚至可能连登录都进不去。看到接近 90% 就要开始清理了。第 5 步用 du 揪出是哪个大胃王文件夹在吃空间df 告诉我们根目录用了 80%但到底是 /home 里的电影占的还是 /var/log 里的日志占的du 来破案。通俗类比df 是整个仓库还剩多少空间du 是进去看看每个货架各占了多少。5.1 基本操作du -sh * # 统计当前目录下每个子目录/文件的总大小s汇总h人类可读 du -h --max-depth1 # 只看第一层子目录的大小不深入第二层 du -sh /home/你的用户名 # 查看指定目录的总大小把你的用户名换成实际的5.2 实战一步步排查磁盘杀手# 第1步从根目录开始找最大的10个文件夹 sudo du -sh /* 2/dev/null | sort -rh | head -10 # 第2步假设发现 /var 很大进入 /var 继续深挖 cd /var sudo du -sh * | sort -rh | head -5 # 只看前5个最大的 # 第3步如果发现 /var/log 很大再进去看 cd /var/log sudo du -sh * | sort -rh | head -5 # 如果某个日志文件特别大比如 syslog 有 5G用 less 查看末尾是否大量重复报错 sudo less syslog # 按 G 跳到末尾按 q 退出命令拆解sudo du -sh /* 2/dev/null | sort -rh | head -10sudo用管理员权限有些目录普通用户看不了du -sh /*统计根目录下每个文件夹的大小2/dev/null把错误信息扔进黑洞/dev/null保持输出干净|管道把左边结果传给右边sort -rh按人类可读的大小倒序排列大的在前面head -10只取前10行第 6 步用 free 看内存还剩多少很多新手一看到内存占用 90% 就慌了——其实 Linux 的内存管理哲学是空闲内存是浪费的内存系统会把空闲内存主动用作缓存Cache来加速磁盘读写。通俗类比Linux 就像一个精明的仓库管理员空着的地方他会临时堆放常用货品缓存。如果真有人需要空间他会立刻把临时货品清掉腾地方。所以看着满不等于真不够。6.1 基本操作free -h # 人类可读格式推荐 free -m # 以 MB 为单位显示6.2 重点看哪一列total used free shared buff/cache available Mem: 7.6G 2.1G 300M 100M 5.2G 5.0G列名含义该不该慌total总内存—used已使用❌别盯着这个看Linux 会尽量用满free完全空闲❌ 这个数字小很正常available真正可用✅只看这一列它包含了可随时回收的缓存✅记住一句话只要 available 那列没低于 100MB系统就不会卡。别对着 free 列瞎着急。第三部分系统日志 —— 操作系统的黑匣子当程序崩溃、连不上网、或者发生诡异现象时日志是你唯一的破案线索。通俗类比日志就是系统的监控录像 体检报告。系统做的每件大事登录、报错、服务启动失败都会记一笔。出问题时先翻日志就像警察破案先调监控。第 7 步传统方式 —— 直接读日志文件Ubuntu 把日志以文本形式存放在 /var/log/ 目录下# 系统综合日志最常用实时滚动显示最新日志 sudo tail -f /var/log/syslog # 认证日志SSH 登录记录、sudo 操作记录都在这里 sudo tail -n 100 /var/log/auth.log # 内核启动日志硬件检测信息开机时发生了什么 sudo less /var/log/dmesgtail -f 怎么用开一个终端挂着 tail -f /var/log/syslog然后去另一个终端做操作这个终端屏幕上会实时跳出新产生的日志。出问题时特别有用——边操作边看报错。第 8 步现代化方式 —— journalctl集中查日志现在的 Ubuntu 使用systemd管理系统启动和服务它自带了 journalctl 工具可以把所有日志集中到一起查询比一个个翻文件高效。8.1 常用命令journalctl # 查看所有日志量极大一般别直接用 journalctl -xe # 查看最新日志显示详细信息最常用-e跳到末尾 journalctl -f # 实时跟踪日志等于升级版 tail -f journalctl -u ssh.service # 只看 SSH 服务的日志 journalctl -p err # 只看错误级别及以上的日志err, crit, alert, emerg # 按时间段查日志 journalctl --since 2026-07-17 10:00 --until 2026-07-17 12:00-xe 啥意思-x 显示详细解释字段-e 直接跳到最新一条。合起来就是打开日志本翻到最后一页并且带详细备注。综合实战模拟一次系统体检假设你刚登录一台服务器感觉有点卡。按以下流程做一次快速体检每步都在终端里执行体检第 ① 步看谁在吃 CPUtop # 启动实时监控按 P大写让 CPU 占用的排前面在 top 里发现 PID 为 1234 的进程占了 200% CPU多核满载决定杀掉它sudo kill 1234 # 先温柔劝退 # 如果上面的命令没反应再强制杀 sudo kill -9 1234 # 推土机出动体检第 ② 步检查磁盘df -h # 先看全局哪块分区快满了假设发现 / 根目录使用率 95%# 找出根目录下最大的10个文件夹 sudo du -sh /* 2/dev/null | sort -rh | head -10发现 /var/log 有 20G进去深挖cd /var/log sudo du -sh * | sort -rh | head -5 # 找出最大的5个文件/文件夹 # 假设 syslog 文件特别大看看末尾是不是有大量重复报错 sudo less syslog # 按 G 跳到末尾按 / 搜索关键词按 q 退出体检第 ③ 步检查内存free -h # 看 available 那列还有多少如果 available 很少比如低于 200MB回到 top 里按M大写按内存排序找内存大户。体检第 ④ 步安全检查sudo tail -n 20 /var/log/auth.log # 看最近20条登录记录检查有没有陌生 IP 在反复尝试登录你的机器——如果有说明有人在撞门锁建议加强 SSH 安全配置。总结今天的三把钥匙钥匙核心命令一句话进程之钥ps快照、top/htop动态、kill控制知道谁在跑能让谁停资源之钥df分区总览、du目录深挖、free内存真相空间去哪了内存够不够日志之钥/var/log/ 下的各类文件 journalctl出问题先翻日志作业Day 5 巩固以下操作请在你的 Ubuntu 虚拟机里完成每条命令都敲一遍加深记忆。认识自己的进程用 ps aux | grep bash 找到当前终端的 PID然后在另一个终端里用 kill 发送不同信号测试效果别杀自己这端否则窗口直接关了。体验 htop安装 htopsudo apt install htop -y打开后对比 top 和 htop 的体验差异。试试用鼠标点、用 F9 杀进程。模拟压力测试sudo apt install stress -y # 安装压力测试工具 stress --cpu 2 --timeout 60 # 后台跑2个CPU满载60秒 htop # 观察 CPU 飙升找到 stress 进程并用 F9 杀掉查登录日志用 sudo tail -n 20 /var/log/auth.log 查看最近 20 条记录看看有没有可疑 IP。常见问题速查表Day 5问题原因解决方案kill 杀不死进程进程可能忽略了 TERM 信号或被父进程自动重启先试 kill -9 PID如果是 systemd 管理的服务用 sudo systemctl stop 服务名top 里看到 Z僵尸进程子进程已死父进程没给它收尸重启父进程或重启系统。僵尸不占内存但占 PID 名额df -h 显示满了但 du 找不到大文件文件已被删除但某个进程还抓着不放执行 lsof | grep deleted 查找重启那个进程即可释放空间journalctl 占用磁盘过大日志积累太多执行 sudo journalctl --vacuum-size100M 限制日志最多占 100MB输入 free 看到 swap 使用率很高物理内存不够系统在用硬盘当内存极慢考虑加物理内存或关掉大程序释放内存htop 提示 command not found还没安装执行 sudo apt install htop -y终端输入密码时光标不动这是正常的Linux 终端输入密码不显示任何字符包括 *放心盲打敲完回车黄金法则遇到任何报错不要慌把错误信息复制下来去搜索引擎搜一切问题都有答案。Day 6 见

相关新闻