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

相关推荐

  • 如何检查运行中的FTP进程?

    在Linux系统中关闭FTP服务是提升服务器安全性的重要操作,尤其考虑到FTP协议使用明文传输敏感数据(如用户名、密码),存在被嗅探的风险,以下是详细操作指南,涵盖主流Linux发行版(Ubuntu/Debian/CentOS)和常见FTP服务软件(vsftpd/proftpd/pure-ftpd):确认当前运……

    2025年7月17日
    11000
  • Linux系统如何删除一个用户名及其对应的密码?

    在Linux系统中,用户和密码是系统安全的基础,当需要移除某个用户时,需同时清理用户信息、密码及相关配置文件,避免残留数据导致安全隐患,以下是详细操作步骤及注意事项,准备工作:确认用户状态与权限在删除用户前,需确认当前用户是否有操作权限(需root权限或sudo权限),并检查目标用户是否存在,可通过以下命令验证……

    2025年9月10日
    8800
  • 在Linux系统中如何具体查看U盘格式并读取文件内容?

    在Linux系统中查看U盘的文件系统格式并访问其中的文件,是日常操作中常见的需求,由于Linux对多种文件系统(如FAT32、NTFS、exFAT、ext4等)的支持情况不同,且不同发行版的操作方式略有差异,掌握正确的方法能避免很多麻烦,下面将详细介绍从识别U盘到查看格式、访问文件的完整流程,以及常见问题的解决……

    2025年10月8日
    7500
  • 在Linux操作系统中查找指定文件夹的具体命令和步骤是什么?

    在Linux系统中,查找文件夹是日常管理和运维中的常见需求,掌握高效的查找方法能显著提升工作效率,Linux提供了多种命令和工具来实现文件夹查找,每种方法都有其适用场景和优势,本文将详细介绍这些方法及其使用技巧,使用find命令:最强大的查找工具find命令是Linux中最常用且功能最灵活的查找工具,它可以根据……

    2025年10月2日
    4700
  • 如何查看Linux系统的外网IP地址?

    在Linux系统中,查看外网IP地址是网络管理、服务器运维或日常使用中的常见需求,外网IP(公网IP)是由网络服务提供商(ISP)分配,用于在互联网中唯一标识设备的地址,区别于局域网内的内网IP(如192.168.x.x、10.x.x.x),本文将详细介绍几种在Linux系统中查看外网IP的实用方法,涵盖命令行……

    2025年9月15日
    66200

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信