Linux ps命令查看进程
source link: https://www.myfreax.com/ps-command-in-linux/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Linux ps命令查看进程
在Linux 程序的运行实例称为进程。有时在Linux工作时,您可能需要找出当前正在运行的进程
Linux ps命令查看进程
在Linux 程序的运行实例称为进程。有时在Linux工作时,您可能需要找出当前正在运行的进程。
您可以使用许多命令来查找正在运行进程的信息,ps
与top
也是最常用的命令。
在教程中,我们将讨论如何在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
四列分别标记PID
,TTY
,TIME
和CMD
。PID
是进程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个的列的信息USER
,PID
,%CPU
,%MEM
,VSZ
,RSS
,STAT
,START
,TTY
,TIME
和CMD
。
我们已经解释PID
,TTY
,TIME
和CMD
列。这是其他标签列的说明,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列的信息包括UID
,PID
,PPID
,C
,STIME
,TIME
和CMD
。
UID
与BSD风格的PS命令的USER
列相同,表示运行进程的用户。PPID
父进程的ID。
C
与相同%CPU
列相同,表示进程的cpu利用率。STIME
与START
列相同,表示命令启动的时间。
要仅查看以指定用户运行的进程,请运行命令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
命令将会仅展示你指定的列名。
例如要仅打印PID
,COMMAND
的信息。您将运行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 aux
或ps -ef
来收集正在运行的进程的信息。
个人建议使用BSD风格,简单且已读。要查看所有可用ps
选项的信息,请在终端中输入man ps
。如果您有任何问题或反馈,请随时发表评论。
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK