三分钟速学linux-进程管理命令

在这里插入图片描述
环境说明:
博客使用的linux版本:CentOS Linux release 7.7.1908 (Core)
终端语言调整:调整成汉语是为了方便学习,点击这里查看

一、ps -显示进程状态

  1. ps命令简介:
    ps命令是最基本命令,使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等,总之大部分信息都是可以通过执行该命令得到的。
  2. 语法格式:ps [参数]
  3. 常用参数:
参数 含义
-a 显示所有终端机下执行的程序,除了阶段作业领导者之外
a 显示现行终端机下的所有程序,包括其他用户的程序
-A 显示所有程序
-c 显示CLS和PRI栏位
c 列出程序时,显示每个程序真正的指令名称,而不包含路径,选项或常驻服务的标示
-C <指令名称> 指定执行指令的名称,并列出该指令的程序的状况
-d 显示所有程序,但不包括阶段作业领导者的程序
-e 此选项的效果和指定”A”选项相同
e 列出程序时,显示每个程序所使用的环境变量
-f 显示UID,PPIP,C与STIME栏位
f 用ASCII字符显示树状结构,表达程序间的相互关系
g 显示现行终端机下的所有程序,包括群组领导者的程序
-G <群组识别码> 列出属于该群组的程序的状况,也可使用群组名称来指定
h 不显示标题列
-H 显示树状结构,表示程序间的相互关系
-j或j 采用工作控制的格式显示程序状况
-l或l 采用详细的格式来显示程序状况
L 列出栏位的相关信息
-m或m 显示所有的执行绪
n 以数字来表示USER和WCHAN栏位
-N 显示所有的程序,除了执行ps指令终端机下的程序之外
-p <程序识别码> 指定程序识别码,并列出该程序的状况
p <程序识别码> 此选项的效果和指定”-p”选项相同,只在列表格式方面稍有差异
r 只列出现行终端机正在执行中的程序
-s <阶段作业> 指定阶段作业的程序识别码,并列出隶属该阶段作业的程序的状况
s 采用程序信号的格式显示程序状况
S 列出程序时,包括已中断的子程序资料
-t <终端机编号> 指定终端机编号,并列出属于该终端机的程序的状况
-T 显示现行终端机下的所有程序
u 以用户为主的格式来显示程序状况
-U <用户识别码> 列出属于该用户的程序的状况,也可使用用户名称来指定
U <用户名称> 列出属于该用户的程序的状况
v 采用虚拟内存的格式显示程序状况
-V或V 显示版本信息
-w或w 采用宽阔的格式来显示程序状况
x 显示所有程序,不以终端机来区分
-y 配合选项”-l”使用时,不显示F(flag)栏位,并以RSS栏位取代ADDR栏位

注意: ps参数众多,使用频率相当高,请参看cman
4. 应用实例:
-把所有进程显示出来,并输出到ps.txt文件
ps -aux > ps.txt
在这里插入图片描述

  • 查找指定进程信息
    ps -ef | grep nginx
    ps -aux | grep nginx
    在这里插入图片描述
  • 按 CPU \内存资源的使用量对进程进行排序:
ps aux | sort -nk 3
ps aux | sort -rnk 4 
#从左往右依次排序,数字代表第几个
#USER    PID %CPU %MEM   VSZ  RSS TTY    STAT START  TIME COMMAND

二、pstree - 以树状图显示进程

  1. pstree简介:
    树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root),如果有指定使用者 id,则树状图会只显示该使用者所拥有的行程。

  2. 语法格式: pstree [参数]

  3. 常用参数

参数 含义
-a 显示每个程序的完整指令,包含路径,参数或是常驻服务的标示
-c 不使用精简标示法
-G 使用VT100终端机的列绘图字符
-h 列出树状图时,特别标明现在执行的程序
  1. 应用实例
  • 显示当前所有进程的进程号和进程id,并表示正在执行的程序
    pstree -hp
  • 显示所有进程的所有详细信息,:
    pstree -a

三、pidof - 返回运行程序的进程ID

  1. pidof命令简介:
    用于检索指定的命令,返回相应的进程ID。其中program是一个或多个命令或进程的名字。当需要终止某个进程时,传统的做法是利用ps命令列出所有的进程,使用grep命令选出目标进程,然后使用kill命令终止进程。
    利用pidof命令,可以省略ps与grep组合命令,直接把指定命令的进程ID写入到标准输出。

  2. 语法格式:pidof [参数]

  3. 常用参数:

参数 含义
-s 当系统中存在多个同名进程时,仅返回一个进程ID
-c 仅返回当前正在运行且具有同一根目录的进程PID
-x 返回指定运行脚本的shell进程PID
-o 忽略具有指定进程ID的进程
  1. 应用实例
    这个命令使用非常简单
    返回nginx的进程pid
    pidof nginx

四、 pgrep命令 – 用于检索当前正在运行的进程

  1. pgrep命令简介:
    pgrep命令就是检索正在运行的进程,显示匹配准则是进程的PID,可跟正则表达式来匹配进程或命令行。
    选择进程拥有者时,默认匹配规则是逻辑与的关系。
  2. 语法格式:pgrep [参数] [模式]
  3. 常用参数:
参数 含义
-d 设置一个字符串,用于分隔输出的每个进程ID
-f 模式参数仅用于匹配进程名
-I 列出进程名及进程ID
-P 仅选择匹配指定父进程ID的进程
-u 选择仅匹配指定有效用户ID进程
-U 选择仅匹配指定真实用户ID的进程
  1. 参考实例:
  • 查询用户nginx进程的PID:
pgrep  nginx

在这里插入图片描述

五、top命令 – 实时显示进程动态

  1. top命令简介:
  • top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,常用于服务端性能分析。
  • 在top命令中按f按可以查看显示的列信息,按对应字母来开启/关闭列,大写字母表示开启,小写字母表示关闭。带*号的是默认列。
    2.语法格式:top【参数】
    3.常用参数:
参数 含义
-d 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s
-q 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行
-c 切换显示模式
-s 安全模式,将交谈式指令取消, 避免潜在的危机
-i 不显示任何闲置 (idle) 或无用 (zombie) 的行程
-n 更新的次数,完成后将会退出 top
-b 批次档模式,搭配 “n” 参数一起使用,可以用来将 top 的结果输出到档案内

4.使用实例

  • 显示进程完整信息,设置更新次数为 10
    top -c -n 10

六、lsof - 查看进程文件

  1. 简介:(非基本命令也需要安装)
    lsof命令用于查看进程开打的文件,打开文件的进程,进程打开的端口(TCP、UDP)。找回/恢复删除的文件。是十分方便的系统监视工具,因为lsof命令需要访问核心内存和各种文件,所以需要root用户执行。
  2. 语法格式:lsof [参数] [文件]
  3. 常用参数
参数 含义
-a 列出打开文件存在的进程
-c <进程名> 列出指定进程所打开的文件
-g 列出GID号进程详情
-d <文件号> 列出占用该文件号的进程
+d <目录> 列出目录下被打开的文件
+D <目录> 递归列出目录下被打开的文件
-n <目录> 列出使用NFS的文件
-i <条件> 列出符合条件的进程
-p <进程号> 列出指定进程号所打开的文件
-u 列出UID号进程详情
-h 显示帮助信息
-v 显示版本信息
  1. 应用实例
  • 递归列出目录下被打开的文件,并显示gid详情
lsof -g +D /etc/nginx

七、fuser – 使用文件或文件结构识别进程

  1. fuser命令简介:
    命令是报告进程使用的文件和网络套接字。fuser命令可以显示出当前哪个程序在使用磁盘上的某个文件、挂载点、甚至网络端口,并给出程序进程的详细信息。 它还显示使用指定文件或者文件系统的进程ID。
  2. 语法格式: fuser [参数] [文件]
  3. 常用参数:
参数 含义
-a 显示命令行中指定的所有文件
-k 杀死访问指定文件的所有进程
-i 杀死进程前需要用户进行确认
-l 列出所有已知信号名
-m 指定一个被加载的文件系统或一个被加载的块设备
-n 选择不同的名称空间
-u 在每个进程后显示所属的用户名
  1. 应用实例:
  • 列出使用/*文件的本地进程的进程号:
    fuser /*
    -终止使用给定的文件系统的所有进程
    fuser -k -x -u -c /dev/hd1
  1. 补充:进程号后的字母含义
字母 含义
c 指示进程的工作目录。
e 指示该文件为进程的可执行文件(即进程由该文件拉起)。
f 指示该文件被进程打开,默认情况下f字符不显示。
F 指示该文件被进程打开进行写入,默认情况下F字符不显示。
r 指示该目录为进程的根目录。
m 指示进程使用该文件进行内存映射,抑或该文件为共享库文件,被进程映射进内存

八、kill - 杀死进程

  1. kill命令简介:
    kill命令可将指定的信号发送给相应的进程或工作。 kill命令默认使用信号为15,用于结束进程或工作。如果进程或工作忽略此信号,则可以使用信号9,强制杀死进程或作业。
  2. 语法格式:kill [参数] [进程号]
  3. 常用参数
参数 含义
-l 列出系统支持的信号
-s 指定向进程发送的信号
-a 处理当前进程时不限制命令名和进程号的对应关系
-p 指定kill命令只打印相关进程的进程号,而不发送任何信号
  1. 使用实例
  • 杀掉nginx所有进程
pgrep nginx
kill -9 1277
kill -9 1278
kill -9 1279
#进程杀掉后浏览器访问ip将无法访问到

在这里插入图片描述

posted @ 2020-04-30 23:05  ASQW234  阅读(138)  评论(0编辑  收藏  举报