Linux下显示系统进程的命令ps,最常用的有ps -ef 和ps aux.这两个到底有什么区别呢?两者没太大差别,讨论这个问题,要追溯到Unix系统中的两种风格,System V风格和BSD 风格,ps aux最初用到Unix Style中,而ps -ef被用在System V Style中,两者输出略有不同.现在的大部分Linux系统都是可以同时使用这两种方式的.
ps -ef 是用标准的格式显示进程的、其格式如下:?
其中各列的内容意思如下?
UID //用户ID、但输出的是用户名?
PID //进程的ID?
PPID //父进程ID?
C //进程占用CPU的百分比?
STIME //进程启动到现在的时间?
TTY //该进程在那个终端上运行,若与终端无关,则显示? 若为pts/0等,则表示由网络连接主机进程.?
CMD //命令的名称和参数
ps aux 是用BSD的格式来显示、其格式如下:?
同ps -ef 不同的有列有?
USER //用户名?
%CPU //进程占用的CPU百分比?
%MEM //占用内存的百分比?
VSZ //该进程使用的虚拟内存量(KB)?
RSS //该进程占用的固定内存量(KB)(驻留中页的数量)?
STAT //进程的状态?
START //该进程被触发启动时间?
TIME //该进程实际使用CPU运行的时间
其中STAT状态位常见的状态字符有?
D //无法中断的休眠状态(通常 IO 的进程);?uninterruptible sleep (usually IO)不可中断?
R //正在运行可中在队列中可过行的;?
S //处于休眠状态;?
T //停止或被追踪;?traced or stopped?
X //死掉的进程 (基本很少见);?
Z //僵尸进程;?a defunct ("zombie") process
//优先级高的进程?
N //优先级较低的进程?
L //有些页被锁进内存;?
s //进程的领导者(在它之下有子进程);?
l //多线程,克隆线程(使用 CLONE_THREAD, 类似 NPTL pthreads);?
+ //位于后台的进程组;
他们其实结果信息都差不多只是输出的格式有点不一样.他们其实是unix的两种风格,aux用于unix bsd style中,而ef用于system v style里面.
ps命令用于获取有关在Linux,Unix和BSD系统上运行的进程的详细信息. ps有一些流行的选项和用例,其中一个是aux选项.
ps命令的默认行为是仅列出当前用户进程. 所有其他用户拥有的进程将不会显示.?a选项也会打印所有其他用户进程.?<
关于显示流程信息的默认行为不会打印流程的所有者. 但是在大多数情况下,流程所有者数据将非常有帮助. 所以呢,我们可以使用u选项来显示进程所有者.
ps默认情况下仅显示终端连接过程. 如果要显示其他未连接到终端的进程,可以使用x选项.
#?a 选项也会打印所有其他用户进程.
# u?显示进程所有者.
#?x?显示其他未连接到终端的进程
查看全格式、风格不同.
①.、ps-ef用于查看全格式的全部进程,ps-aux也是用于查看进程,其中"ps"是在Linux中是查看进程的命令,"-e"参数代表显示所有进程,"-f"参数代表全格式.
ps -aux的写法格式存在问题.带不带管道都会存在warning的提示,你可以仔细试试.
原因可以参考man下面的内容,man ps :
Note that "ps -aux" is distinct from "ps aux". The POSIX and UNIX standards require that "ps -aux" print all processes owned by a user named
"x", as well as printing all processes that would be selected by the -a option. If the user named "x" does not exist, this ps may interpret
the command as "ps aux" instead and print a warning. This behavior is intended to aid in transitioning old scripts and habits. It is fragile,
subject to change, and thus should not be relied upon.
大意理解为如果系统存在用户x,则使用ps -aux 得到的是x用户的进程信息,如果没有用户x,则跟ps aux一样.所以以后使用ps aux记得不要使用"-"
l题主土嘎嘎的粉丝们大家好,
ps-aux简单来说就是回显所有进程的信息;
grep?sshd?表示使用grep查找包含sshd的行;
将这两个命令用管道符连起来表示:
在ps?-aux回显的所有进程信息中查找包含sshd的行并显示在终端里.
-------------------------
linux系统中, 正常情况下, 每个程序启动后, 在进程列表中都能看到相对应的信息, 而对系统中进程信息的查看就是通过ps命令: 下面是我系统中ps -aux显示的进程信息的一部分:
可以看到进程信息很多, 如果系统里面运行的程序多了,可能会有上百行, 甚至更多, 此时我们只想看包含字符串sshd的行,则可以直接使用, ps -aux | grep sshd, 我系统上恰好就有sshd这个进程, 看下测试截图:
写在最后, 说简单些, grep命令就相同于一个过滤器, 从众多行中将符合条件的行给挑出来.
希望可以帮到题主,?欢迎追问
以上就是土嘎嘎小编为大家整理的linux命令aux相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!