1.进程管理
1).进程查看
①.查看系统中所有进程
ps aux【查看系统中所有进程,使用BSD操作系统格式】
ps -le【查看系统中所有进程,使用Linux标准命令格式】
>USER:该进程是由哪个用户产生的.
>PID:进程的ID号.
>%CPU:该进程占用CPU资源的百分比,占用越高,进程越耗费资源.
>%MEM:该进程占用物理内存的百分比,占用越高,进程越耗费资源.
>VSZ:该进程占用虚拟内存的大小,单位KB.
>RSS:该进程占用实际物理内存的大小,单位KB.
>TTY:该进程是在哪个终端中运行的.其中tty1-tty7代表本地控制台终端,tty1-tty6是本地的字符界面终端,tty7是图形终端.pts/0-255代表虚拟终端.
>STAT:进程状态.常见的状态有,R:运行,S:睡眠,T:停止状态,s:包含子进程,+:位于后台
>START:该进程的启动时间
>TIME:该进程占用CPU的运算时间,注意不是系统时间
>COMMAND:产生此进程的命令名
②.查看系统健康状态
top [选项]【-d 秒数:指定top命令每隔几秒更新.默认是3秒】
在top命令的交互模式当中可以执行的命令:
?或h:显示交互模式的帮助
P:以CPU使用率排序,默认就是此项
M:以内存的使用率排序
N:以PID排序
q:退出top
------------说明top命令后的信息----------------------
第一行信息为任务队列信息
12:25:12-----系统当前时间
up 1 day, 13:22-----系统的运行时间,本机已经运行1天13小时22分钟
2 users-----当前登录了两个用户
load average: 0.00, 0.00, 0.00-----【重点】系统在之前1分钟,5分钟,15分钟的平均负载.一般认为小于1时,负载较小.如果大于1,系统已经超出负荷.
第二行为进程信息
Tasks: 84 total-----系统中的进程总数
1 running-----正在运行的进程数
94 sleeping-----睡眠的进程
0 stopped-----正在停止的进程
0 zombie-----僵尸进程.如果不是0,需要手工检查僵尸进程
第三行为CPU信息
Cpu(s): 0.0%us-----用户模式占用的CPU百分比
0.1%sy-----系统模式占用的CPU百分比
0.0%ni-----改变过优先级的用户进程占用的CPU百分比
99.7%id-----【重点】空闲CPU的CPU百分比
0.1%wa-----等待输入/输出的进程的占用CPU百分比.
0.0%hi-----硬中断请求服务占用的CPU百分比.
0.1%si-----软中断请求服务占用的CPU百分比.
0.0%st-----st(Steal time)虚拟时间百分比.就是当有虚拟机时,虚拟CPU等待实际CPU的时间百分比.
第四行为物理内存信息
Mem: 1030532k total-----物理内存的总量,单位KB
213760k used-----已经使用的物理内存数量
816772k free-----【重点】空闲的物理内存数量,我们使用的是虚拟机,总共只分配了1024MB内存,所以只有816MB的空闲内存了
22836k buffers-----作为缓冲的内存数量
第五行为交换分区(swap)信息
Swap: 1048568k total-----交换分区(虚拟内存)的总大小
0k used-----已经使用的交互分区的大小
1048568k free-----空闲交换分区的大小
118624k cached-----作为缓存的交互分区的大小
③.查看进程树
pstree [选项]【-p:显示进程的PID,-u:显示进程的所属用户】
2).进程管理
①.kill命令
kill -l【查看可用的进程信号】
-----------常用信号-----------------------
1:SIGHUP:该信号让进程立即关闭,然后重新读取配置文件之后重启.
2:SIGINT:程序终止信号,用于终止前台进程.相当于输出ctrl+c快捷键.
8:SIGFPE:在发生致命的算术运算错误时发出.不仅包括浮点运算错误,还包括溢出及除数为0等其他所有的算术的错误.
9:SIGKILL:用来立即结束程序的运行.本信号不能被阻塞、处理和忽略.一般用于强制终止进程.
14:SIGALRM:时钟定时信号,计算的是实际的时间或时钟时间.alarm函数使用该信号.
15:SIGTERM:正常结束进程的信号,kill命令的默认信号.有时如果进程已经发生问题,这个信号是无法正常终止进程的,我们才会尝试SIGKILL信号,也就是信号9.
18:SIGCONT:该信号可以让暂停的进程恢复执行,本信号不能被阻断.
19:SIGSTOP:该信号可以暂停前台进程,相当于输入ctrl+z快捷键.本信号不能被阻断.
eg:
②.killall命令
killall [选项][信号] 进程名【按照进程名杀死进程】
-i:交互式,询问是否要杀死某个进程
-I:忽略进程名的大小写
eg:
③.pkill命令
pkill [选项][信号] 进程名【按照进程名终止进程】
-t 终端号:按照终端号踢出用户
---------按照终端号踢出用户--------------------
w【使用w命令查询本机已经登录的用户】
pkill -9 -t pts/0【强制杀死从pts/0虚拟终端登录的进程,注意:-9和-t的位置不能换,否则踢出失败】
eg:
![](https://img2020.cnblogs.com/blog/1223444/202004/1223444-20200428013154714-1434753185.png)
④.终止进程
kill -15 [进程的PID]
2.工作管理
1).把进程放入后台
>eg1: tar -zcf etc.tar.gz /etc &【在命令后面加上"&"符号,后台运行】
>eg2: top【在top命令执行的过程中,按下ctrl+z快捷键,后台暂停】
2).查看后台的工作
jobs -l【-l:显示工作的PID】
注:"+"号代表最近一个放入后台的工作,也是工作恢复时,默认恢复的工作."-"号代表倒数第二个放入后台的工作.
3).将后台暂停的工作恢复到前台执行
fg %工作号【%工作号:"%"号可以省略,但是注意工作号和PID的区别】
4).将后台暂停的工作恢复到后台执行
bg %工作号【注:后台恢复执行的命令,是不能和前台有交互的,否则不能恢复到后台执行(top、vim这些命令是不能在后台运行的)】
3.系统资源查看
1).vmstat命令监控系统资源
vmstat [刷新延时 刷新次数]【vmstat 1 3:监听3次我的系统资源,每次间隔1秒】
2).dmesg开机时内核检测信息(用来查看相关的硬件信息)
dmesg | grep CPU
每次开机后会重新检测 /proc/cpuinfo 文件。
3).free命令查看内存使用状态
free [-b|-k|-m|-g]
-b:以字节为单位显示
-k:以KB为单位显示,默认就是以KB为单位显示
-m:以MB为单位显示
-g:以GB为单位显示
4).查看CPU信息
cat /proc/cpuinfo
5).uptime命令
uptime【显示系统的启动时间和平均负载,也就是top命令的第一行.w命令也可以看到这个数据】
6).查看系统与内核相关信息
uname [选项]【-a:查看系统所有相关信息,-r:查看内核版本,-s:查看内核名称】
file /bin/ls【判断当前系统的位数】
lsb_release -a【查询当前Linux系统的发行版本】
7).列出进程打开或使用的文件信息
lsof [选项]【列出进程调用或打开的文件的信息】
-c 字符串:只列出以字符串开头的进程打开的文件
-u 用户名:只列出某个用户的进程打开的文件
-p pid:列出某个PID进程打开的文件
4.系统定时任务
1).crond服务管理与访问控制【系统默认自启动】
service crond restart【】
chkconfig crond on【】
2).用户的crontab设置
crontab [选项]【-e:编辑crontab定时任务,-l:查询crontab任务,-r:删除当前用户所有的crontab任务】
----------格式----------------------------------------------------------------------------------------------------------
* * * * * 执行的任务
-----------“*”的含义--------------------------------------------------------------------------------------------------
第一个"*":一小时当中的第几分钟:0-59
第二个"*":一天当中的第几小时:0-23
第三个"*":一个月当中的第几天:1-31
第四个"*":一年当中的第几月:1-12
第五个"*":一周当中的星期几:0-7(0和7都代表星期日)
eg:
----------------特殊符号说明---------------------------------------------------------------------------------------------
*:代表任何时间.比如第一个"*"就代表一小时中每分钟都执行一次的意思.
,:代表不连续的时间.比如"0 8,12,16 * * * 命令",就代表在每天的8点0分,12点0分,16点0分都执行一次命令.
-:代表连续的时间范围.比如"0 5 * * 1-6 命令",代表在周一到周六的凌晨5点0分执行命令
*/n:代表每隔多久执行一次.比如"*/10 * * * * 命令",代表每隔10分钟就执行一遍命令
--------------例子-----------------------------------------------------------------------------------------------------------
45 22 * * * 命令-----在22点45分执行命令
0 17 * * 1 命令-----每周一的17点0分执行命令
0 5 1,15 * * 命令-----每月1号和15号的凌晨5点0分执行命令
40 4 * * 1-5 命令-----每周一到周五的凌晨4点40分执行命令
*/10 4 * * * 命令-----每天的凌晨4点,每隔10分钟执行一次命令
0 0 1,15 * 1 命令-----每月1号和15号,每周一的0点0分都会执行命令.注意:星期几和几号最好不要同时出现,因为它们定义的都是天.非常容易让管理员混乱.
3).定时操作
crontab -l 【定时任务列表】
crontab -e【编辑定时任务】
crontab -r【清空定时任务】