首页 游戏 软件 资讯 排行榜 专题
首页
业界动态
Linux进程管理六大核心命令详解从入门到实战解决系统卡慢

Linux进程管理六大核心命令详解从入门到实战解决系统卡慢

热心网友
64
转载
2026-05-16

Linux用久了,总会遇到那么几个让人头疼的瞬间:系统突然卡成幻灯片,却不知道是哪个“元凶”吃光了CPU;一个命令在终端跑得正欢,想干点别的只能再开个窗口;软件卡死点不动,除了重启电脑似乎别无他法……这些问题的根源,都指向同一个核心技能——进程管理。

无论你是日常使用、运维服务,还是排查故障、优化性能,对进程的掌控力都是绕不开的基本功。今天,我们就从最基础的概念讲起,把 pstopkilljobsbgfg 这六大核心命令掰开揉碎,搭配可直接复现的实操案例和避坑指南,让你跟着敲一遍就能彻底掌握。

在开始之前,有几点需要说明:本文的操作适用于 Ubuntu、Debian、CentOS、Anolis OS 等主流 Linux 发行版,命令通用。大部分查看命令普通用户即可执行,但涉及终止进程或修改系统级进程时,可能需要 sudo 提权。文中所有代码块均可直接复制,实操时注意替换占位符(如 PID、进程名)。尤其要警惕 kill 系列命令的风险,切勿随意终止系统核心进程,建议先在测试环境练习。

一、先搞懂:进程管理核心概念

1. 什么是进程?

简单来说,进程就是正在运行中的程序。它是系统分配 CPU、内存等资源的基本单位。可以这么理解:你电脑上的微信安装包是“程序”,而双击打开后,那个正在运行的微信窗口就是一个“进程”。你在终端执行的任何一条命令,启动的任何一个服务,都会生成对应的进程。

每个进程都有唯一的身份证——PID(进程 ID),系统靠它来识别和管理进程。同时,每个进程还有个 PPID(父进程 ID),记录着是哪个进程把它“生”出来的。

2. 进程的3种核心类型(新手重点区分)

3. 核心补充:任务号(Job ID)

对于后台进程或被挂起的进程,除了全局唯一的 PID,系统还会给它分配一个“任务号”(Job ID)。这个编号只在当前终端会话内有效,是后续 jobsbgfg 命令操作的关键标识,千万别和 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 auxps -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,还有两个衍生兄弟 killallpkill。操作前,请务必看完下面的避坑提示。

1. 核心前置知识:进程信号

终止进程的本质,是向进程发送特定的“信号”,让它执行相应的操作。新手必须掌握两个最关键的信号:

关键说明: 默认情况下,kill 命令发送的是 15 号信号(SIGTERM),这是一种“礼貌”的终止方式,进程有机会保存数据、释放资源。而 9 号信号(SIGKILL)是“强制击杀”,内核会直接干掉进程,可能导致数据丢失。因此,务必优先使用 kill(即 kill -15),仅在进程完全卡死、不响应正常终止请求时,才将 kill -9 作为最后的兜底手段。

2. kill 命令(最核心,按PID终止进程)

kill 命令通过 PID 来操作进程。所以,你得先用 pstop 找到目标进程的 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:新手使用 killallpkill 时,强烈建议加上 -i 参数进行交互式确认。
避坑1绝对不要尝试 kill -9 1killall systemd 来终止系统核心进程,这会导致系统立即崩溃。
避坑2:避免使用 pkill 匹配过短的通用关键词(如 pkill sh),这可能会误杀大量系统 shell 进程,导致终端会话断开。
避坑3:在生产环境中,禁止随意批量执行 killall -9pkill -9,这可能引发业务中断和数据丢失。

五、前后台任务管理:jobs、bg、fg

很多新手遇到一个程序在终端前台运行,就只能干等着。学会前后台任务管理,就能完美解决这个问题。核心命令是 jobsbgfg。先理解两个基础操作:

前置基础操作:

& 符号:启动进程时直接放到后台运行
在命令的末尾加上 &,可以让进程一启动就在后台运行,不占用当前终端。

# 示例: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),bgfg 命令就用这个编号来操作,注意它不是 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)。killallpkill 虽方便,但务必谨慎,新手建议加上 -i 参数交互确认。管理前后台任务,关键在于几个组合键和命令:& 后台启动、Ctrl+Z 挂起、jobs 查看、bg 后台恢复运行、fg 前台调回。需要进程在终端关闭后依然运行时,请使用 nohup

最后,也是最重要的避坑原则:任何终止操作前,先确认目标进程信息,切勿对系统核心进程下手。在生产环境中,更要避免批量强制终止操作。建议将文中的案例多动手实操几遍,让这些命令成为你的“肌肉记忆”,无论是日常使用还是故障排查,都能做到心中有数,游刃有余。

来源:https://www.51cto.com/article/842474.html
免责声明: 游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

相关攻略

Linux系统中文界面设置指南 安装语言包解决英文显示问题
系统平台
Linux系统中文界面设置指南 安装语言包解决英文显示问题

Linux系统界面显示英文通常因未安装中文语言包。Ubuntu Debian系统可通过APT安装语言包并设置locale实现汉化;CentOS等RedHat系列需使用软件组安装中文支持;ArchLinux需手动生成locale并安装中文字体;KaliLinux则需配置locales并安装字体包。完成设置后,重启或重新登录即可生效,可通过locale命令或检查

热心网友
05.15
Linux stat命令查看文件最后访问时间详解
系统平台
Linux stat命令查看文件最后访问时间详解

Linux系统中,stat命令显示的访问时间常因默认挂载选项noatime而停止更新,无法反映真实读取记录。为监控文件读取行为,应使用inotify、auditd或eBPF等工具。stat-c命令在非GNU环境可能不兼容,建议依赖更可靠的修改时间或状态变更时间进行跨平台操作。

热心网友
05.15
Linux系统句柄数超限排查与file-max ulimit优化指南
系统平台
Linux系统句柄数超限排查与file-max ulimit优化指南

遇到“Toomanyopenfiles”报错,不应盲目调大file-max或ulimit。需先确认系统是否真的资源告急,以及哪个进程在消耗句柄。排查时需区分系统级限制(查看 proc sys fs file-nr)和进程级限制(查看进程的SoftLimit)。对于systemd服务,修改limits conf无效,必须通过override配置片段调整。容器环

热心网友
05.15
Linux进程堆内存查看方法与内存泄漏GDB调试分析
系统平台
Linux进程堆内存查看方法与内存泄漏GDB调试分析

在Linux中查看进程堆内存,可直接分析` proc [pid] maps`中标记为`[heap]`的段,或计算`VmData`字段。使用gdb追踪内存分配需程序带调试信息,可在`__libc_malloc`设断点。定位堆外泄漏推荐`pmap-x`,重点关注`ANON`匿名映射列的增长。组合排查时需注意内存分配器替换、内存布局变化及指针所属映射段,以区分堆内

热心网友
05.15
Linux系统安装SQLite 3教程与基础操作指南
系统平台
Linux系统安装SQLite 3教程与基础操作指南

SQLite是嵌入式常用数据库,Linux多预装命令行工具,C开发需另装开发包。使用时要区分点开头的元命令和以分号结尾的SQL语句,避免操作无响应。注意验证安装、正确使用分号及区分命令类型,可防止常见操作错误。

热心网友
05.15

最新APP

宝宝过生日
宝宝过生日
应用辅助 04-07
台球世界
台球世界
体育竞技 04-07
解绳子
解绳子
休闲益智 04-07
骑兵冲突
骑兵冲突
棋牌策略 04-07
三国真龙传
三国真龙传
角色扮演 04-07

热门推荐

鬼泣动画主创回应识质存在动画化计划最新进展
游戏资讯
鬼泣动画主创回应识质存在动画化计划最新进展

知名制作人阿迪·尚卡尔透露,在卡普空发布新作后,他收到大量粉丝请求,希望将科幻游戏《识质存在》动画化。他认为该游戏因“不寻常且原创性十足”而备受关注。但目前他并无改编计划,而是选择专注于全新的原创项目,以探索更多叙事可能性。

热心网友
05.16
班迪与油印机新手攻略 操作技巧与通关玩法详解
游戏资讯
班迪与油印机新手攻略 操作技巧与通关玩法详解

《班迪与油印机》是一款融合平台跳跃与解谜的冒险游戏。攻略从基础操作讲起,详细介绍了前八关的核心玩法与技巧,包括利用特殊动作通过地形、应对各类机关与Boss战策略。游戏过程中可收集资源以升级能力,探索隐藏区域。其关卡设计富有创意,难度较高,但攻克后能获得显著成就感。

热心网友
05.16
异环赛车任务攻略:高效跑赢白杨的技巧解析
游戏攻略
异环赛车任务攻略:高效跑赢白杨的技巧解析

在《异环》游戏中,获取那台备受瞩目的AE86幽灵车外观,关键在于完成白杨的支线赛车挑战。许多玩家在此环节遇到困难,感觉对手速度难以超越。实际上,掌握正确技巧后,赢得比赛并不复杂。 异环白杨赛车任务通关技巧详解 获胜的核心策略可以总结为:把握弯道优势,主动实施碰撞。 白杨的车辆起步与直线加速性能确实出

热心网友
05.16
星星益智果酱怎么玩 游戏玩法与特色全解析
游戏攻略
星星益智果酱怎么玩 游戏玩法与特色全解析

《星星益智果酱》是一款即将上线的休闲手游,玩法简单直观。游戏通过介绍与实机画面展示核心内容,帮助玩家快速了解其特色与乐趣。

热心网友
05.16
抗性忽视机制详解与实战通关数据全解析
游戏攻略
抗性忽视机制详解与实战通关数据全解析

心魔15层需冰抗180、火抗220以应对高额元素伤害,并把握BOSS施法前摇。16层需优先集火“魅惑魔灵”以防混乱,并稳妥处理高伤“穿刺者”。17层需兼顾元素区域走位与快速击破回血核心,考验团队输出与生存综合能力。这三层逐级挑战生存、节奏与整体实力。

热心网友
05.16