0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何在Linux使用ps命令

CHANBAEK 来源:myfreax 作者:myfreax 2022-12-14 17:47 次阅读

Linux 程序的运行实例称为进程。有时在Linux工作时,您可能需要找出当前正在运行的进程。

您可以使用许多命令来查找正在运行进程的信息pstop也是最常用的命令。

教程中,我们将讨论如何在Linux使用ps命令列出正在运行的进程以及打印进程的信息。

ps命令的语法是ps [OPTIONS]。出于历史和兼容性的原因,ps命令接受几种不同类型的选项。

UNIX风格选项,这种通常在ps命令后跟一个破折号。BSD风格选项,不带破折号。GNU长选项,后跟两个破折号。

你可以混合使用多种选项,但在某些情况下可能会出现冲突,因此最好坚持使用一种类型的选项。BSD和UNIX风格是最常用的。

不带任何选项运行ps命令,是最简单的形式。ps命令将打印四列信息,显示当前shell程序中正在运行的两个进程。shell程序本身以及调用ps命令时运行的进程。

ps
PID TTY          TIME CMD
 1809 pts/0    00:00:00 bash
 2043 pts/0    00:00:00 ps

四列分别标记PIDTTYTIMECMDPID是进程ID。

在大多数情况下,运行ps命令时,用户寻找的最重要的信息是进程PID。了解PID可以使您终止故障进程。

TTY进程控制终端的名称。TIME进程使用CPU的时间,以分钟和秒为单位。CMD创建该进程的命令名称。

上面的输出不是很有用,因为它包含的信息不多。当使用其他选项运行ps命令时,ps命令的真正功能才能体现出来。

ps命令接受大量选项,这些选项可用于显示指定的一组进程以及进程的信息,但是在日常使用中只需要少数几个选项。ps命令最常与以下选项组合使用。

PS命令BSD风格

如果以BSD的风格运行PS命令是不带破折号-的,例如命令ps aux,将使用BSD风格选项来查看进程信息。

a选项将会展示所有用户的进程,但不包括关联终端的进程以及进程的父进程。u代表一种面向用户的格式,提供进程的详细信息。

x选项让ps没有控制终端的进程。这包括在启动时在后台运行的进程,例如服务。

ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.8  77616  8604 ?        Ss   19:47   0:01 /sbin/init
root         2  0.0  0.0      0     0 ?        S    19:47   0:00 [kthreadd]
...

ps aux命令将显示11个的列的信息USERPID%CPU%MEMVSZRSSSTATSTARTTTYTIMECMD

我们已经解释PIDTTYTIMECMD列。这是其他标签列的说明,USER运行进程的用户。

%CPU进程的cpu利用率。%MEM进程的驻留空间大小占计算机物理内存的百分比。

VSZ进程的虚拟内存大小,以KiB作为单位。RSS进程正在使用的物理内存的大小。

STAT进程状态代码,可以是Z僵尸进程,S正在休眠进程,R正在运行进程等。START命令开始的时间。

要打印进程树,请添加f选项。这将指示ps命令显示父进程到子进程的树视图。例如命令ps auxf将会打印进程树视图。

ps命令还允许您对输出进行排序。例如,要根据内存使用情况对输出进行排序,则可以运行命令ps aux --sort=-%mem

ps auxf
ps aux --sort=-%mem

PS命令UNIX风格

ps -ef命令是Unix风格最常使用的命令,e选项指示ps列出所有进程。f列出进程的详细信息。

ps -ef命令将显示8列的信息包括UIDPIDPPIDCSTIMETIMECMD

UID与BSD风格的PS命令的USER列相同,表示运行进程的用户。PPID父进程的ID。

C与相同%CPU列相同,表示进程的cpu利用率。STIMESTART列相同,表示命令启动的时间。

要仅查看以指定用户运行的进程,请运行命令ps -f -U myfreax -u myfreax,其中myfreax用户名。

ps -ef
ps -f -U myfreax -u myfreax
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 19:47 ?        00:00:01 /sbin/init
root         2     0  0 19:47 ?        00:00:00 [kthreadd]
...

打印指定列

如果你需要太多列的进程信息,可以使用o选项,后跟要打印的列名,ps命令将会仅展示你指定的列名。

例如要仅打印PIDCOMMAND的信息。您将运行unix风格的命令ps -efo pid,comm。或者BSD风格的命令ps auxo pid,comm

ps -efo pid,comm #UNIX
ps auxo pid,comm #BSD

PS命令与管道

ps可以通过命令与其它命令组合使用。如果你分页显示ps命令的信息,则可以通过管道符|,传递给less命令,以达到分页的查看目的。

ps命令的输出也可以通过管道|传递给grep进行过滤。比如仅展示root用户的进程。

ps -ef | less
ps -ef | grep root

结论

对Linux问题进行故障排除时,ps命令是最常用的命令之一。它有很多选项,通常大多数用户都使用ps auxps -ef来收集正在运行的进程的信息。

个人建议使用BSD风格,简单且已读。要查看所有可用ps选项的信息,请在终端中输入man ps

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    10990

    浏览量

    206738
  • 命令
    +关注

    关注

    5

    文章

    638

    浏览量

    21849
  • 进程
    +关注

    关注

    0

    文章

    193

    浏览量

    13876
收藏 人收藏

    评论

    相关推荐

    何在Linux使用iostat命令

    IO等待或者`iowait`,`wait`,`wa`,`%iowait`,或者`wait%`通常可以通过Linux系统监控工具查看。例如命令行工具top、sar、atop等。
    的头像 发表于 01-04 17:17 1228次阅读

    何在Linux中使用htop命令

    本文介绍如何在 Linux 中使用 htop 命令
    的头像 发表于 12-04 14:45 553次阅读
    如<b class='flag-5'>何在</b><b class='flag-5'>Linux</b>中使用htop<b class='flag-5'>命令</b>

    Linux系统命令指南

    在“Linux 文件命令精通指南”中,我们讨论了利用最基础和最常用 Linux 文件命令所需的基本信息。在本文中,我将对 Linux 系统
    发表于 05-23 10:23 881次阅读

    何在 Linux 中不使用 CD 命令进入目录/文件夹?

    众所周知,如果没有 cd 命令,我们无法 Linux 中切换目录。这个没错,但我们有一个名为 shopt 的 Linux 内置命令能帮助我们解决这个问题。
    的头像 发表于 04-16 11:40 5670次阅读

    如何通过Linux上的ps命令查看整体状态

    大多数 Linux 用户使用预装的默认系统监控工具来检查内存、CPU 使用率等。在 Linux 中,许多应用程序作为守护进程在系统后台运行,这会消耗更多的系统资源。在 Linux 中,您可以使用各种
    的头像 发表于 06-16 12:11 1399次阅读

    何在Linux使用pidof命令

    `pidof`是一个命令行程序,可让您找到正在运行程序的进程ID。在教程中,我们将说明如何在Linux 使用pidof命令
    的头像 发表于 12-05 17:01 1883次阅读

    何在Linux使用touch命令

    Linux touch命令用于更改文件时间戳。但touch命令的最常见用法是创建文件。
    的头像 发表于 12-05 17:21 1697次阅读

    何在Linux使用rpm命令

    RPM是基于RedHat Linux发行版的软件包管理器,例如CentOS和Fedora。RPM还指`rpm`命令和`.rpm`文件扩展名称。
    的头像 发表于 01-04 17:14 1394次阅读

    何在Linux上使用粘贴命令

    Linux中的粘贴命令是一个有用的工具,用于将多个文件或文本行合并到单个文件或输出中。它通常与剪切命令结合使用,允许用户剪切特定行或文本部分并将其粘贴到其他地方。在本文中,小编将探讨 Linu
    的头像 发表于 02-08 16:58 1450次阅读

    何在Linux中使用progress命令

    progress 命令是一个简单但功能强大的 Linux/Unix 命令行工具,可让用户查看文件操作的进度。
    的头像 发表于 04-08 15:51 1532次阅读

    何在Linux中高效运行终端命令

    Linux 终端是一个功能强大的工具,允许您使用命令执行各种系统操作。文件操作、程序管理和服务自动化是您可以使用 shell 命令高效执行的一些操作。
    的头像 发表于 04-13 10:34 480次阅读

    浅析Linux精致的命令

    这只是一小部分常用的Linux命令Linux有很多命令可以使用。建议通过man命令来查看命令
    的头像 发表于 04-24 16:28 1338次阅读

    何在Linux命令行中运行Python脚本

    Python 脚本。 在本文中,我们将详细介绍如何在 Linux 命令行中运行 Python 脚本。我们将讨论以下主题:
    的头像 发表于 05-12 14:49 1371次阅读

    恒讯科技分析:如何在Linux上使用rm命令删除文件和目录?

    本指南展示了如何在Linux中使用rm命令行删除文件、目录和其他内容?
    的头像 发表于 06-09 17:02 855次阅读

    shell命令linux命令一样吗

    Shell命令Linux命令并不完全一样。 首先,Shell是一种命令行解释器,它是用来解释和执行用户输入的命令的。Shell既是一种
    的头像 发表于 11-08 10:51 1382次阅读