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命令有很多选项,可以根据不同的需求进行选择。下面列出一些常用的选项,并用表格简要说明它们的含义和作用。
选项 | 含义 | 作用 |
---|---|---|
-A | all | 显示所有进程 |
-a | all with tty | 显示除了无终端进程和会话领导进程之外的所有进程 |
-e | every | 同-A |
-f | full | 显示完整格式的信息 |
-l | long | 显示长格式的信息 |
-u user | user-defined | 显示指定用户或用户ID的进程 |
-U user | user-defined | 同-u |
-p pid | pid | 显示指定进程ID或PID列表的进程 |
-C cmd | command | 显示指定命令名或命令列表的进程 |
-o format | output | 以自定义格式显示信息,format是由逗号分隔的字段列表 |
--sort spec | sort by spec | 按照指定字段排序输出结果,spec是由+ 或- 开头表示升序或降序,后跟字段名 |
--forest | forest view | 以树状结构显示进程间关系 |
--help | help information | 显示帮助信息 |
--version | version 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
命令查看这些符号的含义。
评论区