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下如何查看静态库中的函数?

    在Linux开发环境中,静态库(.a文件)是多个目标文件(.o文件)的归档集合,常用于封装可复用的代码,查看静态库中的函数信息对于调试、依赖分析或代码审查至关重要,本文将详细介绍Linux下查看静态库函数的多种方法,包括常用工具的使用、符号解析技巧及注意事项,静态库的基本结构静态库由ar工具创建,本质上是归档文……

    2025年8月30日
    6500
  • 为什么火狐浏览器打不开怎么办

    在Linux系统中,开启进程是日常操作的核心任务之一,无论是运行简单脚本还是部署关键服务,理解多种进程启动方式至关重要,以下内容基于Linux内核文档、man命令手册及开源社区最佳实践,确保专业性和可靠性,进程基础概念进程是正在执行的程序的实例,Linux中每个进程拥有独立的内存空间和资源,通过PID(进程ID……

    2025年7月21日
    7700
  • linux中vi如何取消行号

    在Linux系统中,vi(或其增强版vim)作为常用的文本编辑器,默认情况下可能显示行号以方便定位代码或文本,但在某些场景下,如复制代码时无需行号、查看日志时减少干扰,或编辑配置文件时避免格式错乱,用户可能需要取消行号显示,取消行号的方法分为临时取消和永久取消两种,分别适用于不同的使用需求,下面将详细介绍具体操……

    2025年9月29日
    3600
  • Linux如何挂载光盘?步骤技巧!

    挂载前准备确认光盘设备路径插入光盘后,执行命令查看设备标识:lsblk输出示例(光盘通常显示为 /dev/sr0 或 /dev/cdrom):NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTsr0 11:0 1 1024M 0 rom创建挂载点目录挂载点是一个空目录,用于访问光盘内……

    2025年7月7日
    7400
  • 如何用8种命令高效查看Linux文件?

    基础查看命令cat一次性输出)cat filename.txt特点:直接显示整个文件内容(适合小文件)致命缺陷:大文件会导致终端刷屏(可用Ctrl+C中断)高级技巧: cat -n filename.txt # 显示行号cat file1 file2 > combined.txt # 合并多个文件less……

    2025年7月19日
    7100

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信