文章目录

  • 一、进程及其命令介绍
    • 1.1 什么是进程
    • 1.2 进程的特征
  • 二、进程管理的相关命令
    • 2.1 ps命令
    • 2.2 top命令
    • 2.3 pgrep命令
    • 2.4 pstree命令
    • 2.5 lsof命令
    • 2.6 kill命令
    • 2.7 killall命令
    • 2.8 pkill命令
    • 2.9 进程启动方式
    • 2.10 at命令
    • 2.11 crontab命令

一、进程及其命令介绍

1.1 什么是进程

要想了解进程,首先我们要了解什么是程序。

程序是一组计算机能识别和执行的指令,运行于电子计算机上,满足人们某种需求的信息化工具;而进程则是运行中的程序的一个副本,是被载入内存的一个指令集合,是资源分配的单位。

在Linux系统中:

  • 进程ID(Process ID,PID)号码被用来标记各个进程
  • UID、GID、和SELinux语境决定对文件系统的存取和访问权限
  • 通常从执行进程的用户来继承
  • 存在生命周期
  • 由其父进程创建

1.2 进程的特征

  • 动态性:进程是程序的一次执行过程是临时的,有生命期的,是动态产生,动态消亡的
  • 并发性:任何进程都可以同其他进程一起并发执行
  • 独立性:进程是系统进行资源分配和调度一个独立单位
  • 结构性:进程由程序、数据和进程控制块三部分组成

二、进程管理的相关命令

2.1 ps命令

ps,全称 process state,进程状态。

ps可以查看进程当前状态,默认显示当前终端中的进程,Linux系统各进程的相关信息均保存在 /proc/pid号 下的各文件中。

格式:ps [选项]

选项 作用
a 显示当前终端下的所有进程信息,包括其他用户的进程,与“x”选项结合时将示系统中所有的进程信息
u 使用以用户为主的格式输出进程信息
x 显示当前用户在所有终端下的进程信息
-l 使用长格式显示进程信息
-e 显示系统内的所有进程信息
-f 使用完整的格式显示进程信
  • ps aux(可以查看系统中的所有进程)

  1. USER:进程的属主
  2. PID:进程号
  3. %CPU:进程所占CPU的百分比
  4. %MEM:进程所占物理内存的百分比
  5. VSZ:进程所占用的虚拟内存的大小
  6. RSS:进程所占用的物理内存的大小
  7. TTY:进程是在哪个终端运行的;tty1 ~ tty7 代表本地控制台终端(可以通过 Alt+F1 ~ F7 快捷键切换不同的终端),tty1~tty6 是本地的字符界面终端tty7 是图形终端pts/0 ~ 255 代表虚拟终端一般是远程连接的终端,第一个远程连接占用 pts/0,第二个远程连接占用 pts/1,依次増长
  8. STAT:进程的状态;D为不可被唤醒的睡眠状态,通常用于 I/O ;R为该进程正在运行S为该进程处于睡眠状态,可被唤醒T为停止状态,可能是在后台暂停或进程处于除错状态;Z为僵尸进程,进程已经中止,但是还是占用硬件资源;X为死掉的进程< 为高优先级N为低优先级L为被锁入内存s 为包含子进程l 为多线程+为位于后台
  9. START:进程的启动时间
    10.TIME:进程占用CPU的运算时间
    COMMAND:产生该进程的命令
  • ps -le(查看系统中所有的进程)
    (注:不仅可以查看系统中所有的进程,而且还能看到进程的父进程的 PID 和进程优先级)

  1. F:进程标志,说明进程的权限,常见的标志有两个: 1:进程可以被复制,但是不能被执行;4:进程使用超级用户权限
  2. S:进程状态。具体的状态和 ps aux 命令中的 STAT 状态一致
  3. UID:运行此进程的用户的 ID
  4. PID:进程号
  5. PPID:进程号
  6. C:进程的CPU使用率,单位为百分比
  7. PRI:进程的优先级,数值越小,该进程的优先级越高,越早被 CPU 执行系统定义不可以人为修改
  8. NI:进程的优先级,数值越小,该进程越早被执行可以人为修改
  9. ADDR:该进程在内存的哪个位置
  10. SZ:该进程占用多大内存
  11. WCHAN:该进程是否运行;- 代表正在运行
  12. TTY:该进程由哪个终端产生
  13. TIME:该进程占用 CPU 的运算时间注意不是系统时间
  14. CMD:产生此进程的命令名

PRI(最终的值)= PRI(不可变)+ NI(可变)

修改 NI 的值就可以改变进程的优先级NI 值越小,进程的 PRI 就会降低,该进程就越优先被 CPU 处理反之,NI 值越大,进程的 PRI 值就会増加,该进程就越靠后被 CPU 处理

修改 NI 值时有几个注意事项:

  • NI 范围是 -20~19
  • 普通用户调整 NI 值的范围是 0~19,而且只能调整自己的进程
  • 普通用户只能调高 NI 值,而不能降低。如原本 NI 值为 0,则只能调整为大于 0。
  • 只有 root 用户才能设定进程 NI 值为负值,而且可以调整任何用户的进程

2.2 top命令

top 命令可以动态地持续监听进程地运行状态,与此同时,该命令还提供了一个交互界面,用户可以根据需要,人性化地定制自己的输出,进而更清楚地了进程的运行状态。

格式:top [选项]

选项 作用
-d 秒数 指定 top 命令每隔几秒更新,默认是 3 秒
-b 使用批处理模式输出,一般和 -n 选项合用,用于把 top 命令重定向到文件中
-n 次数 指定 top 命令执行的次数
-p PID 仅查看指定 ID 的进程
-s 使 top 命令在安全模式中运行,避免在交互模式中出现错误
-u 用户名 只监听某个用户的进程


第一行:

  1. 17:34:54:当前系统时间
  2. up 6 min:系统已经运行的时间,我现在运行了6分钟
  3. 1 user:当前登录了1个用户
  4. load average:0.00 0.14 0.12:系统在之前的1 分钟、5 分钟、15 分钟的平均负载

第二行为进程信息:

  1. 118 total:系统中的进程总数,当前为118个
  2. 1 running: 正在运行的进程数,当前为1个
  3. 117 sleeping:睡眠的进程数,当前为117个
  4. 0 stopped:正在停止的进程数,当前为0个
  5. 0 zembie:僵尸进程数,当前为0个。如果不是 0,则需要手工检查僵尸进程

第三行为CPU信息

  1. 0.0 us :用户模式占用的 CPU 百分比
  2. 0.2 sy:系统模式占用的 CPU 百分比
  3. 0.0 ni: 改变过优先级的用户进程占用的 CPU 百分比
  4. 99.8 id:空闲 CPU 占用的 CPU 百分比
  5. 0.0 wa:等待输入/输出的进程占用的 CPU 百分比
  6. 0.0 hi:硬中断请求服务占用的 CPU 百分比
  7. 0.0 si:软中断请求服务占用的 CPU 百分比
  8. 0.0 st:st(steal time)意为虚拟时间百分比,就是当有虚拟机时,虚拟 CPU 等待实际 CPU 的时间百分比

第四行为物理内存信息

  1. 1867048 total:物理内存的总量,单位为KB
  2. 1507208 free:己经使用的物理内存数量
  3. 156752 used:空闲的物理内存数量
  4. 203088 buff/cache:作为缓冲的内存数量

第五行为交换分区(swap)信息:

  1. 4194300 total:交换分区(虚拟内存)的总大小
  2. 4194300 free:空闲交换分区的大小
  3. 0 used:已经使用的交换分区的大小
  4. 1531116 avail Mem:可用内存大小

  • PID:进程的 ID。
  • USER:该进程所属的用户。
  • PR:优先级,数值越小优先级越高。
  • NI:优先级,数值越小、优先级越高。
  • VIRT:该进程使用的虚拟内存的大小,单位为 KB。
  • RES:该进程使用的物理内存的大小,单位为 KB。
  • SHR:共享内存大小,单位为 KB。
  • S:进程状态。
  • %CPU:该进程占用 CPU 的百分比。
  • %MEM:该进程占用内存的百分比。
  • TIME+:该进程共占用的 CPU 时间。
  • COMMAND:进程的命令名。

2.3 pgrep命令

pgrep命令用来查看指定的进程。

格式:pgrep [选项] 参数

选项 作用
-U 指定用户
**-l ** 显示进程名
-a 显示完整格式的进程名
-P pid 显示指定进程的子进程



2.4 pstree命令

pstree命令用于以树形结构列出进程信息

格式:pstree [选项] [pid/进程名]

选项 作用
-a 显示启动每个进程对应的完整指令,包括启动进程的路径、参数等
-p 显示pid
-T 不显示线程thread,默认显示线程
-u 显示用户切换
-H pid 高亮显示指定进程及其前辈进程



2.5 lsof命令

lsof,全称 list opened files,列举系统中已经被打开的文件。

通过 lsof 命令,我们就可以根据文件找到对应的进程信息,也可以根据进程信息找到进程打开的文件。

格式:lsof [选项]

选项 作用
-c 字符串 只列出以字符串开头的进程打开的文件
+d 目录名 列出某个目录中所有被进程调用的文件
-u 用户名 只列出某个用户的进程打开的文件
-p pid 列出某个 PID 进程打开的文件

2.6 kill命令

kill,杀死,在Linux中用来干掉某个进程。实际上,kill 命令只是用来向进程发送一个信号,至于这个信号是什么,是用户指定的。

格式:kill [-信号] pid

信号 作用
0 程序退出时收到该信息
1 挂掉电话线或终端连接的挂起信号,这个信号也会造成某些进程在没有终止的情况下重新初始化
2 表示结束进程,但并不是强制性的,常用的 “Ctrl+C” 组合键发出就是一个 kill -2 的信号
3 退出
9 杀死进程,即强制结束进程
11 段错误
15 正常结束进程,是 kill 的默认信号,即 kill 不加信号

2.7 killall命令

killall 也是用于关闭进程的一个命令,但和 kill 不同的是,killall 命令不再依靠 PID 来杀死单个进程,而是通过程序的进程名来杀死一类进程,也正是由于这一点,该命令常与 ps、pstree 等命令配合使用

格式:killall [选项] [信号] 进程名

选项 作用
-i 人机交互,杀死进程前询问
-I 忽略进程的大小写



(注:工作中千万不要乱杀某些服务进程,不然轻则跑断腿,重则跑路)

2.8 pkill命令

当作于管理进程时,pkill 命令和 killall 命令的用法相同,都是通过进程名杀死一类进程,通过 killall 命令杀死 sshd 进程的方式来踢出用户,非常容易误杀死进程,要么会把 sshd 服务杀死,要么会把自己的登录终端杀死。

不管是使用 kill 命令按照 PID 杀死登录进程,还是使用 killall 命令按照进程名杀死登录进程,都是非常容易误杀死进程的,而使用 pkill 命令则不会

格式:pkill [-信号] 进程名

信号 作用
0 程序退出时收到该信息
1 挂掉电话线或终端连接的挂起信号,这个信号也会造成某些进程在没有终止的情况下重新初始化
2 表示结束进程,但并不是强制性的,常用的 “Ctrl+C” 组合键发出就是一个 kill -2 的信号
3 退出
9 杀死进程,即强制结束进程
11 段错误
15 正常结束进程,是 kill 的默认信号,即 kill 不加信号

pkill命令踢出登陆用户

  pkill [-t 终端号] 进程名  -U:根据进程所属的用户名终止相应进程-t:根据进程所在的终端终止相应进程

2.9 进程启动方式

进程启动方式有两种,一是前台启动,就是我们日常输入命令后执行,如果执行的是下载或者拷贝一些超大的文件,在此期间,我们是不能进行其他操作的;二是后台启动,就是在前台启动的命令后面加上加上空格&后台启动的任务是挂起在后台的,在此期间,我们可以进行其他的操作

ctrl+z:前台执行某些命令时,按 ctrl+z,可以暂停任务


bg [序号]:可以从新开始停止的服务

fg [序号]:将后台任务转为前台

2.10 at命令

at用于执行一次性任务,只执行一次

格式:at [选项] [时间]

时间格式:HH:MM YYYY-MM-DD

2.11 crontab命令

crontab命令用于执行重复式的命令,比如每周一都进行备份,就可以使用crontab命令,而不需要每周一都手动备份。

格式:crontab [选项] [文件]

选项 作用
-e 编辑某个用户的 crontab 文件内容。如果不指定用户,则表示编辑当前用户的 crontab 文件
-u user 用来设定某个用户的 crontab 服务,例如 “-u demo” 表示设备 demo 用户的 crontab 服务,此选项一般有 root 用户来运行
-l 显示某用户的 crontab 文件内容,如果不指定用户,则表示显示当前用户的 crontab 文件内容
-r 从 /var/spool/cron 删除某用户的 crontab 文件,如果不指定用户,则默认删除当前用户的 crontab 文件
-i 在删除用户的 crontab 文件时,给确认提示

在书写 crontab 定时任务时,需要注意以下几个事项:

  • 6 个选项都不能为空,必须填写。如果不确定,则使用 * 代表任意时间。
  • crontab 定时任务的最小有效时间是分钟,最大有效时间是月。像 2018 年某时执行、3 点 30 分 30 秒这样的时间都不能被识别。
  • 在定义时间时,日期和星期最好不要在一条定时任务中出现,因为它们都以天为单位,非常容易让管理员混淆。
  • 在定时任务中,不管是直接写命令,还是在脚本中写命令,最好都使用绝对路径。有时使用相对路径的命令会报错。

crontab -e 进入crontab编辑页面(vim编辑)

格式为:* * * * * 执行的任务

项目 含义 范围
第一个 * 一小时当中的第几分钟(minute) 0-59
第二个 * 一天当中的第几小时(hour) 0-23
第三个 * 一个月当中的第几天(day) 1-31
第四个 * 一年当中的第几个月(month) 1-12
第五个 * 一周当中的星期几(week) 0-7(0和7都表示星期天)

在时间表示中,还有一些特殊符号

特殊符号 含义
* (星号) 代表任何时间。比如第一个"*"就代表一小时种每分钟都执行一次的意思
,(逗号) 代表不连续的时间。比如 0 8,12,16 * * * 就代表在每天的 8 点 0 分、12 点 0 分、16 点 0 分都执行一次命令
- (减号) 代表连续的时间范围。比如 0 5 * * 1-6 代表在周一到周六的凌晨 5 点 0 分执行命令
/(正斜杠) 代表每隔多久执行一次。比如 */10 * * * * 代表每隔 10 分钟就执行一次命令

Linux中的进程和计划任务相关推荐

  1. 搞它!!!Linux系统中查看进程和计划任务管理

    文章目录 首先我们了解一下程序和进程的关系: 一.查看进程 1.查看静态的进程统计信息(ps) 2.查看静态的进程统计信息(top) 3.pgrep命令(查询进程信息) 4.pstree命令(查看进程 ...

  2. Linux系统中查看进程和计划任务管理

     各位小伙伴们大家好,本次给大家带来的是Linux操作系统中的进程和计划任务的管理,首先大家都知道程序是保存在外部存储介质(如硬盘.光盘)中的可执行机器代码和数据的静态集合,而进程是在CPU及内存中 ...

  3. linux一号进程和二号进程,Linux系统管理10——进程和计划任务管理(示例代码)

    Linux系统管理10--进程和计划任务管理 一.程序和进程的关系 1.程序 ·保存在硬盘.光盘等介质中的可执行代码和数据 ·静态保存的代码 2.进程 ·在CPU及内存中运行的程序代码 ·动态执行的代 ...

  4. 专业介绍Linux中的进程管理

    Linux中的进程管理 1.什么是进程? 1)进程就是系统中处于执行期的工作. 对于[执行]两个字需要作出特别解释:执行并不同于运行,因为系统中的进程的状态大概分为四种: 进程状态 R(Running ...

  5. Linux中的进程创建函数fork

    为什么80%的码农都做不了架构师?>>>    Linux中的进程通过fork创建,并通过exec执行,分为两步. 在Linux中所有的进程都是pid为1的init进程的子进程,内核 ...

  6. linux:进程占用的端口,在linux中查看进程占用的端口号

    在Linux 上的 /etc/services 文件可以查看到更多关于保留端口的信息. 可以使用以下六种方法查看端口信息. ss:可以用于转储套接字统计信息. netstat:可以显示打开的套接字列表 ...

  7. Linux两个进程交换信息,如何在Linux中的进程之间交换二进制数据

    我需要创建一个可以进行无线网络扫描的linux应用程序,将结果放入一个结构中并以某种方式将其发送到另一个将使用该数据的主应用程序.我最初的想法是在主应用程序中创建一个管道,fork并通过execl启动 ...

  8. linux如何检查进程,如何在Linux中检查进程的执行时间

    在Linux或Unix系统中,你是否一直想知道如何找到进程的执行时间? 本指南将向你展示一些在Linux中查找进程执行时间时非常方便的工具. 本指南中显示的每个命令都已在Ubuntu服务器上和Cent ...

  9. Linux无法终止进程,如何在Linux中终止进程

    您是否曾经遇到过启动应用程序,而在使用该应用程序时突然变得无响应并意外崩溃的情况?您尝试再次启动该应用程序,但没有任何反应,因为原始应用程序进程从未真正完全关闭. 好吧,这件事发生在我们所有人身上,不 ...

最新文章

  1. java i o不会的地方_Java I/O 好复杂,傻傻分不清楚,别担心,我们有线索了。。。...
  2. Case study:数据库网页构建原理和实践
  3. sql多条件查询语句
  4. 使用sizeof计算类的大小
  5. Serverless 技术选型
  6. CF827F-Dirty Arkady‘s Kitchen【堆】
  7. 关于ElasticSearch处理过滤条件
  8. Python实现微信朋友签名云图项目
  9. 图解算法之排序算法(5)——归并排序
  10. HDU1465 不容易系列之一【递推】
  11. jboss:在standalone.xml中设置系统属性(system-properties)
  12. 六度空间理论(小世界理论)否定了结构洞的存在
  13. Android下图片清晰度识别
  14. matlab中与或非、等逻辑符号
  15. [译]关于Android图形系统的一些事实真相
  16. 显示器不亮电源灯闪_电脑开机显示器指示灯一闪一闪的屏幕就是不亮
  17. 怎样用CSS画一个三角形
  18. 大学计算机作业互评评语简短,同学作业互评评语
  19. 优秀的html布局,优秀的网页设计中常见的六大布局
  20. Google服务和软件大全

热门文章

  1. 电影票预订系统(Java+MySQL实现)C/S模式
  2. 工信部就骚扰电话管控不力问题约谈中国电信
  3. matlab ode45画延时,ode45求解微分方程并画图
  4. 监控储存服务器系统,监控储存服务器系统
  5. 人工智能的薪资怎么样?想学人工智能了?
  6. Android60运行时权限处理完全解析(转载)
  7. 图解HIVE累积型快照事实表
  8. 常说的一区二区含义是什么?
  9. switchOmega配置
  10. python驱动级模拟按键_Python实现windows下模拟按键和鼠标点击的方法