一、进程及其命令介绍
1.1 什么是进程 要想了解进程,首先我们要了解什么是程序。
程序是一组计算机能识别和执行的指令,运行于电子计算机上,满足人们某种需求的信息化工具;而进程则是运行中的程序的一个副本,是被载入内存的一个指令集合,是资源分配的单位。
在Linux系统中:
进程ID(Process ID,PID)号码被用来标记各个进程 UID、GID、和SELinux语境决定对文件系统的存取和访问权限 通常从执行进程的用户来继承 存在生命周期 都由其父进程创建
1.2 进程的特征
- 动态性:进程是程序的一次执行过程,是临时的,有生命期的,是动态产生,动态消亡的
- 并发性:任何进程都可以同其他进程一起并发执行
- 独立性:进程是系统进行资源分配和调度的一个独立单位
- 结构性:进程由程序、数据和进程控制块三部分组成
二、进程管理的相关命令
2.1 ps命令
ps,全称 process state,进程状态。
ps可以查看进程当前状态,默认显示当前终端中的进程,Linux系统各进程的相关信息均保存在 /proc/pid号 下的各文件中。
ps aux(可以查看系统中的所有进程)
USER:进程的属主
PID:进程号
%CPU:进程所占CPU的百分比
%MEM:进程所占物理内存的百分比
VSZ:进程所占用的虚拟内存的大小
RSS:进程所占用的物理内存的大小
TTY:进程是在哪个终端运行的;tty1 ~ tty7 代表本地控制台终端(可以通过 Alt+F1 ~ F7 快捷键切换不同的终端),tty1~tty6 是本地的字符界面终端,tty7 是图形终端。pts/0 ~ 255 代表虚拟终端,一般是远程连接的终端,第一个远程连接占用 pts/0,第二个远程连接占用
pts/1,依次増长
STAT:进程的状态;D为不可被唤醒的睡眠状态,通常用于 I/O ;R为该进程正在运行;S为该进程处于睡眠状态,可被唤醒;T为停止状态,可能是在后台暂停或进程处于除错状态;Z为僵尸进程,进程已经中止,但是还是占用硬件资源;X为死掉的进程;< 为高优先级;N为低优先级;L为被锁入内存; s 为包含子进程;l 为多线程;+为位于后台
START:进程的启动时间
10.TIME:进程占用CPU的运算时间
COMMAND:产生该进程的命令
ps -le(查看系统中所有的进程)
(注:不仅可以查看系统中所有的进程,而且还能看到进程的父进程的 PID 和进程优先级)
F:进程标志,说明进程的权限,常见的标志有两个: 1:进程可以被复制,但是不能被执行;4:进程使用超级用户权限
S:进程状态。具体的状态和 ps aux 命令中的 STAT 状态一致
UID:运行此进程的用户的 ID
PID:进程号
PPID:父进程号
C:进程的CPU使用率,单位为百分比
PRI:进程的优先级,数值越小,该进程的优先级越高,越早被 CPU 执行;系统定义不可以人为修改
NI:进程的优先级,数值越小,该进程越早被执行;可以人为修改
ADDR:该进程在内存的哪个位置
SZ:该进程占用多大内存
WCHAN:该进程是否运行;- 代表正在运行
TTY:该进程由哪个终端产生
TIME:该进程占用 CPU 的运算时间,注意不是系统时间
CMD:产生此进程的命令名
2.2 top命令
top 命令可以动态地持续监听进程地运行状态,与此同时,该命令还提供了一个交互界面,用户可以根据需要,人性化地定制自己的输出,进而更清楚地了进程的运行状态。
第一行:
17:34:54:当前系统时间 up 6 min:系统已经运行的时间,我现在运行了6分钟 1 user:当前登录了1个用户 load average:0.00 0.14 0.12:系统在之前的1 分钟、5 分钟、15 分钟的平均负载
第二行为进程信息:
118 total:系统中的进程总数,当前为118个 1 running: 正在运行的进程数,当前为1个 117 sleeping:睡眠的进程数,当前为117个 0 stopped:正在停止的进程数,当前为0个 0 zembie:僵尸进程数,当前为0个。如果不是 0,则需要手工检查僵尸进程
第三行为CPU信息:
0.0 us :用户模式占用的 CPU 百分比 0.2 sy:系统模式占用的 CPU 百分比 0.0 ni: 改变过优先级的用户进程占用的 CPU 百分比 99.8 id:空闲 CPU 占用的 CPU 百分比 0.0 wa:等待输入/输出的进程占用的 CPU 百分比 0.0 hi:硬中断请求服务占用的 CPU 百分比 0.0 si:软中断请求服务占用的 CPU 百分比 0.0 st:st(steal time)意为虚拟时间百分比,就是当有虚拟机时,虚拟 CPU 等待实际 CPU 的时间百分比
第四行为物理内存信息:
1867048 total:物理内存的总量,单位为KB 1507208 free:己经使用的物理内存数量 156752 used:空闲的物理内存数量 203088 buff/cache:作为缓冲的内存数量
第五行为交换分区(swap)信息:
4194300 total:交换分区(虚拟内存)的总大小 4194300 free:空闲交换分区的大小 0 used:已经使用的交换分区的大小 1531116 avail Mem:可用内存大小
三、 kill-9命令
(注:工作中千万不要乱杀某些服务进程,不然轻则跑断腿,重则跑路)
3.1 pkill命令踢出登陆用户**
3.2 进程启动方式
进程启动方式有两种,一种是前台启动,就是我们日常输入命令后执行,如果执行的是下载或者拷贝一些超大的文件,在此期间,我们是不能进行其他操作的;另一种是后台启动,就是在前台启动的命令后面加上加上空格& ,后台启动的任务是挂起在后台的,在此期间,我们可以进行其他的操作
fg [序号] :将后台任务转为前台
3.3 at命令
四、 crontab命令
crontab命令用于执行重复式的命令,比如每周一都进行备份,就可以使用crontab命令,而不需要每周一都手动备份。
格式:crontab [选项] [文件]
在书写 crontab 定时任务时,需要注意以下几个事项:
1.6六个选项都不能为空,必须填写。如果不确定,则使用 * 代表任意时间。
2.crontab 定时任务的最小有效时间是分钟,最大有效时间是月。像 2018 年某时执行、3 点 30 分 30 秒这样的时间都不能被识别。
3.在定义时间时,日期和星期最好不要在一条定时任务中出现,因为它们都以天为单位,非常容易让管理员混淆。
4.在定时任务中,不管是直接写命令,还是在脚本中写命令,最好都使用绝对路径。有时使用相对路径的命令会报错。
crontab -e 进入crontab编辑页面(vim编辑)
格式为:* * * * * 执行的任务
五、总结
1、掌握程序、进程、线程
2、查看进程的命令:ps aux 或者ps -elf;top;pgrep;pstree;
3.如何查看子进程?pstree ap 或者 cd /proc/数字文件中的/stat
4.启动进程:前台启动;后台启动(命令最后加&)
查看后台任务列表:jobs
调用后台进程:fg 任务列表号
ctrl+z挂起
kill -9 进程号 PID
pkill -9 进程号 PID
killall 全部进程
at 小时:分钟 年-月-日
命令:ctrl D保存运行
atq 序号
atrm +序号
crontab -e -u 用户(不写用户默认当前用户)
crontab -l -u 用户
crontab -r -u 用户
格式:分 时 日 月 周 如果忘记可以查看cat /etc/crontab
*代表任意
, 不间隔的时间,比如1,2,4 可以是每隔周几
— 连续的时间 ,例如:1-7
/ 间隔的频率 1/* 每个一分钟 1/* 每隔一个小时 1/* 每隔一天 1/* 每隔一个月