Unix/Linux:查找有关该过程的信息,包括所有命令行参数

时间:2020-01-09 10:45:55  来源:igfitidea点击:

Unix/Linux操作系统下" ps -e"或者" ps aux"仅显示命令/进程名称。
如何查看有关该过程的完整信息,包括传递给它的所有参数。
我如何使用ps命令在Unix/Linux下看到它?
要查看类似Unix的系统上的每个进程,请使用以下标准语法:

ps -e
ps -ef
ps -eF
ps -ely
ps axu

输出示例:

UID        PID  PPID  C    SZ   RSS PSR STIME TTY          TIME CMD
root         1     0  0  2101   792   6 11:17 ?        00:00:02 init [2]  
root         2     0  0     0     0   1 11:17 ?        00:00:00 [kthreadd]
root         3     2  0     0     0   0 11:17 ?        00:00:00 [ksoftirqd/0]
root         6     2  0     0     0   0 11:17 ?        00:00:00 [migration/0]
root         7     2  0     0     0   0 11:17 ?        00:00:00 [watchdog/0]
root         8     2  0     0     0   1 11:17 ?        00:00:00 [migration/1]
root        10     2  0     0     0   1 11:17 ?        00:00:00 [ksoftirqd/1]
root        12     2  0     0     0   1 11:17 ?        00:00:00 [watchdog/1]
root        13     2  0     0     0   2 11:17 ?        00:00:00 [migration/2]
root        15     2  0     0     0   2 11:17 ?        00:00:00 [ksoftirqd/2]
....
....
..
Hyman     3633  2901  0 223266 82628  5 11:43 ?        00:00:01 /opt/google/chrome/chrome --type=renderer --lang=en-US --force-fieldtest=CacheListSize/CacheLi
Hyman     3641  3005  0  5563  5028   0 11:43 pts/2    00:00:00 bash
root      3756     2  0     0     0   4 11:44 ?        00:00:00 [kworker/4:2]
root      3757     2  0     0     0   6 11:44 ?        00:00:02 [kworker/6:0]
root      3781     2  0     0     0   0 11:46 ?        00:00:00 [kworker/0:0]
root      3789     2  0     0     0   3 11:46 ?        00:00:00 [kworker/3:0]
root      3994     2  0     0     0   2 11:48 ?        00:00:00 [kworker/2:0]

但是,由于屏幕尺寸的限制,这不会显示传递给该命令的所有命令行参数。
您需要在aux之后添加ww,如下所示,以获取有关该过程的完整信息,包括所有命令行参数:

ps auxww

输出示例:

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.1  0.0   8404   792 ?        Ss   11:17   0:02 init [2]  
root         2  0.0  0.0      0     0 ?        S    11:17   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    11:17   0:00 [ksoftirqd/0]
root         6  0.0  0.0      0     0 ?        S    11:17   0:00 [migration/0]
root         7  0.0  0.0      0     0 ?        S    11:17   0:00 [watchdog/0]
root         8  0.0  0.0      0     0 ?        S    11:17   0:00 [migration/1]
root        10  0.0  0.0      0     0 ?        S    11:17   0:00 [ksoftirqd/1]
root        12  0.0  0.0      0     0 ?        S    11:17   0:00 [watchdog/1]
root        13  0.0  0.0      0     0 ?        S    11:17   0:00 [migration/2]
....
.....
..
root      1705  0.0  0.0  70340  4200 ?        Ss   11:19   0:00 /usr/sbin/NetworkManager
root      1711  0.0  0.0  59936  2524 ?        S    11:19   0:00 /usr/sbin/modem-manager
bind      1713  0.0  0.4 256904 32532 ?        Ssl  11:19   0:01 /usr/sbin/named -u bind
root      1755  0.0  0.0  28312  1976 ?        S    11:19   0:00 /sbin/wpa_supplicant -u -s
root      1758  0.0  0.0  24340  1168 ?        S    11:19   0:00 hald-addon-input: Listening on /dev/input/event17 /dev/input/event10 /dev/input/event0 /dev/input/event4 /dev/input/event3 /dev/input/event1 /dev/input/event7 /dev/input/event6 /dev/input/event8 /dev/input/event5 /dev/input/event15
root      1767  0.0  0.0  24332  1168 ?        S    11:19   0:00 /usr/lib/hal/hald-addon-generic-backlight
root      1768  0.0  0.0  24332  1168 ?        S    11:19   0:00 /usr/lib/hal/hald-addon-rfkill-killswitch
www-data  1782  0.0  0.0  58156  1352 ?        S    11:19   0:00 /usr/sbin/lighttpd -f /etc/lighttpd/lighttpd.conf
www-data  1790  0.0  0.0  92828  7568 ?        Ss   11:19   0:00 /usr/bin/php-cgi
root      1795  0.0  0.0  24336  1396 ?        S    11:19   0:00 hald-addon-storage: polling /dev/sr0 (every 2 sec)
root      1801  0.0  0.0  24348  1172 ?        S    11:19   0:00 /usr/lib/hal/hald-addon-cpufreq
111       1802  0.0  0.0  26156  1236 ?        S    11:19   0:00 hald-addon-acpi: listening on acpid socket /var/run/acpid.socket
root      1815  0.0  0.0   4004   624 ?        S    11:19   0:00 /bin/sh /usr/bin/mysqld_safe
www-data  1937  0.0  0.0  92828  3224 ?        S    11:19   0:00 /usr/bin/php-cgi
www-data  1938  0.0  0.0  92828  3224 ?        S    11:19   0:00 /usr/bin/php-cgi
www-data  1939  0.0  0.0  92828  3224 ?        S    11:19   0:00 /usr/bin/php-cgi
www-data  1940  0.0  0.0  92828  3224 ?        S    11:19   0:00 /usr/bin/php-cgi
mysql     1942  0.0  0.4 172232 33108 ?        Sl   11:19   0:01 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/run/mysqld/mysqld.sock --port=3306
root      1943  0.0  0.0   3904   588 ?        S    11:19   0:00 logger -t mysqld -p daemon.error
root      2008  0.0  0.0      0     0 ?        S    11:19   0:00 [kworker/1:2]
root      2083  0.0  0.0  74304  2992 ?        Sl   11:19   0:00 /usr/sbin/gdm3
root      2096  0.0  0.0  99764  4264 ?        Sl   11:19   0:00 /usr/lib/gdm3/gdm-simple-slave --display-id /org/gnome/DisplayManager/Display1
root      2106  2.5  2.7 313204 222816 tty7    Ss+  11:19   0:52 /usr/bin/Xorg :0 -br -verbose -audit 0 -novtswitch -auth /var/run/gdm3/auth-for-Debian-gdm-sioDyr/database -nolisten tcp vt7

-w选项用于宽输出。
两次使用此选项可获得无限宽度。
您可以使用shell管道来过滤输出,如下所示:

$ ps auxww | grep pid

$ ps auxww | grep mysqld

$ ps auxww | grep --color mysqld

控制ps输出

ps命令的-o选项可用于查看用户定义格式的输出。
在此示例中,以用户定义的格式查看每个进程:

ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm
ps axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm
ps -eopid,tt,user,fname,tmout,f,wchan

您只能使用以下格式查看PID,命令及其参数:

ps axo pid,command,args

关于默认输出格式的注释

设置PS_FORMAT shell变量以覆盖默认输出格式。
您可以将其设置为-o选项所用类型的格式字符串。

export PS_FORMAT=pid,command,args
ps auxww