菜鸟科技网

Linux查看进程有哪些常用命令?

在Linux系统中,查看进程是系统管理和故障排查的基础操作,掌握相关命令能帮助用户高效监控进程状态、资源占用及父子关系,以下将详细介绍Linux查看系统进程的常用命令及其使用方法,包括pstophtoppgreppstree等,并通过表格对比核心参数的功能,最后附上常见问题解答。

Linux查看进程有哪些常用命令?-图1
(图片来源网络,侵删)

ps命令:静态查看进程快照

ps(Process Status)是最基础的进程查看命令,用于输出当前进程的静态快照,默认仅显示终端相关的进程,通过组合不同选项,可获取详细的进程信息。

常用选项及示例

  • ps aux:显示所有进程的详细信息(a表示所有终端,u表示用户格式,x包括未控制终端的进程)。
    输出字段包括:

    • USER:进程所有者
    • PID:进程ID
    • %CPU:CPU占用率
    • %MEM:内存占用率
    • VSZ:虚拟内存大小(KB)
    • RSS:常驻内存集大小(KB)
    • TTY:终端类型
    • STAT:进程状态(如S=休眠,R=运行,Z=僵死)
    • START:启动时间
    • TIME:CPU累计时间
    • COMMAND:启动命令
  • ps -ef:以全格式显示所有进程(e表示所有进程,f为完整格式),UIDPPID(父进程ID)等字段更直观。
    示例:ps -ef | grep nginx 可筛选nginx相关进程。

  • ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu:自定义输出字段并按CPU占用率降序排序,适合监控资源消耗高的进程。

    Linux查看进程有哪些常用命令?-图2
    (图片来源网络,侵删)

top命令:动态实时监控进程

top命令以全屏交互方式动态显示进程状态,默认每3秒刷新一次,适合实时监控系统负载和进程资源占用。

核心功能

  • 顶部信息区:显示系统运行时间、登录用户数、系统负载(1/5/15分钟平均)、任务总数(运行/休眠/僵死)、CPU占用率(用户/系统/空闲)、内存及交换分区使用情况。
  • 进程列表区:默认按CPU占用率降序排列,字段包括PIDUSERNI(nice值,优先级)、VIRT(虚拟内存)、RES(物理内存)、SHR(共享内存)、S(状态)、%CPU%MEMTIME+(CPU累计时间)、COMMAND

交互操作

  • P:按CPU占用率排序
  • M:按内存占用率排序
  • k:终止指定PID进程
  • q:退出top
  • c:切换命令显示模式(完整路径/命令名)

htop命令:增强版实时进程监控

htoptop的升级版,提供更友好的交互界面(如颜色区分、树状结构支持),默认多数Linux系统需手动安装(yum install htopapt install htop)。

相较top的优势

  • 可视化操作:通过鼠标点击或快捷键操作,支持垂直/水平分屏查看多个进程树。
  • 进程树视图:按F5t可展开父子进程关系,直观查看进程依赖。
  • 实时参数调整:支持实时修改进程优先级(F7/F8升高/降低nice值)或终止进程(F9)。
  • 自定义列:通过F2进入设置界面,可调整显示字段顺序及内容。

pgrep命令:按条件筛选进程ID

pgrep(Process Grep)通过进程名、用户、终端等条件快速匹配进程PID,常用于脚本自动化场景。

常用选项

  • -u:指定用户(如pgrep -u nginx
  • -l:输出进程名而不仅是PID(如pgrep -l sshd
  • -f:匹配完整命令行(如pgrep -f "nginx -g daemon"
  • -x:精确匹配(如pgrep -x nginx仅匹配名为nginx的进程,不包含nginx worker)

示例

kill $(pgrep -f httpd) 可终止所有包含httpd关键词的进程。

Linux查看进程有哪些常用命令?-图3
(图片来源网络,侵删)

pstree命令:查看进程树结构

pstree以树状图形式展示进程间的父子关系,默认以init(PID 1)为根节点,适合分析服务依赖。

常用选项

  • -p:显示进程PID(如pstree -p
  • -u:显示进程用户(如pstree -u root
  • -a:显示完整启动命令(如pstree -a

示例

pstree -p | grep nginx 可快速定位nginx进程及其父进程。

核心命令参数对比表

命令 主要功能 常用选项示例 特点
ps 静态查看进程快照 aux, -ef, -eo自定义字段 简单灵活,适合一次性查看
top 动态实时监控进程 -d刷新间隔,-p指定进程,-u用户 交互式,实时性强
htop 增强版实时监控 -F全路径,-s排序,-t树状视图 界面友好,功能丰富
pgrep 按条件筛选进程ID -u用户,-f命令行,-l显示进程名 适合脚本自动化
pstree 查看进程树结构 -p显示PID,-a显示命令,-u用户 直观展示进程依赖关系

相关问答FAQs

Q1: 如何查看某个进程启动时的完整命令行参数?
A: 使用ps命令的-o选项自定义输出字段,例如查看PID为1234的完整命令行:

ps -p 1234 -o cmd

或使用ps -ef结合grep筛选,但ps -p更精确,若需查看实时进程的命令参数,可在htop中按c切换显示模式。

Q2: 为什么tophtop显示的CPU占用率与ps aux不一致?
A: 主要因统计方式和采样周期不同:

  • ps aux显示的是进程从启动到现在的平均CPU占用率,是静态快照;
  • tophtop默认显示的是采样周期(如3秒)内的瞬时CPU占用率,动态刷新。
    若需ps显示瞬时占用率,可结合ps -eo pid,pcpu,pmem --sort=-pcpu并多次执行观察变化,或使用top1键切换CPU核心详情查看各核心负载。

掌握以上命令及参数,可全面覆盖Linux进程管理的日常需求,从静态分析到动态监控,再到批量操作,提升系统管理效率。

分享:
扫描分享到社交APP
上一篇
下一篇