简介
在Linux中,每个执行的程序我们都程它为一个进程,并且每个进程都会分配到一个pid(进程号),
其中进程又有前台进程和后台进程,前台进程就是我们用户在屏幕上可以操作的,后台进程就是屏幕上不会显示出来,在后台执行.那么我们如何去查看我们的Linux中进程的执行状况呢?就是通过ps命令.
常见命令
ps命令有很多选项,在这里我列举一些常用的.
- ps -aux:显示所有进程信息,包括其他用户的进程。
- ps -u username:显示指定用户的所有进程信息。
- ps -p pid:显示指定PID的进程信息。
- ps -aux --sort=-pcpu:按照CPU使用率降序排序进程信息。(如果需要升序)将等号后面的-改成+即可
- ps -ef :查看所有正在运行的进程
ps -aux是BSD风格,ps -ef是System V风格
ps -aux输出示例
这里输出第一行的字段是进程在该列的信息,
字段名 | 代表的信息 |
---|---|
USER | 用户名称 |
PID | 进程号 |
%CPU | 进程占用CPU的百分比 |
%MEN | 进程占用物理内存的百分比 |
VSZ | 进程占用的虚拟内存大小(单位:KB) |
RSS | 进程占用的物理内存大小(单位:KB) |
TTY | 该进程在哪个终端上运行。“?”表未知或不需要终端 |
STAT | 进程状态 |
START | 进程的启动时间 |
TIME | 进程占用CPU的时间 |
COMMAND | 启动该进程的命令和参数,如果过长会被截断显示 |
其中STAT中
- S代表睡眠
- s表示进程是会话的先导进程,即父进程
- N代表进程拥有比普通优先级更低的优先级
- Z代表僵死进程
- T代表进程被跟踪或被停止
- R代表正在运行
- D代表不可中断的僵死进程,即短期等待的进程
- <代表高优先级
ps -ef输出示例
当我们使用ps -aux 或者ps -ef时,会发现输出了很多很多,不利于找到我们需要的进程,这是我们需要配合管道符|和grep来使用
这里我将示例查找ssh服务 ps -aux | grep sshd
其中最后一条输出是我们正在查找ssh服务这条命令的进程
pstree
在查看进程时,如果我们想以树状图的形式显示运行中的进程,我们可以使用pstree命令,树状图的格式比ps命令更加直观.
pstree指令安装
一些Linux发行版中并没有安装pstree指令,此时我们需要安装该指令,我将在ubuntu中为大家演示.
首先打开我们的终端,在终端中输入 sudo apt - install psmisc
这就已经安装好了
之后在命令行中输入pstree即可查看树状显示的进程
这篇文章在后续会不断完善,有问题欢迎私信以便改正