侧边栏壁纸
Linux入门自学网博主等级

每日学一条Linux命令,终成Linux大神

  • 累计撰写 725 篇文章
  • 累计创建 143 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Linux下ps命令用法详解:如何查看和管理系统进程(附实例教程和注意事项)

Linux ps命令介绍

Linux ps命令是process status的缩写,用于显示当前系统的进程状态。进程是程序在运行时的实例,每个进程都有一个唯一的进程标识符(PID),以及一些相关的属性,如用户、优先级、内存占用、CPU使用率等。ps命令可以查看这些信息,帮助用户了解系统的运行情况,以及进行进程管理和优化。

适用的Linux版本

ps命令是一个标准的Linux命令,几乎所有的Linux发行版都支持它。不同的发行版可能会提供不同的ps版本,例如procps-ng或BSD ps。这些版本之间可能会有一些语法和选项的差异,但是基本功能和用法都是相同的。用户可以通过ps --version命令查看自己系统上的ps版本。

Linux ps命令的基本用法

ps命令的语法格式如下:

ps [options]

其中,options是可选的参数,用于指定显示哪些进程,以及显示哪些信息。ps命令支持三种风格的参数:UNIX风格、BSD风格和GNU风格。UNIX风格的参数以-开头,可以组合在一起;BSD风格的参数不以-开头,也可以组合在一起;GNU风格的参数以--开头,不能组合在一起。例如:

# UNIX风格
ps -ef

# BSD风格
ps aux

# GNU风格
ps --pid 1234

如果不指定任何参数,ps命令默认只显示当前终端下属于当前用户的进程。

Linux ps命令的常用选项说明

ps命令有很多选项,可以根据不同的需求进行选择。下面列出一些常用的选项,并用表格简要说明它们的含义和作用。

选项含义作用
-Aall显示所有进程
-aall with tty显示除了无终端进程和会话领导进程之外的所有进程
-eevery同-A
-ffull显示完整格式的信息
-llong显示长格式的信息
-u useruser-defined显示指定用户或用户ID的进程
-U useruser-defined同-u
-p pidpid显示指定进程ID或PID列表的进程
-C cmdcommand显示指定命令名或命令列表的进程
-o formatoutput以自定义格式显示信息,format是由逗号分隔的字段列表
--sort specsort by spec按照指定字段排序输出结果,spec是由+-开头表示升序或降序,后跟字段名
--forestforest view以树状结构显示进程间关系
--helphelp information显示帮助信息
--versionversion information显示版本信息

Linux ps命令的实例

下面给出一些常见的ps命令使用实例,以及相应的解释。

  • 显示所有进程
# 使用-A或-e选项
[linux@bashcommandnotfound.cn ~]$ ps -A
  • 显示当前终端下属于当前用户的进程
# 不使用任何选项
[linux@bashcommandnotfound.cn ~]$ ps
  • 显示指定用户(如root)或用户ID(如0)的进程
# 使用-u或-U选项
[linux@bashcommandnotfound.cn ~]$ ps -u root
[linux@bashcommandnotfound.cn ~]$ ps -U 0
  • 显示指定进程ID(如1234)或PID列表(如1234,5678)的进程
# 使用-p选项
[linux@bashcommandnotfound.cn ~]$ ps -p 1234
[linux@bashcommandnotfound.cn ~]$ ps -p 1234,5678
  • 显示指定命令名(如bash)或命令列表(如bash,ssh)的进程
# 使用-C选项
[linux@bashcommandnotfound.cn ~]$ ps -C bash
[linux@bashcommandnotfound.cn ~]$ ps -C bash,ssh
  • 显示完整格式或长格式的信息,包括进程的用户、PID、PPID、启动时间、终端、CPU时间、命令等
# 使用-f或-l选项
[linux@bashcommandnotfound.cn ~]$ ps -f
[linux@bashcommandnotfound.cn ~]$ ps -l
  • 以自定义格式显示信息,例如只显示进程的PID、用户和命令
# 使用-o选项,后跟字段列表,字段名不区分大小写
[linux@bashcommandnotfound.cn ~]$ ps -o pid,user,cmd
  • 按照指定字段排序输出结果,例如按照CPU使用率降序排序
# 使用--sort选项,后跟排序规则,以`-`开头表示降序,以`+`开头表示升序,后跟字段名
[linux@bashcommandnotfound.cn ~]$ ps --sort -pcpu
  • 以树状结构显示进程间关系,可以看出哪些进程是父进程,哪些是子进程
# 使用--forest选项,可以与其他选项组合使用
[linux@bashcommandnotfound.cn ~]$ ps --forest
  • 显示帮助信息或版本信息
# 使用--help或--version选项
[linux@bashcommandnotfound.cn ~]$ ps --help
[linux@bashcommandnotfound.cn ~]$ ps --version
  • 显示所有进程,连同命令行:
[linux@bashcommandnotfound.cn ~]$ ps -ef

这是System V风格的命令,其中e表示列出所有进程,f表示全格式输出。
或者

[linux@bashcommandnotfound.cn ~]$ ps -aux

这是BSD风格的命令,其中a表示列出所有进程,u表示以用户为主的格式输出,x表示列出没有控制终端的进程。如果系统中存在名为x的用户,那么ps -aux将只会列出该用户的进程。
在早期,POSIX系统接受-ef选项,而BSD系统只接受aux选项。现在,大多数的Linux系统都同时支持这两种风格的选项。

Linux ps命令的注意事项

  • ps命令只能显示当前时刻的进程快照,如果想要动态地监控进程状态,可以使用top命令。
  • ps命令支持多种风格的参数,但是不同风格的参数不能混合使用。例如,不能同时使用UNIX风格和BSD风格的参数。
  • ps命令的输出结果可能会因为终端窗口的大小而发生变化。如果终端窗口太小,一些字段可能会被截断或省略。如果想要查看完整的信息,可以调整终端窗口的大小,或者将输出结果重定向到文件中。
  • ps命令的输出结果中可能会出现一些特殊符号,表示进程的一些属性。例如,<表示高优先级进程,N表示低优先级进程,+表示位于后台的进程组等。可以通过man ps命令查看这些符号的含义。
0

评论区