当前位置:首页>Linux>Linux系统下查看进程

Linux系统下查看进程

  • 2026-09-04 22:02:19
Linux系统下查看进程

在 Linux 系统下,查看进程的命令有很多,最常用且最基础的是 ps 和 top。以下是不同场景下常用的查看方法汇总:

1. 实时动态查看进程

命令:top这是最常用的实时监控工具,类似于 Windows 的任务管理器。

  • 直接输入:top
  • 常用交互操作:
    • P
       (大写):按 CPU 使用率排序(默认)。
    • M
       (大写):按内存使用率排序。
    • q
      :退出 top。
  • 输出含义:
    • PID
      :进程 ID。
    • USER
      :运行者。
    • %CPU
      :CPU 占用率。
    • %MEM
      :内存占用率。
    • COMMAND
      :命令名/命令行。
  • 增强版命令:htop
    • 如果系统安装了 htop,直接输入 htop。它比 top 更直观,支持鼠标操作,界面色彩更丰富。
    • 安装方法:yum install htop 或 apt install htop。

2. 静态查看当前进程

命令:psps 是“快照”式的查看,即显示你执行命令那一瞬间的进程状态。

  • 查看所有进程详细信息(最常用):
    ps -ef
    • -e
      :显示所有进程。
    • -f
      :显示完整格式(UID, PID, PPID, C, STIME, TTY, TIME, CMD)。
  • 查看进程及其资源占用(类似 top 的静态版):
    ps aux
    • a
      :显示所有终端下的进程。
    • u
      :以用户为主的格式显示(包含 CPU 和内存使用率)。
    • x
      :显示没有控制终端的进程。

3. 查找特定进程(结合 grep)

通常 ps 会配合管道符 | 和 grep 使用,用来查找某个特定的程序是否在运行。

  • 查找 nginx 进程:
    ps -ef | grep nginx
    注意:输出结果中通常会包含 grep 本身的那一行,如果不需要它,可以过滤掉:
    ps -ef | grep nginx | grep -v grep

4. 查看进程树

命令:pstree如果想清晰地看到进程之间的父子关系:

pstree

如果需要显示 PID:

pstree -p

5. 完整查看所有进程信息

命令:pgrep和pidof如果你只想找某个进程的 PID,而不是看一大堆列表:

  • 查找 sshd 的 PID:
    pidof sshd

或者

pgrep sshd```

总结

  • 想看实时动态的 CPU/内存监控:用 top 或 htop。
  • 想看瞬间的进程快照:用 ps -ef 或 ps aux。
  • 想过滤出某个特定软件:用 ps -ef | grep 名字。
  • 想看父子进程关系:用 pstree。在 Linux 中,管道符 |(Pipe)是命令行中最强大、最常用的功能之一。简单来说,它的作用是:将前一个命令的“输出结果”,直接作为后一个命令的“输入内容”。你可以把它想象成现实生活中的水管:水(数据)从第一个水龙头(命令)流出来,通过管子(|),流进下一个水池(命令)。以下是它的核心用法和经典场景:

1. 核心语法

命令A | 命令B
  • 命令A:负责产生数据(输出)。
  • 命令B:负责处理数据(输入)。

2. 经典使用场景

当你查看的文件内容太多,或者进程列表太长,只想找特定的关键词时。

  • 场景:查看当前运行的进程,但只关心 nginx 相关的。
    • 不用管道:ps -ef (会刷屏,很难找)。
    • 用管道:
      ps -ef | grep nginx
      解释:ps -ef 的输出结果,不再直接打印到屏幕,而是流入了 grep nginx,由它筛选出包含 "nginx" 的行。

当一个命令输出几千行内容,屏幕一下子显示不完时。

  • 场景:查看一个很大的配置文件或日志。

    cat /var/log/nginx/access.log | more

    解释:cat 把文件内容全部读出来,通过管道传给 more,让你可以一页一页地看(按空格翻页)。

  • 场景:我想知道当前系统有多少个用户在登录。

    who | wc -l

    解释:who 列出所有登录用户,管道传给 wc -l(统计行数),最终得到一个数字。

  • 场景:查看系统中占用内存最高的 5 个进程。

    ps aux | sort -k4 -nr | head -n 5

    解释:这是一个多重管道的例子。

    1. ps aux
      :列出所有进程。
    2. | sort -k4 -nr
      :把列表按第 4 列(内存占比)进行数字倒序排序(大的在上面)。
    3. | head -n 5
      :取排序后的前 5 行。

3. 为什么它这么好用?

如果没有管道符,你需要这样做:

  1. 运行第一个命令。
  2. 把结果复制下来。
  3. 创建一个临时文件,粘贴进去保存。
  4. 运行第二个命令去读取这个临时文件。
  5. 删除临时文件。管道符 | 瞬间完成了上面所有的步骤,且不占用硬盘空间(在内存中传输数据)。

4. 注意事项:错误信息无法通过管道

管道默认只传递标准输出,不传递标准错误。

  • 例子:如果你尝试列出一个不存在的文件,并尝试 grep 它:
    ls 不存在的文件.txt | grep ”test”
    你会看到屏幕上报错 No such file or directory,但 grep 没有接收到任何东西。  因为报错信息直接打印到了屏幕,没有进入“水管”。

总结

管道符就是**“接力棒”**。当你觉得一个命令输出的结果太乱、太多、或者没法直接用的时候,就扔给下一个命令去处理!

最新文章

随机文章