使用ps命令进行操作的便捷方式
你好。
我叫冈崎,来自系统解决方案部。
这次就写一下操作时经常用到的ps命令。
PS命令是什么?
显示当前正在运行的进程的命令语法如下。
附言[可选]
此命令允许您通过指定各种选项来指定要显示的进程。
使用示例
$ ps PID TTY 时间 CMD 12558 点/0 00:00:00 sudo 12559 点/0 00:00:00 su 12560 点/0 00:00:00 bash 12611 点/0 00:00:00 ps
$ ps aux USER PID %CPU %MEM VSZ RSS TTY STAT 启动时间命令 root 1 1.4 0.2 19632 2492 ? Ss 11:53 0:00 /sbin/init root 2 0.0 0.0 0 0 ? S 11:53 0:00 ] 根 3 0.0 0.0 0 0 ? S 11:53 0:00 [ksoftirqd/0] 根 4 0.0 0.0 0 0 ? 11:53 0:00 [kworker/0:0H] 根 6 0.0 0.0 0 0 ? 53 0:00 [kworker/u30:0] 根 7 0.0 0.0 0 0 ? S 11:53 0:00 [rcu_sched ] 根 8 0.0 0.0 0 0 ? S 11:53 0:00 [rcu_bh] 根 9 0.0 0.0 0 0 ? S 11:53 0:00 [迁移/0] 根 10 0.0 0.0 0 0 ? S< 11:53 0 :00 [lru-add-drain] 根 11 0.0 0.0 0 0 ? S 11:53 0:00 [cpuhp/0] 根 12 0.0 0.0 0 0 ? S 11:53 0:00 [kdevtmpfs] 根 13 0.0 0.0 0 0 ? S< 11:53 0:00 [netns] 根 14 0.0 0.0 0 0 ? 53 0:00 [kworker/u30:1] 根 16 0.0 0.0 0 0 ? S 11:53 0:00 [xenwatch] 根 17 0.0 0.0 0 0 ? S 11:53 0:00 [kworker/u30:2] 根21 0.0 0.0 0 0 ? S 11:53 0:00 [xenbus]
或者
$ ps -ef UID PID PPID C STIME TTY TIME CMD root 1 0 0 11:53 ? 00:00:00 /sbin/init root 2 0 0 11:53 00:00:00 [kthreadd] root 3 2 0 11 :53 ? 00:00:00 [ksoftirqd/0] 根 4 2 0 11:53 ? 00:00:00 [kworker/0:0] 根 5 2 0 11:53 ? :0H] 根 6 2 0 11:53 ? 00:00:00 [kworker/u30:0] 根 7 2 0 11:53 ? 00:00:00 [rcu_sched] 根 8 2 0 11:53 ? :00 [rcu_bh] 根 9 2 0 11:53 ? 00:00:00 [迁移/0] 根 10 2 0 11:53 ? 00:00:00 [lru-add-drain] 根 11 2 0 11:53 00:00:00 [cpuhp/0] 根 12 2 0 11:53 ? 00:00:00 [kdevtmpfs]
尽管显示有所不同,但您可以输出服务器上当前运行的进程列表。
您可以使用以下命令了解当前有多少个同名进程正在运行。
$ ps -ef | grep [要检查的进程] | wc -l 或 ps aux | grep [要检查的进程] |
$ ps -eo pid,用户,rss,pcpu,pmem,args PID 用户 RSS %CPU %MEM 命令 1 root 2456 0.3 0.2 /sbin/init 2 root 0 0.0 0.0 [kthreadd] 3 root 0 0.0 0.0 [ksoftirqd/0] 4 根 0 0.0 0.0 [kworker/0:0] 5 根 0 0.0 0.0 [kworker/0:0H]
示例中显示了进程ID、用户、物理内存使用情况、CPU使用率、内存使用率、进程名称。
这样就可以只显示指定的项目,只输出必要的信息。
可以指定的项目相当多,所以我将介绍其中的一些。
pcpu (%cpu) - 进程 cpu 使用情况
pmem (%mem) - 内存使用情况
args (cmd,command) - 带字符串参数的命令
pid - 进程 ID
ppid - 父进程 ID
uid (euid) - 执行用户 ID
gid (egid) -执行组 ID
user (euser,uname) - 执行用户
组 (egroup) - 执行组
rss (rssize,rsz) - 物理内存使用情况
lstart - 进程启动时间
$ ps -eo pid,用户,rss,args --sort rss PID 用户RSS 命令 2667 ec2-user 2424 ps -eo pid,用户,rss,args --sort rss 2232 root 2428auditd 1 root 2464 /sbin/init 2544根 2528 crond 1533 根 2572 /sbin/udevd -d 2253 根 2592 /sbin/rsyslogd -i /var/run/syslogd.pid -c 5 2480 根 2596 /usr/sbin/sshd 2314 rpcuser 3160 rpc.statd 2639 ec2-用户 3416 -bash 2519 smmsp 3848 sendmail:/var/spool/clientmqueue 的队列 runner@01:00:00 2638 ec2-user 3988 sshd:ec2-user@pts/0 2510 root 4084 sendmail:接受连接 2490 ntp 4332 ntpd - u ntp:ntp -p /var/run/ntpd.pid -g
在示例中,RSS 结果已排序。
另外,使用时请小心,因为它无法按项目排序。
以下是尝试按httpd进程启动时间排序的结果。
$ ps -eo pid,lstart,args --sort lstart | grep httpd PID 启动命令 21544 Thu Aug 3 14:57:43 2017 /usr/sbin/httpd 21733 Thu Aug 3 14:58:42 2017 grep httpd 21734 Thu Aug 3 11:17:55 2017 /usr/sbin/httpd 38742 星期四 8 月 3 日 12:10:51 2017 /usr/sbin/httpd 42259 星期日 7 月 30 日 04:29:09 2017 /usr/sbin/httpd 64817 星期四 8 月 3 日 13 :32:34 2017 /usr/sbin/httpd
可以看到,它不是按启动时间排序,而是按pid排序。
概括
有很多机会使用 ps 命令
来检查哪些进程正在运行可以指定的项目还有很多,所以
我认为充分利用它们并以与平常不同的方式使用它们会很有趣。
如果您觉得这篇文章有帮助,请点赞!