前言
??记录一下自己的Linux学习笔记。本文主要包括Linux的top命令以及进阶工具htop,byobu多窗口工具以及kill命令对进程发出的信号及其捕捉。
1、top命令和htop工具
top命令
什么是top命令
top命令经常被用来监控Linux的系统状况,比如cpu、内存等的使用情况。
如何使用
打开Linux的终端,输入“top”并回车。
>>top
然后终端会显示如下界面
top命令内容解读
先来看第一行
top - 01:58:03 up 12 min, 1 user, load average: 0.17, 0.14, 0.15
这一行显示的是系统的概况
01:58:03 //当前系统时间
up 12 min //系统已运行12分钟
1 user //当前系统一共登录了2个账户
load average: 0.17, 0.14, 0.15 //3个数字分别表示系统在1分钟、5分钟、15分钟内的负载情况
//当这个数值大于系统CPU的逻辑核心数时,则表示系统超载了
第二行
任务: 286 total, 1 running, 285 sleeping, 0 stopped, 0 zombie
这一行显示的是系统当前运行的进程概况
任务: 286 total //表示系统当前一共运行了286个进程
1 running //表示当前只有1个进程正在运行
285 sleeping //表示当前有285个进程处于休眠状态
0 stopped //当前0个进程处于stopped状态
0 zombie //当前0个进程处于zombie状态
第三行
%Cpu(s): 0.0 us, 1.0 sy, 0.0 ni, 99.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
这一行显示的是CPU的具体占用情况
0.0 us //用户空间占用CPU的百分比
1.0 sy //内核空间占用CPU的百分比
0.0 ni //改变过优先级的进程占用CPU的百分比
99.0 id //空闲的CPU百分比
0.0 wa //IO等待占用CPU的百分比
0.0 hi //硬中断(Hardware IRQ)占用CPU的百分比
0.0 si //软中断(Software Interrupts)占用CPU的百分比
0.0 st //当前VM(虚拟机)中的cpu被虚拟化偷走的百分比
第四行
MiB Mem : 3906.9 total, 1398.0 free, 1137.6 used, 1371.3 buff/cache
这一行显示的是内存的具体使用情况
3906.9 total //系统总物理内存大小(4GB)
1398.0 free //空闲内存大小
1137.6 used //已使用的内存大小
1371.3 buff/cache //缓存的内存大小
第五行
MiB Swap: 923.3 total, 923.3 free, 0.0 used. 2509.9 avail Mem
这一行显示的是swap交换分区的具体使用情况
923.3 total //交换区总大小
923.3 free //空闲交换区大小
0.0 used //已使用交换区大小
2509.9 avail Mem //缓冲的交换区总大小
第六行的空行 第七行开始是各进程的状态监控表
PID — 进程的pid
USER — 进程的所有者
PR — 进程优先级
NI — nice值。负值表示高优先级,正值表示低优先级
VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR — 共享内存大小,单位kb
S/R/S/T/Z — 进程状态。
//D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
%CPU — 上次更新到现在的CPU时间占用百分比
%MEM — 进程使用的物理内存百分比
TIME+ — 进程使用的CPU时间总计,单位1/100秒
COMMAND — 进程名称(命令名/命令行)
htop工具
安装
sudo apt-get install htop
使用
打开Linux终端,输入以下命令并回车
>>htop
相比起top,htop有许多优点,这里我列举3点:
1、支持鼠标操作,点击各个表头可以对进程进行排序 2、点击下方功能区的Tree按键或者按F5可以切换为进程树排序,可以方便地查看父进程及其子进程 3、顶部有动态更新的CPU和内存信息可视化显示
2、终端多窗口工具byobu
有什么用
它可以在单个终端同时打开多个命令行窗口,并且切换方便。
安装
sudo apt-get install byobu
如何使用
简单介绍一下byobu的基本操作
F2 //新建命令行窗口
ctrl+F6 //关闭当前窗口
F3 //切换到上一个窗口
F4 //切换到下一个窗口
ctrl+c //退出
3、kill命令发出的信号及其捕捉
kill命令是用来终止进程的,我们在使用kill命令杀死进程时系统会给该进程发送信号,以便于程序可以在退出前进行清理等操作。 值得注意的是,当你使用kill -9命令来强制终止进程时,进程是无法捕捉信号的。
进程如何捕捉信号
在此我演示一下python脚本如何捕捉kill命令默认发出的SIGTERM终止进程信号。
import signal //首先引入signal头文件
def handler(signum):
print("收到kill信号!", signum)
exit(0)
signal.signal(signal.SIGTERM, handler) //表示进程捕捉到SIGTERM信号时,调用handler函数进行处理
|