简介
ps命令经常用,但是从来没有系统学习。 而且,在不同的Linux发行版系统中,ps命令的使用也是有略微差别的。
详解
使用ps --help
命令查看帮助文档
┌──(root㉿kali)-[~]
└─# ps --help
Usage:
ps [options]
Try 'ps --help <simple|list|output|threads|misc|all>'
or 'ps --help <s|l|o|t|m|a>'
for additional help text.
For more details see ps(1).
┌──(root㉿kali)-[~]
└─# ps --help simple
Usage:
ps [options]
Basic options:
-A, -e all processes
-a all with tty, except session leaders
a all with tty, including other users
-d all except session leaders
-N, --deselect negate selection
r only running processes
T all processes on this terminal
x processes without controlling ttys
For more details see ps(1).
┌──(root㉿kali)-[~]
└─# ps --help s
Usage:
ps [options]
Basic options:
-A, -e all processes
-a all with tty, except session leaders
a all with tty, including other users
-d all except session leaders
-N, --deselect negate selection
r only running processes
T all processes on this terminal
x processes without controlling ttys
For more details see ps(1).
Bash
ps命令的模块较多,要使用ps --help 模块名
,如上述的ps --help simple(可简称s)
。
常用参数
-a | 显示所有进程,包括其他用户的进程。 |
---|---|
-u | 显示指定用户的进程信息。 |
-x | 显示所有进程,包括没有控制终端的进程。 |
-e | 显示所有进程,等同于ps -A。 |
-f | 显示进程的详细信息,包括进程的UID、PPID、CPU占用率等。 |
-l | 显示进程的长格式信息,包括进程的UID、PPID、CPU占用率、内存占用率等。 |
-p | 显示指定进程号的进程信息。 |
除上述简单参数,还有一些高级参数
- --sort
用于指定进程信息的排序方式。可以使用以下参数值:
%cpu | 按照CPU占用率排序。 |
---|---|
%mem | 按照内存占用率排序。 |
pid | 按照进程号排序。 |
ppid | 按照父进程号排序。 |
start_time | 按照进程启动时间排序。 |
time | 按照进程运行时间排序。 |
例如,要按照CPU占用率从高到低排序显示所有进程的信息,可以使用命令:
ps -eo pid,ppid,cmd,%cpu --sort=-%cpu
该命令会显示所有进程的PID、PPID、命令和CPU占用率,并按照CPU占用率从高到低排序。
- --forest
用于显示进程树,包括进程的父子关系。还有一个与之类似的命令----pstree
,也是查看进程树。
例如,要显示所有进程的进程树,可以使用命令:
ps -ef --forest
该命令会显示所有进程的进程树,包括进程的父子关系。
- --headers
用于显示进程信息的表头。
例如,要显示所有进程的PID、PPID、命令和CPU占用率,并显示表头,可以使用命令:
ps -eo pid,ppid,cmd,%cpu --headers
该命令会显示所有进程的PID、PPID、命令和CPU占用率,并显示表头。
- no-headers
用于不显示进程信息的表头。
例如,要显示所有进程的PID、PPID、命令和CPU占用率,并不显示表头,可以使用命令:
ps -eo pid,ppid,cmd,%cpu --no-headers
该命令会显示所有进程的PID、PPID、命令和CPU占用率,并不显示表头。
- --user
用于指定要查看的用户的进程信息。
例如,要查看用户root的进程信息,可以使用命令:
ps -u root
该命令会显示用户root的进程信息。
使用技巧
- 使用
grep
命令过滤进程信息
有时候,我们只需要查看某个进程或者某个用户的进程信息,可以使用grep
命令来过滤进程信息。例如,要查看所有以nginx
开头的进程信息,可以使用命令:
ps -ef | grep nginx
Bash
该命令会先使用ps -ef
命令显示所有进程的详细信息,然后使用grep
命令过滤出所有以nginx
开头的进程信息。
- 使用
watch
命令实时查看进程信息
有时候,我们需要实时查看进程的信息,可以使用watch
命令实现。例如,要实时查看所有进程的CPU占用率,可以使用命令:
watch -n 1 'ps -eo pid,ppid,cmd,%cpu --sort=-%cpu | head'
Bash
该命令会每秒钟执行一次ps
命令,显示所有进程的PID、PPID、命令和CPU占用率,并按照CPU占用率从高到低排序,然后只显示前10行。
- 使用
top
命令查看进程信息
top
命令是一个非常强大的进程查看工具,可以实时查看进程的信息。可以使用top
命令来查看进程的CPU占用率、内存占用率等信息。例如,要查看所有进程的CPU占用率,可以使用命令:
top
Bash
该命令会实时显示所有进程的CPU占用率、内存占用率等信息,并按照CPU占用率从高到低排序。
- 使用
pstree
命令查看进程树
pstree
命令可以显示进程树,包括进程的父子关系。例如,要查看所有进程的进程树,可以使用命令:
pstree
Bash
该命令会显示所有进程的进程树,包括进程的父子关系。
- 使用
pidof
命令查找进程号
pidof
命令可以根据进程名查找进程号。例如,要查找nginx
进程的进程号,可以使用命令:
pidof nginx
Bash
该命令会显示nginx
进程的进程号。
结语
学无止境啊!!!