Linux进程管理六大核心命令详解从入门到实战解决系统卡慢
Linux用久了,总会遇到那么几个让人头疼的瞬间:系统突然卡成幻灯片,却不知道是哪个“元凶”吃光了CPU;一个命令在终端跑得正欢,想干点别的只能再开个窗口;软件卡死点不动,除了重启电脑似乎别无他法……这些问题的根源,都指向同一个核心技能——进程管理。
无论你是日常使用、运维服务,还是排查故障、优化性能,对进程的掌控力都是绕不开的基本功。今天,我们就从最基础的概念讲起,把 ps、top、kill、jobs、bg、fg 这六大核心命令掰开揉碎,搭配可直接复现的实操案例和避坑指南,让你跟着敲一遍就能彻底掌握。

在开始之前,有几点需要说明:本文的操作适用于 Ubuntu、Debian、CentOS、Anolis OS 等主流 Linux 发行版,命令通用。大部分查看命令普通用户即可执行,但涉及终止进程或修改系统级进程时,可能需要 sudo 提权。文中所有代码块均可直接复制,实操时注意替换占位符(如 PID、进程名)。尤其要警惕 kill 系列命令的风险,切勿随意终止系统核心进程,建议先在测试环境练习。
一、先搞懂:进程管理核心概念
1. 什么是进程?
简单来说,进程就是正在运行中的程序。它是系统分配 CPU、内存等资源的基本单位。可以这么理解:你电脑上的微信安装包是“程序”,而双击打开后,那个正在运行的微信窗口就是一个“进程”。你在终端执行的任何一条命令,启动的任何一个服务,都会生成对应的进程。
每个进程都有唯一的身份证——PID(进程 ID),系统靠它来识别和管理进程。同时,每个进程还有个 PPID(父进程 ID),记录着是哪个进程把它“生”出来的。
2. 进程的3种核心类型(新手重点区分)
3. 核心补充:任务号(Job ID)
对于后台进程或被挂起的进程,除了全局唯一的 PID,系统还会给它分配一个“任务号”(Job ID)。这个编号只在当前终端会话内有效,是后续 jobs、bg、fg 命令操作的关键标识,千万别和 PID 搞混了。
二、进程查看命令1:ps 静态查看进程
ps 是 Linux 最基础的进程查看命令,全称 Process Status。它的作用是给系统进程拍一张“静态快照”,适合快速查找进程 PID、确认某个程序是否在运行。它不会实时刷新,所以看到的是执行命令那一刻的状态。
1. 两种最常用的用法(新手直接记这两个就够了)
ps 的参数组合非常多,但新手不必全记。掌握下面两种高频用法,足以覆盖 90% 以上的日常场景。
(1) 用法1:ps aux(BSD风格,最常用,查看所有进程详细信息)
# 查看系统所有进程的详细信息(最常用)
ps aux
输出结果包含很多列,对于新手,重点关注前10列就足够了:

(2) 用法2:ps -ef(POSIX风格,适合查看父子进程关系)
# 查看系统所有进程,重点展示PPID(父进程ID)
ps -ef
这个命令输出的核心字段和 ps aux 类似,但它会明确展示 PPID。当你需要排查一个进程是由谁启动的,或者理清进程间的家族关系时,这个命令就特别有用。
2. 高频实操场景(新手必练)
直接使用 ps aux 或 ps -ef 会输出海量信息,通常我们需要搭配 grep 进行过滤,精准定位目标进程。这是日常最高频的用法。
# 1. 精准查找指定名称的进程(最常用)
# 语法:ps aux | grep 进程名/关键词
ps aux | grep nginx
# 输出:所有包含nginx关键词的进程,能直接看到nginx的PID、运行用户、启动命令
# 2. 查找CPU占用最高的前10个进程
ps aux --sort=-%cpu | head -10
# 解读:--sort=-%cpu 按CPU占用降序排序,head -10 只显示前10条
# 3. 查找内存占用最高的前10个进程
ps aux --sort=-%mem | head -10
# 4. 查看指定用户运行的所有进程
ps -u root # 查看root用户运行的所有进程
ps -u www # 查看www用户运行的所有进程
实用技巧 & 避坑点:
✅ 技巧:新手优先用 ps aux | grep 关键词,简单高效,覆盖大部分场景。
❌ 避坑:使用 grep 过滤时,结果里往往会包含 grep 命令自身的进程。可以再加一个 grep -v grep 把它过滤掉,例如:ps aux | grep nginx | grep -v grep。
三、进程查看命令2:top 实时监控进程
如果说 ps 是拍照片,那 top 就是开直播。它能动态、实时地监控进程和系统资源的使用情况,相当于 Windows 的任务管理器。当系统突然变慢、资源占用异常时,top 是你的首要排查工具。
1. 基础用法
# 直接执行,启动top实时监控界面
top
2. 界面详解(新手重点看这2部分)
top 界面分为上下两大块。上半部分是系统整体资源概览,下半部分是进程实时列表。我们聚焦新手必须掌握的核心字段,避免信息过载。
(1) 第一部分:系统整体资源统计(前5行)

(2) 第二部分:进程列表(核心字段)
这部分字段和 ps aux 的输出基本一致,重点关注这几个:PID(进程ID)、USER(运行用户)、%CPU(CPU占用率)、%MEM(内存占用率)、COMMAND(启动命令)。

3. top 高频交互指令
top 运行过程中,直接在键盘上按对应按键,就能执行各种操作。新手掌握下面几个就够用了:
4. 进阶实用用法
# 1. 只监控指定用户的进程
top -u www # 只显示www用户运行的进程
# 2. 只监控指定PID的进程
top -p 1089 # 只监控PID为1089的mysql进程
# 3. 非交互模式输出top结果(适合写入脚本)
top -b -n 1 # -b 批处理模式,-n 1 只刷新1次就退出
5. 补充:htop 更友好的替代工具
如果你觉得 top 的界面不够直观,可以试试它的增强版——htop。它界面更美观,支持鼠标操作、彩色输出和横向滚动,对新手更友好。不过它通常需要手动安装:
# Ubuntu/Debian安装
sudo apt install htop -y
# CentOS/Anolis安装
sudo yum install htop -y
# 直接运行
htop

四、进程终止命令:kill、killall、pkill(谨慎使用)
当程序无响应、服务无法正常停止时,就需要动用“终止”命令了。核心是 kill,还有两个衍生兄弟 killall 和 pkill。操作前,请务必看完下面的避坑提示。
1. 核心前置知识:进程信号
终止进程的本质,是向进程发送特定的“信号”,让它执行相应的操作。新手必须掌握两个最关键的信号:
关键说明: 默认情况下,kill 命令发送的是 15 号信号(SIGTERM),这是一种“礼貌”的终止方式,进程有机会保存数据、释放资源。而 9 号信号(SIGKILL)是“强制击杀”,内核会直接干掉进程,可能导致数据丢失。因此,务必优先使用 kill(即 kill -15),仅在进程完全卡死、不响应正常终止请求时,才将 kill -9 作为最后的兜底手段。
2. kill 命令(最核心,按PID终止进程)
kill 命令通过 PID 来操作进程。所以,你得先用 ps 或 top 找到目标进程的 PID。
# 语法:kill [信号编号] PID
# 1. 正常终止进程(推荐优先使用,默认15号信号)
kill 1089 # 终止PID为1089的进程,等价于 kill -15 1089
# 2. 强制终止进程(仅当正常终止无效时使用)
kill -9 1089 # 强制杀掉PID为1089的进程
# 3. 同时终止多个进程
kill -15 1089 2156 3201 # 空格分隔多个PID,同时终止多个进程
3. killall 命令:按进程名终止进程
killall 省去了查 PID 的步骤,直接通过进程名称来终止所有同名进程,适合批量操作。
# 语法:killall [信号编号] 进程名
# 1. 正常终止所有nginx进程
killall nginx # 等价于 killall -15 nginx
# 2. 强制终止所有python3进程
killall -9 python3
# 3. 交互式终止进程,终止前会询问确认(新手推荐,避免误杀)
killall -i nginx
# 输出:Kill nginx(1089) ? (y/N) 输入y确认终止
4. pkill 命令:按关键词模糊匹配终止进程
pkill 支持用关键词进行模糊匹配,不用输入完整的进程名。这很方便,但风险也更高,容易“误伤”。
# 语法:pkill [信号编号] 关键词
# 终止所有名称包含mysql的进程
pkill mysql
# 强制终止所有名称包含python的进程
pkill -9 python
实用技巧 & 避坑指南:
✅ 技巧1:动手前,先用 ps aux | grep 进程名 确认 PID 和进程信息,避免杀错。
✅ 技巧2:新手使用 killall 或 pkill 时,强烈建议加上 -i 参数进行交互式确认。
❌ 避坑1:绝对不要尝试 kill -9 1 或 killall systemd 来终止系统核心进程,这会导致系统立即崩溃。
❌ 避坑2:避免使用 pkill 匹配过短的通用关键词(如 pkill sh),这可能会误杀大量系统 shell 进程,导致终端会话断开。
❌ 避坑3:在生产环境中,禁止随意批量执行 killall -9 或 pkill -9,这可能引发业务中断和数据丢失。
五、前后台任务管理:jobs、bg、fg
很多新手遇到一个程序在终端前台运行,就只能干等着。学会前后台任务管理,就能完美解决这个问题。核心命令是 jobs、bg、fg。先理解两个基础操作:
前置基础操作:
& 符号:启动进程时直接放到后台运行
在命令的末尾加上 &,可以让进程一启动就在后台运行,不占用当前终端。
# 示例:ping百度,直接放到后台运行
ping baidu.com &
# 输出:[1] 3567
# 解读:[1]是任务号(Job ID),3567是PID
Ctrl+Z:挂起当前前台进程
如果一个进程已经在前台运行了,按下 Ctrl+Z 组合键,可以将其“挂起”(暂停运行),并放到后台,从而释放当前终端。
# 示例:前台运行ping命令,按Ctrl+Z挂起
ping baidu.com
# 按Ctrl+Z后,输出:
# ^Z
# [1]+ 已停止 ping baidu.com
# 解读:进程被暂停,放到了后台,任务号是1
1. jobs 命令:查看后台任务列表
jobs 命令用于查看当前终端会话中所有后台任务(无论是正在运行还是被挂起)的列表,这是操作后台任务的基础。
# 基础用法,直接执行
jobs
示例输出:
[1]- 运行中 ping baidu.com &
[2]+ 已停止 vim test.txt
输出字段详解[1]、[2]:任务号(Job ID),bg、fg 命令就用这个编号来操作,注意它不是 PID。+:代表当前默认操作的任务。-:代表上一个操作的任务。状态:“运行中”表示在后台运行,“已停止”表示被 Ctrl+Z 挂起。
末尾的 &:标识这是一个后台运行的任务。
进阶用法:
# 查看后台任务的PID
jobs -l
# 输出会额外显示每个任务的PID
2. bg 命令:把挂起的进程放到后台运行
bg 全称 Background,作用是把被 Ctrl+Z 挂起暂停的进程,放到后台继续运行。
# 语法:bg %任务号
# 1. 把任务号为1的挂起进程,放到后台运行
bg %1
# 输出:[1]+ ping baidu.com &
# 进程恢复运行,在后台执行
# 2. 不带任务号,默认操作带+号的当前任务
bg # 等价于 bg %+
3. fg 命令:把后台进程调到前台运行
fg 全称 Foreground,作用是把后台运行或被挂起的进程,调回到前台终端来运行或交互。
# 语法:fg %任务号
# 1. 把任务号为1的后台进程,调到前台运行
fg %1
# 进程回到前台,你可以看到它的输出,也可以用Ctrl+C终止它
# 2. 不带任务号,默认把带+号的当前任务调到前台
fg
4. 完整实操流程(新手跟着敲一遍就会)
下面用 ping 命令演示一个完整的前后台切换流程,你可以复制到终端亲自体验:
# 1. 前台启动ping命令,持续运行,占用终端
ping baidu.com
# 2. 按 Ctrl+Z 挂起进程,终端被释放
# 此时输出:[1]+ 已停止 ping baidu.com
# 3. 用jobs查看后台任务列表
jobs
# 输出:[1]+ 已停止 ping baidu.com
# 4. 用bg把挂起的进程放到后台继续运行
bg %1
# 输出:[1]+ ping baidu.com &
# 5. 再次用jobs查看,进程已经变成运行中
jobs
# 输出:[1]+ 运行中 ping baidu.com &
# 6. 用fg把后台进程调回前台
fg %1
# 进程回到前台,能看到ping的持续输出
# 7. 按 Ctrl+C 终止进程
5. 进阶补充:nohup 关闭终端进程不退出
用 & 放到后台的进程,如果关闭了当前终端,进程也会随之终止。如果想让进程在终端关闭后依然在后台默默运行,就需要请出 nohup 命令(no hang up,不挂断)。
# 核心语法:nohup 命令 &
# 示例:后台持续运行ping命令,关闭终端也不退出
nohup ping baidu.com &
命令执行后,进程的输出会默认写入当前目录下的 nohup.out 文件,而不会打印到终端。这是 Linux 中让脚本或服务在后台长期运行的最常用方式之一。
实用技巧 & 避坑点:
✅ 技巧:使用 fg/bg 时,任务号前面的 % 不能省略,否则系统会误将其当作 PID 处理。
✅ 技巧:需要长期后台运行脚本或服务时,优先使用 nohup 命令 & 的组合。
❌ 避坑:任务号(Job ID)只在创建它的那个终端会话内有效。如果你新开了一个终端,或者关闭终端重连,jobs 命令是看不到之前任务的,此时需要用 ps 命令通过 PID 来管理。
六、常见问题与避坑指南
1. 用kill终止进程,提示“没有那个进程”
原因1:PID 输入错误,或者进程在你执行命令前已经自行退出了。
原因2:权限不足,普通用户无法终止 root 用户启动的进程。
解决方法:先用 ps aux | grep 进程名 确认 PID 是否正确、进程是否存活。如果是权限问题,在命令前加 sudo 提权。
2. 系统CPU占用很高,怎么快速排查是哪个进程的问题?
第一步:执行 top 命令,进入界面后按 P 键,按 CPU 占用率降序排列,查看排在最前面的进程。
第二步:使用 ps aux --sort=-%cpu | head -10 快速打印出 CPU 占用最高的 10 个进程。
第三步:确认该进程是业务进程还是系统进程。如果是非必要的异常进程,用 kill 终止;如果是业务进程,则需要进一步排查程序本身是否存在问题。
3. 什么是僵尸进程?怎么处理?
僵尸进程:指子进程已经终止,但其父进程没有回收它所占用的资源(如 PID、进程表项等),导致进程状态变为 Z(Zombie)。僵尸进程不占用 CPU 和内存,但会占用 PID 资源。
危害:少量僵尸进程影响不大,但如果大量产生,会耗尽系统的 PID 资源,导致无法创建新的进程。
处理方法:
1. 使用 ps aux | grep Z 找到僵尸进程的 PID 及其父进程的 PID(PPID)。
2. 优先尝试重启其父进程,让父进程正常回收子进程资源。
3. 如果重启父进程无效,可以考虑终止父进程(kill 父进程PID),之后僵尸进程会被系统的 init 进程(PID 1)回收。
4. 用jobs看不到后台进程,怎么办?
原因:jobs 命令只能查看当前终端会话创建的后台任务。切换终端、关闭终端重连后,都无法看到之前会话的任务。
解决方法:使用 ps aux | grep 进程名/关键词 来查找进程,然后通过其 PID 进行管理。
5. 执行nohup命令后,nohup.out文件越来越大,怎么办?
原因:nohup 默认会将进程的所有输出(标准输出和标准错误)都重定向到 nohup.out 文件,长时间运行会导致该文件体积巨大。
解决方法:将输出重定向到 /dev/null(一个特殊的空设备文件,写入的数据会被丢弃),通常我们保留错误输出以便排查问题:
nohup ping baidu.com > /dev/null 2>&1 &
七、常用命令速查表(建议收藏,日常直接查)
# ===================== 进程查看命令 =====================
ps aux # 查看系统所有进程详细信息
ps -ef # 查看所有进程,重点展示父子进程关系
ps aux | grep 关键词 # 过滤查找指定进程
ps aux --sort=-%cpu | head -10 # 查看CPU占用最高的10个进程
ps aux --sort=-%mem | head -10 # 查看内存占用最高的10个进程
top # 实时监控系统资源和进程
top -u 用户名 # 只监控指定用户的进程
top -p PID # 只监控指定PID的进程
htop # top增强版,更友好的实时监控工具
# ===================== 进程终止命令 =====================
kill PID # 正常终止指定PID的进程(默认15号信号)
kill -9 PID # 强制终止指定PID的进程
killall 进程名 # 按名称终止所有同名进程
killall -i 进程名 # 交互式终止同名进程(新手推荐)
pkill 关键词 # 按关键词模糊匹配终止进程
# ===================== 前后台任务管理 =====================
命令 & # 启动进程时直接放到后台运行
Ctrl+Z # 挂起当前前台进程
jobs # 查看当前终端后台任务列表
jobs -l # 查看后台任务及对应PID
bg %任务号 # 把挂起的进程放到后台运行
fg %任务号 # 把后台进程调到前台运行
nohup 命令 & # 后台运行进程,关闭终端不退出
八、总结
掌握进程管理,意味着你真正获得了对 Linux 系统运行中所有程序的掌控权。我们来回顾一下核心要点:
进程是运行中的程序,是资源分配的基本单位,理解前台、后台、守护进程以及 PID、任务号的区别是操作的基础。查看进程,静态快照用 ps(搭配 grep 过滤是黄金组合),动态监控用 top(或更友好的 htop)。终止进程,牢记“先礼后兵”:优先使用 kill(默认 SIGTERM),无效时再考虑 kill -9(SIGKILL)。killall 和 pkill 虽方便,但务必谨慎,新手建议加上 -i 参数交互确认。管理前后台任务,关键在于几个组合键和命令:& 后台启动、Ctrl+Z 挂起、jobs 查看、bg 后台恢复运行、fg 前台调回。需要进程在终端关闭后依然运行时,请使用 nohup。
最后,也是最重要的避坑原则:任何终止操作前,先确认目标进程信息,切勿对系统核心进程下手。在生产环境中,更要避免批量强制终止操作。建议将文中的案例多动手实操几遍,让这些命令成为你的“肌肉记忆”,无论是日常使用还是故障排查,都能做到心中有数,游刃有余。
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
同类文章
大连中山路全季酒店更名全李酒店 加盟到期换牌新店
近日,大连中山路上一家名为“全李酒店”的住宿场所引发关注。不少市民和旅客乍看之下,误以为是熟悉的“全季酒店”招牌。经核实,这家酒店确为新品牌“全李酒店”,其背后有一段品牌更迭的故事。 据酒店工作人员介绍,该门店原为华住集团旗下的全季酒店,因加盟合作到期后未续约,故而更名为“全李酒店”独立运营。此次更
2026年建站公司怎么选?十大服务商实力测评与避坑指南
2026高端定制建站服务商深度横评:如何为10-20万预算选对伙伴 步入2026年,企业数字化转型已迈入深水区。一个高端定制的企业官网,其角色早已超越了简单的线上名片。它正成为品牌形象的战略高地、客户信任的沉淀池,以及驱动业务长效增长的核心引擎。对于手握10万至20万预算,计划打造这样一座“数字资产
抖音回应红果短剧收费:VIP专享为版权授权非强制
针对近期网络热议的“红果短剧将全面收费”一事,抖音集团副总裁李亮于5月5日晚间正式作出回应,明确澄清该传闻为不实信息。 那么,红果短剧平台近期的调整究竟是何原因?李亮在声明中给出了详细解释。他表示,为持续丰富和优化平台内容生态,红果短剧近期引入了一批优质的影视剧作品。依据与版权方达成的授权协议,并参
小米昆仑N3 SUV路试谍照曝光 预计2026年下半年正式上市
备受市场期待的小米汽车首款全尺寸增程SUV——昆仑N3,近期已进入低伪装路试阶段,多组高清实车影像在网络曝光。这款内部代号为“SKYNOMAD(寻天)”的重磅车型,根据官方规划,将于2026年下半年正式上市发售。 从流出的路试照片分析,昆仑N3的外观设计极具辨识度。整车造型方正硬朗,线条勾勒富有力量
2026年五大GEO数据监测工具实测与优化指南
2026年,AI搜索已成为用户获取信息的核心入口。行业数据显示,超过65%的搜索查询实现了“零点击”,用户直接采纳AI生成的答案,不再访问原始网页。这意味着,品牌若未能进入AI的答案列表,将在最重要的流量入口彻底“消失”。而GEO优化数据监测,正是帮助企业洞察AI决策逻辑、量化自身在AI答案中的份额
- 日榜
- 周榜
- 月榜
1
2
3
4
5
6
7
8
9
10
相关攻略
2015-03-10 11:25
2015-03-10 11:05
2021-08-04 13:30
2015-03-10 11:22
2015-03-10 12:39
2022-05-16 18:57
2025-05-23 13:43
2025-05-23 14:01
热门教程
- 游戏攻略
- 安卓教程
- 苹果教程
- 电脑教程
热门话题

