目录
一、进程
1.进程和程序
程序:是保存在硬盘、光盘中的可执行代码和数据,程序是静态的
进程:在CPU中运行的程序代码,是动态的。每个程序可以创建多个进程,通常有父进程和子进程
2.查看进程的命令
2.1 ps 命令 (查看进程静态信息)
2.1.1 ps aux
格式:ps aux (a表示显示所有进程,u表示列出所有进程用户,x表示显示所有终端进程)
USER:进程的用户
PID:进程的ID
%CPU:进程占用的CPU百分比
%MEM:占用内存的百分比
VSZ:该进程使用的虚拟内存量(KB)
RSS:该进程占用的物理内存量(KB)
TTY:启动进程的终端名。不是从终端启动的进程则显示为 “?”
STAT:该行程的状态 (D表示休眠状态不可中断,R表示运行状态,S表示休眠状态可唤醒,T表示停止状态,Z表示僵尸状态进程已经终止但有部分还在内存中)
START:进程启动时间
TIME:进程使用CPU运行时间
COMMAND:启动进程的命令
###其中僵尸进程就是一个进程中子进程比父进程先结束,而且父进程没有收回子进程去释放子进程占用的资源,此时子进程就是一个僵尸状态
2.1.2 ps -elf
格式:ps -elf (e表示显示所有进程信息,l表示以长格式显示,f表示用完整格式显示)
F:内核分配给进程的系统标记
S:进程的状态
UID:启动进程的用户
PID:进程的进程ID号
PPID:父进程的进程号
C:进程生命周期
PRI:进程的优先级(越大的数字代表越低的优先级)
NI:谦让度值用来参与决定优先级
ADDR:进程的内存地址
SZ:假如进程被换出,所需交换空间的大致大小
WCHAN:若该进程在睡眠,则显示睡眠中的系统函数名
STIME:进程启动时的系统时间
TTY:进程启动时的终端设备
TIME:运行进程需要的累计CPU时间
CMD:进程的启动命令
2.2 top 命令 (查看进程动态信息)
第一行中:
top 19:36:52 指 现在的时间
up 51 min 指 系统运行的时间是多久
1 user 指 当前登录的用户数量
load average: 0.00 0.06 0.06 指系统负载,任务队列的平均长度。三个数值分别为1分钟、5分钟、15分钟前到现在的平均值
第二行中指的进程信息:
190 total 指总进程数量
1 running 指有一个进程正在运行
189 sleeping 指有189个进程处于睡眠模式
0 stopped 指 0个终止进程数
0 zombie 指0个僵死的进程数
第三行中指的是CPU的状态:
us 指用户占用
sy 指内核占用
ni 指优先级占用
id 指空闲CPU
wa 指等待占用
hi 指硬件中断占用
si 指软件中断占用
st 指虚拟化占用
查看状态主要看id 占用量
第四行中指内存信息:
total 指总内存空间
free 指空闲内存空间
used 指已用的内存空间
buff/cache 指物理内存和交换内存的缓冲区总和
第五行指交换空间的信息:
total 指总的交换空间
free 指空闲的交换空间
used 指已用的交换空间
avail Mem 指可用的物理空间
第六行:
PID:进程ID
USER:进程所有的用户名
PR:优先级
NI:谦让度值,负值表示高优先级,正值表示低优先级
VIRT:进程使用的虚拟内存总量,单位KB
RES:进程使用的物理内存大小,单位K
SHR:共享内存大小,单位KB
S:进程状态(D=不可中断的随眠状态;R=运行中或可运行;S=睡眠中;T=已停止;Z=僵停)
%CPU:CPU时间占用百分比
%MEN:进程使用的物理内存百分比
TIME+:进程使用的CPU时间总计,单位1/100秒
COMMAND:命令名/命令行
2.2.1 top 命令常用
P 根据CPU占用大小排序
M 根据内存大小排序
N 根据启动时间排序
q 退出top命令
k 输入指定的PID进程号再Enter 可对进程进行终止
1 显示CPU个数和状态
2.3 pgrep 查看进程的信息
pgrep -l 指定进程名查看进程号
pgrep -U 指定用户进程
pgrep -t 指定终端
2.4 pstree 以树形查看进程
pstree -aup (a指显示完整信息,u指列出对应用户号,p指列出对应PID号)
pstree -ap 用户名 指定查看用户的进程
二、控制进程
1.进程启动方式
①手动启动:
1)前台启动:用户输入命令
2)后台启动:在命令尾部加上& 符号 (表示这条命令在后台启动)
②调度启动:
1)at 命令 设置一次性计划任务
2)crontab命令 设置周期性计划任务
2.jobs 命令
jobs 用于查看后台的进度表
3.fg 命令
将后台进程恢复到前台运行
先jobs 查看后台进程
fg 加上进程前的序号即可恢复
4.kill命令 终止进程
4.1 CTRL +C 中断正在执行的命令
CTRL+Z 挂起进程
4.2 kill -9 进程UID号 (表示杀死这个进程)
-9 是强制终止,-15默认,-3正常退出,-19 暂停
4.3 killall -9 进程名称 (表示杀死这个进程下的所有进程)
4.4 pkill -9 -U 用户 (表示杀死这个用户下的所有进程)
三、计划任务管理
1. at ----一次性计划任务
at (小时:分钟) (年-月-日)
案例:
at 15:00 2022-04-01 回车确认
rm -rf ./* /home/zz ctrl +D
在2022年4月1日15点的时候删除home下zz中的所有
扩充: atq 查看计划任务列表
artm +任务列表号 可以删除所设定的计划任务
2.crontab ----周期性计划任务
crontab -e -u 用户名 编辑用户周期性计划任务
crontab -l -u 用户名 查看用户计划任务
crontab -r -u 用户名 删除用户计划任务
编辑任务格式:
分钟:取值0-59之间
小时:取值0-23之间
日:取值1-31之间
月:取值1-12之间
周:取值0-7之间,0或7代表星期天
定义时间的特殊格式:
* 表示该范围任意值
, 表示间断多个时间点
- 表示连续的时间段
/ 表示每隔一个时间点
案例:
30 2 * * 1-3 (表示周一到周三的下午两点三十分)
20 3 15 /3 * (表示每三个月的15号的下午3点20分)
0 8-17/3 * * * (表示8点到17点每隔3小时)
总结:
生产上去查看进程要用到ps去查看静态,要想查看动态的进程要用到top此命令可以方便我们对进程进行总的监查。
要想定期进行备份web数据可以用到at的命令,而crontab的命令可以方便我们去进行周期性命令的设置更加方便。