zoukankan      html  css  js  c++  java
  • 三分钟速学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将无法访问到
    

    在这里插入图片描述

  • 相关阅读:
    QComboBox实现复选功能
    STL容器介绍
    QTableWidget控件总结
    (转)QT常用快捷键
    Hibernate的CRUD
    理解O/R Mapping
    JQuery验证input
    MapReduce概念(转)
    RedHat9上安装jdk
    集合框架
  • 原文地址:https://www.cnblogs.com/tianyao2020/p/12855604.html
Copyright © 2011-2022 走看看