【Linux】ps -aux和ps -ef命令命令参数的作用以及区别详情

在linux系统中,ps是简单而强大的进程查看命令,而ps -aux和ps -ef是打印出所有进程。其中的参数详解如下:ps -aux是以BSD方式显示a显示所有用户的进程(show processes for all users)u 显示用户(display

在linux系统中,ps是简单而强大的进程查看命令,而ps -aux和ps -ef是打印出所有进程。其中的参数详解如下:

ps -aux 是以BSD方式显示

a 显示所有用户的进程(show processes for all users) u 显示用户(display the process’s user/owner) x 显示无控制终端的进程(also show processes not attached to a terminal)

ps -ef 是以System V方式显示,该种方式比BSD方式显示的多

e 显示所有用户的进程(all processes)此参数的效果和指定"a"参数相同 f 用ASCII字符显示树状结构,表达程序间的相互关系(ASCII art forest)

下面看两个命令各自显示哪些内容:

$ps -aux 
USER       PID %CPU %MEM   VSZ  RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0  4828  516 ?        Ss    2014   1:28 init [3]         
root         2  0.0  0.0     0    0 ?        S     2014   0:00 [kthreadd]
root         3  0.0  0.0     0    0 ?        S     2014   0:43 [migration/0]
root         4  0.0  0.0     0    0 ?        S     2014   7:34 [ksoftirqd/0]
root         5  0.0  0.0     0    0 ?        S     2014   0:01 [migration/0]
root         6  0.0  0.0     0    0 ?        S     2014   0:03 [watchdog/0]
root         7  0.0  0.0     0    0 ?        S     2014   3:04 [migration/1]
root         8  0.0  0.0     0    0 ?        S     2014   0:01 [migration/1]
root         9  0.0  0.0     0    0 ?        S     2014   1:44 [ksoftirqd/1]
root        10  0.0  0.0     0    0 ?        S     2014   0:01 [watchdog/1]
root        11  0.0  0.0     0    0 ?        S     2014   2:21 [migration/2]
root        12  0.0  0.0     0    0 ?        S     2014   0:01 [migration/2]

其中显示了:

1、USER 哪个用户启动了这个命令 2、PID 进程ID 3、CPU CPU占用率 4、MEM 内存使用量 5、VSZ 如果一个程序完全驻留在内存的话需要占用多少内存空间 6、RSS 当前实际占用了多少内存 7、TTY: 终端的次要装置号码 (minor device number of tty) 8、STAT 进程当前的状态(“S”:中断 sleeping,进程处在睡眠状态,表明这些进程在等待某些事件发生–可能是用户输入或者系统资源的可用性;“D”:不可中断 uninterruptible sleep;“R”:运行 runnable;“T”:停止 traced or stopped;“Z”:僵死 a defunct zombie process) 9、START 启动命令的时间点 10、TIME 进程执行起到现在总的CPU暂用时间 11、COMMAND 启动这个进程的命令

$ps -ef 
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0  2014 ?        00:01:28 init [3]         
root         2     0  0  2014 ?        00:00:00 [kthreadd]
root         3     2  0  2014 ?        00:00:43 [migration/0]
root         4     2  0  2014 ?        00:07:34 [ksoftirqd/0]
root         5     2  0  2014 ?        00:00:01 [migration/0]
root         6     2  0  2014 ?        00:00:03 [watchdog/0]
root         7     2  0  2014 ?        00:03:04 [migration/1]
root         8     2  0  2014 ?        00:00:01 [migration/1]
root         9     2  0  2014 ?        00:01:44 [ksoftirqd/1]
root        10     2  0  2014 ?        00:00:01 [watchdog/1]
root        11     2  0  2014 ?        00:02:21 [migration/2]
root        12     2  0  2014 ?        00:00:01 [migration/2]

其中显示了:

1、UID 用户号 2、PID 进程ID 3、PPID 父进程号 4、C CPU占用率 5、TTY 终端的次要装置号码 (minor device number of tty) 6、TIME 进程执行起到现在总的CPU暂用时间 7、COMMAND 启动这个进程的命令

一般使用这两个命令的作用是查看预期的进程是否启动,或者杀死指定的进程,例如查看memcached进程是否正常启动:

$ps -ef | grep 'memcached'
work   14896  5034  0 16:30 pts/12   00:00:00 grep memcached
work   27799     1  0  2014 ?        00:01:08 /home/work/local/memcache/bin/memcached -d -m 8096 -p 11215 -c 256

通过grep命令可以查找指定的进程名称,上面例子查找发现正常运行了,但如果我要关闭这个进程,可以通过杀死PID来完成,例如memcached的PID是27799,那么执行下面kill命令即可:

$kill 27799
$ps -ef | grep 'memcached'
work   14896  5034  0 16:30 pts/12   00:00:00 grep memcached

再次查找进程已经消失。

补充:有时候在进行kill进程的时候会出现进程怎么杀也杀不死的情况,可以使用killall 通过指定进程名的方式杀死进程的命令

你可能感兴趣的:(linux,linux,运维,服务器)