『学了就忘』Linux系统管理 — 82、Linux中进程的查看(ps命令)
1、ps命令介绍
ps
命令是用来静态显示系统中进程的命令。
不过这个命令有些特殊,它部分命令的选项前不能加-
,比如命令ps aux
,其中aux
是选项,但是这个选项前不能加-
。
这是因为ps
命令的部分选项需要遵守BSD操作系统的格式,所以ps
命令的常用选项的组合是固定的。
命令如下:
# 查看系统中所有进程,使用BSD操作系统格式。
# aux选项组合是一个习惯用法。
[root@localhost ~]# ps aux
# 查看系统中所有进程,使用Linux标准命令格式。
[root@localhost ~]# ps -le
常用选项:
а:显示终端上的所有进程,包括其他用户的进程。
u:以用户为主的格式来显示程序状况。
x:显示所有程序,不以终端机来区分。
-l:长格式显示。显示更加详细的信息。
-е:显示所有进程,和-A作用一致
-h:不显示标题。
-f:全格式。
-w:宽输出。
2、ps aux命令示例
示例:查看系统中所有正在运行的进程。
[root@localhost ~]# ps -aux
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 19344 1548 ? Ss 08:41 0:02 /sbin/init
root 2 0.0 0.0 0 0 ? S 08:41 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S 08:41 0:00 [migration/0]
...省略...
如果aux
选项前面加了一个-
,就会出现一个行警告:
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
提示你有语法错误,多了一个-
。
但是之后显示的Linux系统进程的结果是正确的。
我们把aux
选项前面的-
去掉就可以了,如下:
[root@localhost ~]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 19344 1548 ? Ss 08:41 0:02 /sbin/init
root 2 0.0 0.0 0 0 ? S 08:41 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S 08:41 0:00 [migration/0]
...省略...
ps aux
命令输出项解释:
USER
:该进程是由哪个用户产生的。PID
:进程的ID号。%CPU
:该进程占用CPU资源的百分比,占用越高,进程越耗费资源。%MEM
:该进程占用物理内存的百分比,占用越高,进程越耗费资源。VSZ
:该进程占用虚拟内存的大小,单位KB。RSS
:该进程占用实际物理内存的大小,单位KB。TTY
:该进程是在哪个终端中运行的。
其中tty1-tty7
代表本地控制台终端(可以通过alt+F1-F7
键切换不同的终端),tty1-tty6
是本地的字符界面终端,tty7
是图形终端。
pts/0-255
代表虚拟终端,一般是远程连接的终端,第一个远程连接占用的是pts/0
终端,第二个远程连接占用pts/1
,依次增长。STAT
:进程状态。(点击链接,可查看文章中的进程状态介绍。https://www.cnblogs.com/liuyuelinfighting/p/15692465.html)START
:该进程的启动时间。TIME
:该进程占用CPU的运算时间,注意不是系统时间,时间越长证明该进程越耗资源。COMMAND
:产生此进程的命令名。
提示:
Linux系统中,用户的名称,文件的名称,包括进程的名称等,都是给用户看的。
Linux系统查找的时候,还是根据ID信息来进行查找。
说明:
我们可以看到
ps aux
命令的执行结果中,TTY输出项有的是?
,其实这些都是由Linux系统内核直接产生的进程,不需要终端来调用,也就没有运行终端的信息。
3、ps -le命令示例
示例:查看系统中所有正在运行的进程。
[root@localhost ~]# ps -le
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
4 S 0 1 0 0 80 0 - 4836 poll_s ? 00:00:02 init
1 S 0 2 0 0 80 0 - 0 kthrea ? 00:00:00 kthreadd
1 S 0 3 2 0 -40 - - 0 migrat ? 00:00:00 migration/0
...省略...
ps -le
命令输出项解释:
F
:进程标志,说明进程的权限。
常见的标志有:
1:进程可以复制,但是不能执行。
4:进程使用超级用户权限。S
:进程状态。具体的状态和ps aux
命令中STAT状态一致。UID
:进程是哪个UID用户调用运行的。PID
:进程的ID号。PPID
:父进程的ID号。C
:该进程的CPU使用率,单位是百分比。PRI
:进程的优先级,数值越小该进程优先级越高,越快被CPU执行。NI
:进程的优先级,也是数值越小越早被执行。ADDR
:该进程在内存的哪个位置。SZ
:该进程占用多大内存。WCHAN
:该进程是否运行。-
代表正在运行。TTY
:该进程由哪个终端产生的。TIME
:该进程占用CPU的运算时间,注意不是系统时间。CMD
:产生此进程的命令名(缩写)。
说明:
ps aux
命令和ps -le
命令,两个命令都是静态查看Linux系统所有正在运行的进程。具体用哪个命令,看自己的习惯。我比较习惯用
ps aux
命令查看Linux系统进程。如果要看产生此进程的命令名的全程,就需要用
ps aux
命令,有的时候会比较方便。
4、pstree命令
可以查看到进程之间依赖关系的,一个进程会依赖哪些进程。
pstree
命令也是查看Linux系统中进程的命令,是以树型关系方式展示的。
[root@localhost ~]# pstree [选项]
选项:
-p:显示进程的PID。
-u:显示进程的所属用户。
示例:
『学了就忘』Linux系统管理 — 82、Linux中进程的查看(ps命令)的更多相关文章
- 『学了就忘』Linux文件系统管理 — 59、使用fdisk命令进行手工分区
目录 1.手工分区前提 (1)要有一块新的硬盘 (2)在虚拟机中添加一块新硬盘 2.手工分区 (1)查看Linux系统所有硬盘及分区 (2)手工分区:详细步骤 (3)保存手工分区 3.硬盘格式化 4. ...
- 『学了就忘』Linux文件系统管理 — 60、Linux中配置自动挂载
目录 1.自动挂载 2.如何查询系统下每个分区的UUID 3.配置自动挂载 4./etc/fstab文件修复 上一篇文章我们说明了手动分区讲解,对一块新硬盘进行了手动分区和挂载. 但是我们发现重启系统 ...
- 『学了就忘』Linux文件系统管理 — 61、使用parted命令进行分区
目录 1.parted命令介绍 2.parted交互模式 3.建立分区 (1)查看分区 (2)修改成GPT分区表 (3)建立分区 (4)建立文件系统(格式化) (5)调整分区大小 (6)删除分区 1. ...
- 『学了就忘』Linux系统管理 — 83、Linux中进程的查看(top命令)
目录 1.top命令介绍 2.top命令示例 3.top命令输出项解释 4.top命令常用的实例 1.top命令介绍 top命令是用来动态显示系统中进程的命令. [root@localhost ~]# ...
- 『学了就忘』Linux系统管理 — 86、查看系统资源相关命令
目录 1.vmstat命令 2.dmesg命令 3.free命令 4.查看CPU信息 5.查看本机登陆用户信息 (1)w命令 (2)who命令 6.uptime命令 7.查看系统与内核相关信息 1.v ...
- 『学了就忘』Linux基础 — 1、UNIX系统介绍
目录 (一)UNIX系统介绍 1.UNIX系统发展历史 2.UNIX 主要发行版本 (二)GNU计划 1.GNU计划介绍 2.为何Stallman会发起这个GNU计划呢? 3.GNU的通用公共许可证: ...
- 『学了就忘』Linux基础 — 16、Linux系统与Windows系统的不同
目录 1.Linux严格区分大小写 2.Linux一切皆文件 3.Linux不靠扩展名区分文件类型 4.Linux中所有的存储设备都必须在挂载之后才能使用 5.Windows下的程序不能直接在Linu ...
- 『学了就忘』Linux基础命令 — 20、文件操作的相关命令
目录 1.touch 命令 2.stat命令 3.cat命令 4.more命令 5.less命令 6.head命令 7.tail命令 1.touch 命令 touch命令用于创建空文件或修改文件时间, ...
- 『学了就忘』Linux基础命令 — 26、帮助命令
目录 1.man命令 (1)man命令的快捷键 (2)man命令的帮助级别(了解即可) (3)man命令的使用 2.info命令 3.help命令 4.--help选项 1.man命令 man是最常见 ...
随机推荐
- 15-Transfer Learning
介绍 迁移学习指的就是,假设你手上有一些跟你现在要进行的task没有直接相关的data,那你能不能用这些没有直接相关的data来帮助我们做一些什么事情.比如说:你现在做的是猫跟狗的classifer, ...
- [bzoj5343]混合果汁
二分枚举答案,问题转化为计算至少取到一定体积,价格最少是多少,显然是贪心取最小,用线段树维护,然后因为要判断答案,所以可持久化一下即可. 1 #include<bits/stdc++.h> ...
- 史上最简单的手写Promise,仅17行代码即可实现Promise链式调用
Promise的使用相比大家已经孰能生巧了,我这里就不赘述了 先说说我写的Promise的问题吧,无法实现宏任务和微任务里的正确执行(也就是在Promise里面写setTimeout,setInter ...
- idea反编译失败 /* compiled code */的解决方法
最近在研究源码,但是我的idea有点奇怪,有的文件可以反编译,但有的文件反编译后方法内容是 /* compiled code */,查了下说是反编译失败了,都说是插件的原因. 然后我看了下idea的插 ...
- Windwos安装Node.js和npm的详细步骤
How to Install Node.js and NPM on Windows Node.js和npm 安装 Node.js 的时候会自动安装 npm ,并且 npm 就是 Node.js 的包管 ...
- ☕【Java深层系列】「技术盲区」让我们一起完全吃透针对于时间和日期相关的API指南
技术简介 java中的日期处理一直是个问题,没有很好的方式去处理,所以才有第三方框架的位置比如joda.文章主要对java日期处理的详解,用1.8可以不用joda. 时间概念 首先我们对一些基本的概念 ...
- Apache Kafka分布式流处理平台及大厂面试宝典v3.0.0
概述 **本人博客网站 **IT小神 www.itxiaoshen.com 定义 Apache Kafka官网地址 http://kafka.apache.org/ 最新版本为 3.0.0 Apach ...
- Codeforces 1422F - Boring Queries(树套树)
upd on 2021.9.5:昨天的那个版本被 2-tower 卡爆了,故今天重发一个. Codeforces 题面传送门 & 洛谷题面传送门 没往"每个数最多只有一个 \(> ...
- 集群SGE作业调度系统
目录 0. 一些基本概念 1. 常见的几种资源管理和调度系统 2. SGE常见指令 2.1 提交任务 2.2 查看任务 2.3 删除任务 2.4 挂起/恢复任务 2.5 更改任务属性 0. 一些基本概 ...
- lua_newthread的真正意义
lua_newthread 这个接口,存在误导性,很多人第一次试图用它来解决多线程问题时,都会入坑. 实际上,这个接口真正的用法,是给那些在lua更底层的某些行为(通常是递归)导致了lua的栈溢出而准 ...