Linux下如何查看当前系统中正在运行的所有程序及其详细信息?

在Linux系统中,查看运行的程序(进程)是系统管理和故障排查的基础操作,Linux提供了多种命令工具,通过不同的参数组合可以实现多样化的进程查看需求,满足从基础查询到深度分析的各种场景,以下将详细介绍常用命令的功能、使用方法及适用场景。

linux如何查看运行的程序

基础进程查看命令

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

ps(Process Status)是最基础的进程查看工具,用于输出当前时刻的进程静态信息,通过不同选项可查看指定范围的进程:

  • ps aux:查看系统中所有进程的详细信息,包括用户(USER)、进程ID(PID)、CPU占用率(%CPU)、内存占用率(%MEM)、命令(COMMAND)等字段。
    示例输出:

    USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
    root         1  0.0  0.2  12800  8324 ?        Ss   May01   0:01 /sbin/init
    mysql      1234  0.1  1.5 123456 78900 ?        Sl   May02   0:30 /usr/sbin/mysqld
  • ps -ef:以System V格式输出所有进程,包含进程的父进程ID(PPID),适合通过管道过滤特定进程(如ps -ef | grep nginx)。

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

top以全屏交互界面实时更新进程信息,默认按CPU占用率降序排列,适合监控系统资源占用情况,常用交互操作:

  • M:按内存占用率(%MEM)排序;
  • C:按CPU占用率(%CPU)排序;
  • k:终止指定PID的进程;
  • q:退出top界面。
    界面顶部显示系统整体状态(如CPU负载、内存使用量),下方为进程列表,实时刷新(默认3秒/次)。

htop命令:增强版进程监控工具

htoptop的升级版,提供更直观的彩色界面、树状进程视图(F5切换)和鼠标操作支持,适合新手使用,安装后直接运行htop,可快速定位高资源占用进程,并通过快捷键(如t查看线程,s跟踪系统调用)深入分析。

进阶进程查询工具

pgrep/pkill命令:按名称查找/终止进程

pgrep通过进程名、用户等信息查找进程PID,适合脚本自动化操作:

linux如何查看运行的程序

  • pgrep -f "nginx":查找命令行中包含“nginx”的进程PID;
  • pgrep -u root:查找root用户的所有进程。
    pkill与之类似,用于直接终止进程(如pkill -f nginx)。

pstree命令:查看进程树结构

pstree以树状图展示进程间的父子关系,便于理解进程依赖,例如pstree -p会显示每个进程的PID,pstree -u会显示进程所属用户。

systemctl命令:查看系统服务状态

对于systemd管理的系统,systemctl可查看运行的服务(即守护进程):

  • systemctl list-units --type=service --state=running:列出所有正在运行的服务;
  • systemctl status nginx:查看nginx服务的详细状态(包括进程PID、日志等)。

ss/netstat命令:查看网络关联进程

通过网络连接反查进程,适合排查端口占用问题:

  • ss -tulnp:显示所有监听(l)的TCP(t)/UDP(u)端口及对应进程(p);
  • netstat -anp | grep :80:查看80端口的连接及进程信息netstat逐渐被ss替代,后者性能更优)。

核心命令对比与适用场景

命令 核心功能 常用选项 适用场景
ps 静态查看进程快照 aux, -ef, –forest(树状) 快速查询指定进程信息
top 动态实时监控 M, C, k, d(刷新间隔) 实时监控系统资源占用
htop 增强版实时监控 F5(树状), t(线程), s(跟踪) 新手友好,深度分析进程
pgrep 按名称/用户查找进程PID -f(匹配完整命令), -u(用户) 脚本自动化,批量操作
pstree 查看进程树结构 -p(显示PID), -u(显示用户) 分析进程依赖关系
systemctl 查看systemd服务状态 status, list-units 管理系统服务(如nginx、mysql)
ss 查看网络连接及关联进程 tulnp, a(所有连接) 排查端口占用、网络连接问题

注意事项

  1. 权限问题:普通用户只能查看自己的进程,需sudo才能查看系统所有进程(如ps aux | grep root)。
  2. 动态与静态top/htop实时刷新,适合监控;ps只显示当前快照,适合一次性查询。
  3. 服务与进程:系统服务(如nginx)通过systemctl管理,实际进程可通过systemctl status查看PID。

相关问答FAQs

Q1:ps auxps -ef有什么区别?如何选择?
A:ps aux采用BSD格式,包含%CPU%MEM等资源占用率字段,适合直观查看进程资源消耗;ps -ef采用System V格式,包含PPID(父进程ID)字段,适合通过管道过滤(如ps -ef | grep java),若需关注资源占用,选ps aux;若需分析进程父子关系,选ps -ef

linux如何查看运行的程序

Q2:为什么用ps aux查看不到某些进程?
A:可能原因有两个:一是权限不足,普通用户无法查看其他用户的进程(需sudo);二是进程状态为“僵尸”(Z状态),这类进程已结束但未释放资源,ps aux可能不显示或显示异常,可通过top查看并手动终止其父进程(k命令)。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/24521.html

(0)
酷番叔酷番叔
上一篇 2025年9月17日 05:49
下一篇 2025年9月17日 06:04

相关推荐

  • Linux系统中如何设置文件权限掩码(umask)?

    在Linux系统中,权限掩码(umask)是一个用于控制新创建文件和目录默认权限的重要设置,它通过从默认权限中减去指定的权限位,来确定新文件或目录的最终权限,从而帮助用户更安全地管理文件访问控制,避免新创建的文件或目录权限过于开放,权限掩码的基本概念Linux中,文件和目录的默认权限是固定的:新建文件的默认权限……

    2025年10月5日
    12100
  • Linux下如何切换输入法设置?

    在Linux系统中,输入法切换是日常使用中频繁操作的功能,尤其对于中文用户而言,由于Linux发行版众多,且默认输入法框架(如IBus、Fcitx5等)及桌面环境(如GNOME、KDE Plasma、XFCE等)的差异,切换输入法的方法可能略有不同,本文将详细介绍主流输入法框架下的切换方法,涵盖系统设置、快捷键……

    2025年9月18日
    14500
  • Linux网络配置如何恢复?实用恢复方法与步骤详解

    Linux网络配置恢复是系统维护中常见的需求,通常因配置文件误删、参数错误、服务异常或系统更新导致,恢复过程需根据问题原因和发行版差异采取不同方法,以下是详细步骤和注意事项,确认网络问题状态恢复前需先定位故障类型:是IP配置错误、DNS解析失败、网关不可达,还是网络服务完全失效,可通过基础命令排查:查看网络接口……

    2025年10月2日
    10400
  • 如何在Linux快速进入目录?

    命令行方式:使用 cd 命令cd(Change Directory)是切换目录的核心命令,支持绝对路径和相对路径两种形式,绝对路径进入绝对路径从根目录 开始,完整指向目标位置,示例:进入 /var/log/apache2cd /var/log/apache2相对路径进入相对路径以当前目录为起点,使用特殊符号简化……

    2025年7月31日
    13200
  • Linux远程ping丢包,如何有效优化?

    在Linux系统中进行远程ping操作时出现丢包,会直接影响网络性能评估、服务连通性判断等场景,丢包可能由本地配置、网络路径、中间设备或服务器端问题共同导致,需结合诊断工具逐步排查并针对性优化,以下从丢包原因分析、系统参数调整、网络路径优化、中间设备协调及监控五个维度展开详细说明,丢包原因初步诊断优化前需明确丢……

    2025年10月2日
    10500

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信