每天一个Linux命令(36)ps命令
Linux中的ps命令是Process Status的缩写。
ps命令用于报告当前系统的进程状态。可以搭配kill指令随时中断、删除不必要的程序。
(1)用法:
用法: ps [选项参数] [用户名](可选)
(2)功能:
功能: 用来显示当前进程的状态。
ps命令可以搭配kill指令随时中断、删除不必要的程序。ps命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等,总之大部分信息都是可以通过执行该命令得到的。
(3)选项参数:
1) -A 显示所有的进程
2) -e 显示所有的进程,与-A参数一样
3) -u 显示指定用户的信息
4) -a 显示所有终端机下执行的进程,除了阶段作业领导者之外。
5) a 显示现行终端机下的所有进程,包括其他用户的进程。
6) -H 显示树状结构,表示程序间的相互关系。 -j或j:采用工作控制的格式显示程序状况。
(4)实例:
1)[root@localhost sunjimeng]# ps -e|more -20 显示所有的进程
[root@localhost sunjimeng]# ps -e|more -
PID TTY TIME CMD
? :: systemd
? :: kthreadd
? :: ksoftirqd/
? :: kworker/:0H
? :: migration/
? :: rcu_bh
? :: rcuob/
? :: rcuob/
? :: rcuob/
? :: rcuob/
? :: rcuob/
? :: rcuob/
? :: rcuob/
? :: rcuob/
? :: rcuob/
? :: rcuob/
? :: rcuob/
? :: rcuob/
? :: rcuob/
-A命令与-e命令相同,都可以显示所有进程
[root@localhost sunjimeng]# ps -A|more -
PID TTY TIME CMD
? :: systemd
? :: kthreadd
? :: ksoftirqd/
? :: kworker/:0H
? :: migration/
? :: rcu_bh
? :: rcuob/
? :: rcuob/
? :: rcuob/
--More--
2)[root@localhost sunjimeng]# ps -u root|more -10 显示指定用户的进程信息
[root@localhost sunjimeng]# ps -u root|more -
PID TTY TIME CMD
? :: systemd
? :: kthreadd
? :: ksoftirqd/
? :: kworker/:0H
? :: migration/
? :: rcu_bh
? :: rcuob/
? :: rcuob/
? :: rcuob/
3)[root@localhost sunjimeng]# ps a ps a命令与ps -a命令
[root@localhost sunjimeng]# ps a
PID TTY STAT TIME COMMAND
tty1 Ssl+ : /usr/bin/Xorg : -background none -verbose -auth /run/gdm/auth-for-gdm-8E54kT/database -seat seat0 -nolisten tcp
pts/ Ss : bash
pts/ S : su root
pts/ S : bash
pts/ R+ : ps a
[root@localhost sunjimeng]# ps -a
PID TTY TIME CMD
pts/ :: su
pts/ :: bash
pts/ :: ps
4)[root@localhost sunjimeng]# ps -ef|more -10 显示所有进程信息,连同命令行
[root@localhost sunjimeng]# ps -ef|more -
UID PID PPID C STIME TTY TIME CMD
root : ? :: /usr/lib/systemd/systemd --switched-root --system --deserialize
root : ? :: [kthreadd]
root : ? :: [ksoftirqd/]
root : ? :: [kworker/:0H]
root : ? :: [migration/]
root : ? :: [rcu_bh]
root : ? :: [rcuob/]
root : ? :: [rcuob/]
root : ? :: [rcuob/]
--More--
5)[root@localhost sunjimeng]# ps -ef|more -5 ps命令与grep命令结合起来查找指定的进程
[root@localhost sunjimeng]# ps -ef|more -
UID PID PPID C STIME TTY TIME CMD
root : ? :: /usr/lib/systemd/systemd --switched-root --system --deserialize
root : ? :: [kthreadd]
root : ? :: [ksoftirqd/]
root : ? :: [kworker/:0H]
[root@localhost sunjimeng]# ps -ef|grep kworker/:0H
root : ? :: [kworker/:0H]
root : pts/ :: grep --color=auto kworker/:0H
6)[root@localhost sunjimeng]# ps -l 将目前属于您自己这次登入的 PID 与相关信息列示出来
[root@localhost sunjimeng]# ps -l
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
S - wait pts/ :: su
S - wait pts/ :: bash
R - - pts/ :: ps
说明:
各相关信息的意义:
F 代表这个程序的旗标 (flag), 4 代表使用者为 super user
S 代表这个程序的状态 (STAT),关于各 STAT 的意义将在内文介绍
UID 程序被该 UID 所拥有
PID 就是这个程序的 ID !
PPID 则是其上级父程序的ID
C CPU 使用的资源百分比
PRI 这个是 Priority (优先执行序) 的缩写
NI 这个是 Nice 值
ADDR 这个是 kernel function,指出该程序在内存的那个部分。如果是个 running的程序,一般就是 "-"
SZ 使用掉的内存大小
WCHAN 目前这个程序是否正在运作当中,若为 - 表示正在运作
TTY 登入者的终端机位置
TIME 使用掉的 CPU 时间。
CMD 所下达的指令为何
在预设的情况下, ps 仅会列出与目前所在的 bash shell 有关的 PID 而已,所以, 当我使用 ps -l 的时候,只有三个 PID。
7)[root@localhost sunjimeng]# ps f 显示进程间的关系
UID PID PPID C STIME TTY TIME CMD
root : pts/ :: su root
root : pts/ :: bash
root : pts/ :: ps -f
[root@localhost sunjimeng]# ps f
PID TTY STAT TIME COMMAND
pts/ S : su root
pts/ S : \_ bash
pts/ R+ : \_ ps f
tty1 Ssl+ : /usr/bin/Xorg : -background none -verbose -auth /run/gdm/auth-for-gdm-8E54kT/database -seat seat0 -nolisten tcp
[root@localhost sunjimeng]#
8)root@localhost sunjimeng]# ps aux |more -10 列出目前所有的正在内存当中的程序
root@localhost sunjimeng]# ps aux |more -
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 0.0 0.3 ? Ss : : /usr/lib/systemd/systemd --switched-root --system --deserialize
root 0.0 0.0 ? S : : [kthreadd]
root 0.0 0.0 ? S : : [ksoftirqd/]
root 0.0 0.0 ? S< : : [kworker/:0H]
root 0.0 0.0 ? S : : [migration/]
root 0.0 0.0 ? S : : [rcu_bh]
root 0.0 0.0 ? S : : [rcuob/]
root 0.0 0.0 ? S : : [rcuob/]
root 0.0 0.0 ? S : : [rcuob/]
说明:
USER:该 process 属于哪一个个使用者账号的
PID :该 process 的号码
%CPU:该 process 使用掉的 CPU 资源百分比
%MEM:该 process 所占用的物理内存百分比
VSZ :该 process 使用掉的虚拟内存量 (Kbytes)
RSS :该 process 占用的固定的内存量 (Kbytes)
TTY :该 process 是在那个终端机上面运作,若与终端机无关,则显示 ?,另外, tty1-tty6 是本机上面的登入者程序,若为 pts/0 等等的,则表示为由网络连接进主机的程序。
STAT:该程序目前的状态,主要的状态有
R :该程序目前正在运作,或者是可被运作
S :该程序目前正在睡眠当中 (可说是 idle 状态),但可被某些讯号 (signal) 唤醒。
T :该程序目前正在侦测或者是停止了
Z :该程序应该已经终止,但是其父程序却无法正常的终止他,造成 zombie (疆尸) 程序的状态
START:该 process 被触发启动的时间
TIME :该 process 实际使用 CPU 运作的时间
COMMAND:该程序的实际指令
9)[root@localhost sunjimeng]# ps -axjf|more -10 列出类似程序树的程序显示
[root@localhost sunjimeng]# ps -axjf|more -
PPID PID PGID SID TTY TPGID STAT UID TIME COMMAND
? - S : [kthreadd]
? - S : \_ [ksoftirqd/]
? - S< : \_ [kworker/:0H]
? - S : \_ [migration/]
? - S : \_ [rcu_bh]
? - S : \_ [rcuob/]
? - S : \_ [rcuob/]
? - S : \_ [rcuob/]
? - S : \_ [rcuob/]
最新文章
- zookeeper的zoo.cfg的配置
- 数据获取以及处理Beta版本展示
- 回文串---吉哥系列故事——完美队形II
- BZOJ3834 : [Poi2014]Solar Panels
- 笔记:ASP.NET MVC安全
- iOS下使用sqlite3
- 配置iSCSI
- Five ways to maximize Java NIO and NIO.2--reference
- ISO7816协议的几个关键时间特性
- mysql 查询大量数据内存溢出
- sizeof用法
- 编译gRPC
- Azkaban 2.5.0 搭建和一些小问题
- 微信公众平台开发者中心服务器配置Token验证失败问题
- 用python-webdriver实现自动填表
- 基于Anaconda安装tensorflow-GPU和caffe-GPU
- ubuntu 16.04 下安装NVDIA的库(CUDA+CUDNN)
- Linux IPC基础(System V)
- long数值 转换为时间
- PostgreSQL数据库单机扩展为流复制