# ps
PID TTY TIME CMD
1496 pts/0 00:00:00 bash
1688 pts/0 00:00:00 ps
PID: 运行着的命令(CMD)的进程编号 TTY: 命令所运行的位置(终端) TIME: 运行着的该命令所占用的CPU处理时间 CMD: 该进程所运行的命令
# ps ax
PID TTY STAT TIME COMMAND
1 ? Ss 0:01 /sbin/init
2 ? S 0:00 [kthreadd]
3 ? S 0:00 [migration/0]
4 ? S 0:00 [ksoftirqd/0]
5 ? S 0:00 [stopper/0]
6 ? S 0:00 [watchdog/0]
14 ? S 0:00 [async/mgr]
15 ? S 0:00 [pm]
22 ? S 0:00 [kacpi_hotplug]
23 ? S 0:00 [ata_aux]
24 ? S 0:00 [ata_sff/0]
25 ? S 0:00 [ksuspend_usbd]
26 ? S 0:00 [khubd]
1456 tty1 Ss+ 0:00 /sbin/mingetty /dev/tty1
1458 tty2 Ss+ 0:00 /sbin/mingetty /dev/tty2
1460 tty3 Ss+ 0:00 /sbin/mingetty /dev/tty3
1462 tty4 Ss+ 0:00 /sbin/mingetty /dev/tty4
1464 tty5 Ss+ 0:00 /sbin/mingetty /dev/tty5
1466 tty6 Ss+ 0:00 /sbin/mingetty /dev/tty6
1474 ? S< 0:00 /sbin/udevd -d
1475 ? S< 0:00 /sbin/udevd -d
1492 ? Ss 0:00 sshd: root@pts/0
1496 pts/0 Ss 0:00 -bash
1670 ? S 0:00 pickup -l -t fifo -u
1689 pts/0 R+ 0:00 ps ax
在需要查看特定用户进程的情况下,我们可以使用 -u 参数。比如我们要查看用户'zabbix'的进程,可以通过下面的命令:
# ps -u zabbix
PID TTY TIME CMD
1653 ? 00:00:00 zabbix_agentd
1654 ? 00:00:03 zabbix_agentd
1655 ? 00:00:00 zabbix_agentd
也许你希望把结果按照 CPU 或者内存用量来筛选,这样你就找到哪个进程占用了你的资源。要做到这一点,我们可以使用 aux 参数,来显示全面的信息:
# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 19232 1492 ? Ss 03:47 0:01 /sbin/init
root 2 0.0 0.0 0 0 ? S 03:47 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S 03:47 0:00 [migration/0]
root 4 0.0 0.0 0 0 ? S 03:47 0:00 [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? S 03:47 0:00 [stopper/0]
root 6 0.0 0.0 0 0 ? S 03:47 0:00 [watchdog/0]
root 7 0.0 0.0 0 0 ? S 03:47 0:05 [events/0]
root 8 0.0 0.0 0 0 ? S 03:47 0:00 [events/0]
root 9 0.0 0.0 0 0 ? S 03:47 0:00 [events_long/0]
root 10 0.0 0.0 0 0 ? S 03:47 0:00 [events_power_ef]
root 11 0.0 0.0 0 0 ? S 03:47 0:00 [cgroup]
root 12 0.0 0.0 0 0 ? S 03:47 0:00 [khelper]
root 13 0.0 0.0 0 0 ? S 03:47 0:00 [netns]
root 14 0.0 0.0 0 0 ? S 03:47 0:00 [async/mgr]
root 15 0.0 0.0 0 0 ? S 03:47 0:00 [pm]
如果我们想知道特定进程的线程,可以使用-L 参数,后面加上特定的PID。
# ps -L 1033
PID LWP TTY STAT TIME COMMAND
1033 1033 ? Sl 0:00 /usr/local/cloudmonitor/jre/bin/java -Djava.compil
1033 1039 ? Sl 0:03 /usr/local/cloudmonitor/jre/bin/java -Djava.compil
1033 1040 ? Sl 1:39 /usr/local/cloudmonitor/jre/bin/java -Djava.compil
1033 1041 ? Sl 0:01 /usr/local/cloudmonitor/jre/bin/java -Djava.compil
1033 1042 ? Sl 0:01 /usr/local/cloudmonitor/jre/bin/java -Djava.compil
1033 1044 ? Sl 0:00 /usr/local/cloudmonitor/jre/bin/java -Djava.compil
1033 1045 ? Sl 0:00 /usr/local/cloudmonitor/jre/bin/java -Djava.compil
1033 1046 ? Sl 11:00 /usr/local/cloudmonitor/jre/bin/java -Djava.compil
使用 -C 参数,后面跟你要找的进程的名字。比如想显示一个名为getty的进程的信息,就可以使用下面的命令:
# ps -C java
PID TTY TIME CMD
1033 ? 02:47:59 java