Linux如何查看进程ID?

ps 命令(最常用)

作用:列出当前进程信息。
常用组合

ps aux | grep [进程名]  # 查看特定进程的PID
ps -ef | grep [进程名]  # 完整格式列表

示例:查找Nginx进程的PID

ps aux | grep nginx

输出示例

root      1234  0.0  0.1  12345  6789 ?        S    10:00   0:00 nginx: master process

关键列

  • 第二列(1234)即为PID
  • 第四列为内存占用,第十一列为进程名

pgrep 命令(精准匹配)

作用:直接通过进程名返回PID,无需额外过滤。
语法

pgrep [选项] [进程名]

示例

pgrep nginx         # 返回所有Nginx进程的PID
pgrep -f "python3"  # 匹配完整命令行(含参数)

输出

1234
5678

pidof 命令(快速查询)

作用:返回指定进程名的所有PID(仅匹配进程名)。
示例

pidof nginx

输出

1234 5678  # 多个PID以空格分隔

top / htop 命令(动态监控)

作用:实时显示进程资源占用,交互式查看PID。
操作

  1. 运行 tophtop(需安装)
  2. F3 搜索进程名(htop支持)
  3. Shift + M 按内存排序(top中)

输出关键列

  • PID:进程ID
  • %CPU:CPU占用率
  • COMMAND:进程名

/proc 文件系统(底层查看)

原理:Linux内核通过虚拟目录 /proc 暴露进程信息。
操作

ls /proc | grep -P '^\d+$'  # 列出所有PID目录
cat /proc/[PID]/status      # 查看某个进程的详细信息

示例:查看PID为1234的进程名

cat /proc/1234/comm

pstree 命令(树形结构)

作用:以树状图显示进程及其子进程的PID。
示例

pstree -p | grep nginx  # 显示进程树并过滤

输出

nginx(1234)─┬─nginx(5678)  
            └─nginx(9012)

systemctl(系统服务专用)

适用场景:查看系统服务(如SSH、Nginx)的PID。
示例

systemctl status nginx | grep PID

输出

Main PID: 1234 (nginx)

如何选择方法?

场景 推荐命令
快速查找单个进程 pgreppidof
查看进程详细信息 ps aux
实时监控资源占用 top / htop
分析进程父子关系 pstree -p
系统服务管理 systemctl
脚本中自动获取PID pgrep

注意事项

  • 普通用户只能查看自身进程,root用户可查看所有进程。
  • 部分命令需安装(如 htopsudo apt install htop)。
  • 若进程未启动,所有命令均返回空结果。

引用说明: 基于Linux内核文档(kernel.org)及GNU核心工具集(gnu.org/software)的官方手册,验证环境为Ubuntu 22.04 LTS和CentOS 9,命令兼容主流Linux发行版(Debian、RHEL、Arch等)。

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

(0)
酷番叔酷番叔
上一篇 2025年7月15日 10:14
下一篇 2025年7月15日 10:38

相关推荐

  • Linux下C语言开发如何提升效率?

    环境搭建安装基础工具打开终端执行(适用于Debian/Ubuntu):sudo apt update && sudo apt install build-essential gdb gitbuild-essential:包含GCC编译器、Make等核心工具gdb:调试器git:版本控制验证安装g……

    2025年6月15日
    19500
  • Linux如何访问GPT分区?操作步骤与方法详解

    在Linux系统中访问GPT(GUID Partition Table)分区是常见需求,尤其在使用大容量硬盘或多操作系统环境下,GPT作为MBR分区表的替代方案,支持更大的分区和更多的分区数量,现代Linux内核已原生支持GPT,无需额外驱动,以下是详细访问步骤和工具使用方法,确认系统对GPT的支持现代Linu……

    2025年8月27日
    19300
  • Linux如何使用SO库?

    在Linux系统中,SO库(Shared Object,共享库)是一种可被多个程序动态加载和调用的二进制文件,类似于Windows系统中的DLL文件,它通过代码复用减少了内存占用,便于模块化开发和程序维护,本文将详细介绍Linux下SO库的创建、使用及调试方法,SO库的创建创建SO库需先将源代码编译为位置无关代……

    2025年9月16日
    17900
  • 如何重启linux系统

    在Linux系统中,重启操作是系统维护、配置更新或解决系统异常时的常见需求,正确的重启方式不仅能确保数据安全,还能避免服务中断或系统损坏,本文将详细介绍Linux系统重启的多种方法、适用场景及注意事项,帮助用户在不同场景下选择合适的重启策略,图形界面重启(适用于桌面版Linux)对于使用图形化桌面环境的Linu……

    2025年9月21日
    18400
  • Linux如何添加tag索引?具体操作步骤与方法有哪些?

    在Linux系统中,“标签索引”通常指为文件、分区或资源分配可读的标识符,并通过系统工具建立关联索引,实现快速定位、管理和识别,不同场景下的标签索引操作差异较大,常见的包括文件系统标签(用于分区标识)、Git标签(版本控制标记)以及文件级标签(通过扩展属性实现),本文将分场景详细介绍Linux中添加标签索引的方……

    2025年10月2日
    16200

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信