一。查看和控制进程
1.ps命令——查看静态的进程统计信息(Processes Statistic)
注释:
PID:进程IDTTY
TTY:表明该进程在哪个终端上运行。“?”表示未知或不需要终端。
TIME:该进程占用的 CPU 时间
CMD:启动该进程的命令的名称
2.ps aux(BSD风格)
- a:显示当前终端下的所有进程信息,包括其他用户的进程。与“x”选项结合时将显示系统中所有的进程信息。
- u:使用以用户为主的格式输出进程信息。
- x:显示当前用户在所有终端下的进程信息。
注释:
- USER:启动该进程的用户账号的名称。
- PID:该进程在系统中的数字 ID 号,在当前系统中是唯一的。
- %CPU:CPU 占用的百分比。
- %MEM:内存占用的百分比。
- VSZ:占用虚拟内存(swap 空间)的大小。
- RSS:占用常驻内存(物理内存)的大小。
- TTY:表明该进程在哪个终端上运行。“?”表示未知或不需要终端。
- STAT:显示进程当前的状态,如 S(休眠)、R(运行)、Z(僵死)、<(高优先级)、N(低优先级)、s(父进程)、+(前台进程)。对处于僵死状态的进程应该予以手动终止。 D:不可以唤醒的 T:停止的。
- START:启动该进程的时间。
- TIME:该进程占用的 CPU 时间。
- COMMAND:启动该进程的命令的名称。
(3)ps -elf(Unix风格)
- -e:显示系统内的所有进程信息。
- -l:使用长(Long)格式显示进程信息。
- -f:使用完整的(Full)格式显示进程信息。
3:top 命令——查看进程动态信息
注释:
第一行:top - 06:18:40 up 3:15, 1 user, load average: 0.06, 0.02, 0.00
含义分别是:系统时间、运行时间、登录终端数、系统负载(三个数值分别为 1 分钟、5 分钟、15 分钟内的平均值,数值越小意味着负载越低)
第二行:Tasks: 365 total, 1 running, 364 sleeping, 0 stopped, 0 zombie
含义分别是:进程总数、运行中的进程数、睡眠中的进程数、停止的进程数、僵尸的进程数
第三行:%Cpu(s): 0.4 us, 0.5 sy, 0.0 ni, 98.8 id, 0.0 wa, 0.3 hi, 0.0 si, 0.0 st
含义分别是:用户占用资源百分比、系统内核占用资源百分比、改变过优先级的进程资源百分比、空闲的资源百分比、等待输入输出的cpu时间百分比、硬中断占用的cpu百分比、软中断占用的cpu百分比和用于虚拟cpu的情况。
第四行:MiB Mem:7790.6 total, 4309.7 free,2571.4 used, 909.5buff/cache
buff:缓冲区,是对物理设备上的数据的缓存/缓冲
cache:缓存区,是文件数据的缓存/缓冲
含义分别是:物理内存总量、内存空闲量、内存使用量、为内核缓存的内存量。
第五行:KiB Swap: 4194300 total, 4194300 free, 0 used. 3286708 avail Mem
含义分别是:虚拟内存总量、虚拟内存空闲量、虚拟内存使用量、可以分配和使用的内存量。
第六行:PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
从第六行开始,就是具体的系统进程的资源使用的详细情况,依次分别表示:进程ID、进程所有者的用户名、优先级、nice值(负值表示高优先级,正值表示低优先级)、进程使用的虚拟内存总量(KB)、进程使用的未被换出的物理内存大小(KB)、共享内存大小(KB)、进程状态、进程上次更新到现在的CPU时间占用百分比、物理内存占比、进程使用的CPU时间总计(单位1/100秒)、命令名。默认各进程是按照CPU的占用量来排序的。
4:pgrep 命令——查询进程信息
5:pstree 命令——查看进程树
启动:
1.启动进程
在 Linux 操作系统中,可以由用户手工启动或者按预订计划调度启动新的进程。
(1)手工启动进程
由用户手工输入命令或者可执行程序的路径,可以至少启动一个进程。根据该进程是否需要占用当前的命令终端,手工启动又可以分为前台启动和后台启动。
进程在前台运行(如执行“Is-"命令)时,用户必须等到该进程执行结束并退出以后才能继续输入其他命令,大多数命令操作在前台启动运行。进程在后台运行时,用户可以继续在当前终端中输入其他命令,而无须等待该进程结束,适用于运行耗时较长的操作。
启动后台进程需要使用“&”操作符,将“&"操作符放在要执行命令的最后面,进程启动后会直接放入后台运行,而不占用前台的命令操作界面,方便用户进行其他操作。例如,当使用 cp 命令从光盘中制作镜像文件时,由于需要复制的数据较多,耗时较长,因此可结合“&符号将复制操作放到后台运行,以便用户可以继续执行其他命令操作。
2:改变进程的运行方式
(1)挂起当前的进程
[root@localhost ~]# cp /opt/CentOS-7-x86_64-DVD-2009.iso /
按 Ctrl+Z 组合键挂起当前进程
(2)查看后台的进程
[root@localhost ~]# jobs -l
[1]+ 9109 停止 cp -i /opt/CentOS-7-x86_64-DVD-2009.iso /
(3)将挂起的后台进程恢复到后台运行
[root@localhost ~]# bg 1
[1]+ cp -i /opt/CentOS-7-x86_64-DVD-2009.iso / &
(4)将挂起的后台进程恢复到前台运行
[root@localhost ~]# cp /opt/CentOS-7-x86_64-DVD-2009.iso /
按 Ctrl+Z 组合键挂起当前进程
[1]+ 已停止 cp -i /opt/CentOS-7-x86_64-DVD-2009.iso /
[root@localhost ~]# fg 1
cp -i /opt/CentOS-7-x86_64-DVD-2009.iso /
3:终止进程执行
(1)使用 kill 命令终止进程
[root@localhost ~]# yum -y install vsftpd
[root@localhost ~]# systemctl start vsftpd
[root@localhost ~]# pgrep -l vsftpd
9188 vsftpd
[root@localhost ~]# kill 9188
(2)kill命令强制杀死进程
[root@localhost ~]# vim aa
按 Ctrl+Z 组合键挂起当前进程
[1]+ 已停止 vim aa
[root@localhost ~]# jobs -l
[1]+ 9192 停止 vim aa
[root@localhost ~]# kill 9192
[root@localhost ~]# jobs -l
[1]+ 9192 停止 vim aa
[root@localhost ~]# kill -9 9192
[root@localhost ~]# jobs -l
[1]+ 9192 已杀死 vim aa
5:使用 pkill 命令终止进程
使用 pkill 命令可以根据进程的名称、运行该进程的用户、进程所在的终端等多种属性终止特定的进程。
新建一个用户张三,并用张三在另一个终端登录
[root@localhost ~]# pgrep -l -U zhangsan
19584 bash
[root@localhost ~]# pkill -9 -U zhangsan
[root@localhost ~]# pgrep -l -U zhangsan
二:计划任务管理
1:at 一次性任务设置
1:安装at工具
[root@localhost ~]# yum -y install at
[root@localhost ~]# systemctl start atd
2:设置一次性计划
[root@localhost ~]# date
2022年 06月 22日 星期三 21:32:36 CST
[root@localhost ~]# at 21:34
at> echo bbb>test
at> <EOT>
job 2 at Wed Jun 22 21:34:00 2022
[root@localhost ~]# at 21:38
at> shutdown -h now
at> <EOT>
3:查询
[root@localhost ~]# atq
3:删除指定的计划
[root@localhost ~]# atrm 2
2:crontab 周期性任务设置
1:crontab 的配置文件和目录
(1)/etc/crontab——系统任务配置文件
[root@localhost ~]# cd /etc/cron.hourly/
[root@localhost cron.hourly]# vim aa.sh
echo abc>>/root/test.txt
[root@localhost cron.hourly]# chmod +x aa.sh
[root@localhost ~]# vim /etc/crontab
*/1 * * * * root run-parts /etc/cron.hourly
注:表示每间隔一分钟,开始执行/etc/cron.hourly目录下的可执行程序或脚本
[root@localhost ~]# systemctl restart crond
备注:
以天为单位的计划脚本,放置在/etc/cron.daily
以周为单位的计划脚本,放置在/etc/cron.weekly
以月为单位的计划脚本,放置在/etc/cron.monthly
(2)/var/spool/cron/——用户 cron 任务的配置文件存放目录
[root@localhost ~]# cd /var/spool/cron/
[root@localhost cron]# ls
[root@localhost cron]# crontab -e -u zhangsan
no crontab for zhangsan - using an empty one
crontab: installing new crontab
[root@localhost cron]# systemctl restart crond
[root@localhost cron]# ls
zhangsan
2:使用 crontab 命令管理用户的计划任务
- -e:编辑计划任务列表。
- -u:指定所管理的计划任务属于哪个用户,默认是针对当前用户(自己),一般只有 root 用户有权限使用此选项(用于编辑、删除其他用户的计划任务)。
- -l:列表显示计划任务。
- -r:删除计划任务列表。
[jerry @localhost ~]# crontab -e
[root@localhost ~]# crontab –l
[root@localhost ~]# crontab -l -u jerry
[jerry@localhost ~]$ crontab -r