Linux命令:ps
ps - report a snapshot of the current processes
对于 ps 命令来说参数多是一回事,另一回事是 ps 支持三种不通类型的命令行参数。
- Unix 风格的参数:前面加上单破折线。
- BSD 风格的参数:前面不加破折线。
- GNU 风格的参数:前面加上双破折线。
不带任何参数的 ps
ps 命令用于显示系统中进程的信息,包括进程的ID、控制进程的终端、执行时间和命令等,选项很多,ps命令显示的是当前相关进程的快照是当前系统进程运行时候的情况,如果要动态查询进程就要使用 top 来查询。
进程是程序在一个数据集合上的一次具体执行过程,每一个进程都有一个独立的进程号也就是 PID,PID 全称是 Process ID。
从 RHEL7 开始引入了 systemd 来充当系统的第一个进程,早期使用的是 init 来充当第一个进程,第一个进程是所有进程的父进程。
默认使用 ps 不带任何参数时,显示的是当前控制台下属于当前用户的进程。
具体显示的是 程序的进程 PID、运行的终端、运行的时间、进程已用CPU的时间。
[root@server ~]# ps
PID TTY TIME CMD
14947 pts/0 00:00:00 bash
15602 pts/0 00:00:00 ps
[root@server ~]# ping 8.8.8.8 > /dev/null &
[1] 16290
[root@server ~]# ps
PID TTY TIME CMD
14947 pts/0 00:00:00 bash
16290 pts/0 00:00:00 ping
16291 pts/0 00:00:00 ps
在上面的示例中通过 ping 8.8.8.8 > /dev/null & 在当前控制台下后台开启了一个有关 ping 的进程。
如果开启这个后台进程后开启另一个控制台再是使用 ps 就是另一个场景了,是看不到 ping 进程的,使用单个 ps 不带参数,只能再该控制台来查看!!!
ps 实操示列
ps -ef: -e 显示所有进程,-f 显示完整格式的输出
[root@server ~]# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 11:14 ? 00:00:02 /usr/lib/systemd/systemd --system --deserialize 19
root 2 0 0 11:14 ? 00:00:00 [kthreadd]
root 3 2 0 11:14 ? 00:00:00 [rcu_gp]
root 4 2 0 11:14 ? 00:00:00 [rcu_par_gp]
--snip--
ps -efww: -e 显示所有进程,-f 显示完整格式的输出,-w 采用宽输出模式,不限宽度显示
[root@server ~]# ps -efww | grep qemu
root 16314 14947 0 17:00 pts/0 00:00:00 grep --color=auto qemu

浙公网安备 33010602011771号