Linux篇
1.free命令-查看内存状态
free命令用于显示内存状态,它可以提供关于系统内存使用情况的详细信息。这个命令会显示出内存的使用情况,包括实体内存、虚拟的交换文件内存、共享内存区段,以及系统核心使用的缓冲区等。
其中,参数包括但不限于:
-b
:以Byte为单位显示内存使用情况。-k
:以KB为单位显示内存使用情况(这是默认的单位)。-m
:以MB为单位显示内存使用情况。-g
:以GB为单位显示内存使用情况。-o
:不显示缓冲区调节列。-s <间隔秒数>
:持续观察内存使用状况。-t
:显示内存总和列。-V
:显示版本信息。
- 内存使用情况:这部分显示了总的内存量、已使用的内存量、空闲的内存量、共享的内存量、缓冲区内存量和缓存内存量。
- 交换空间使用情况:这部分显示了交换空间的总量、已使用的交换空间量、空闲的交换空间量。
补:交换空间的概念:当物理内存(RAM)不够用的时候,将硬盘中的一些空间作为交换空间,系统可以将部分数据从物理内存转移到交换空间中,以便释放RAM资源给其他应用程序使用。这个过程称为交换(swapping)。交换空间可以提高系统的性能,因为它允许系统在物理内存紧张时继续运行。
在内存使用情况的输出中,total
表示总的内存量,used
表示已使用的内存量,free
表示空闲的内存量,shared
表示共享的内存量,buffers
表示缓冲区内存量,cached
表示缓存内存量。
补:cpu (cache) 内存 (buffer) 硬盘
1.cache是介于cpu和内存之间的,用于cpu和内存之间缓存数据的。
cache:L1、L2。最常见的是L1cache和L2cache。L1cache一般是存在cpu的芯片里面,速度是最快的。L2cache是存在主板里面,是作为cpu和内存之间数据缓存的空间。当cpu和内存有数据交换时,先把数据存到cache中,cpu直接区cache里面取。
2.buffer是介于内存和硬盘之间的缓存
Linux中有两种设备:字符设备(如键盘)和块设备(硬盘),操作系统可以从这两种设备中获取数据。内存和硬盘交换数据的时候通过一个缓冲区buffer。
在交换空间使用情况的输出中,total
表示交换空间的总量,used
表示已使用的交换空间量,free
表示空闲的交换空间量。
2.top命令-查看资源占用情况
在Linux系统中,top
命令是一个非常实用的性能分析工具,它能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。top
命令提供了一个动态显示的过程,即可以通过用户按键来不断刷新当前状态。如果在前台执行该命令,它将独占前台,直到用户终止该程序为止。
其中,参数包括但不限于:
-b
:批处理模式,直接将结果输出到文件。-c
:显示完整的命令行而不截断。-I
:忽略失效进程。-s
:保密模式,不显示敏感信息。-S
:累积模式,显示进程的CPU使用时间。-i
:不显示闲置(idle)或无用的进程。-n
:设置更新次数后自动退出。-d
:设置每两次屏幕信息刷新之间的时间间隔。
显示信息
top
命令的输出包括以下几个部分:
- 系统状态:显示当前时间、系统运行时间、登录用户数量、平均负载等信息。
- CPU使用情况:显示用户空间、内核空间、改变过优先级的进程、空闲CPU、IO等待、硬中断和软中断占用的CPU百分比。
- 内存使用情况:显示物理内存总量、已使用内存、空闲内存、缓存内存等。
- 交换空间使用情况:显示交换空间的总量、已使用的交换空间、空闲的交换空间等。
- 进程信息:显示进程ID、进程所有者、进程优先级、nice值、虚拟内存使用量、常驻内存使用量、共享内存使用量、CPU使用率、内存使用率、进程启动后的CPU时间总计等。
3.vmstat命令
vmstat
命令是Linux系统中用于监控系统资源使用情况的工具,它可以展示系统的CPU使用率、内存使用情况、虚拟内存交换情况以及I/O读写情况。vmstat
命令提供了对系统整体性能的快照,帮助系统管理员了解系统的实时状态。
注:这里 vmstat 1 100 代表每秒打印一条数据,共打印100条
vmstat
命令的输出结果包括多个部分,每个部分代表了不同的系统资源使用情况:
- 进程信息(procs):显示当前运行队列中线程的数目(r)和等待IO的进程数量(b)。
- 内存信息(memory):显示虚拟内存已使用的大小(swpd)、空闲的物理内存大小(free)、用作缓冲的内存大小(buff)、用作缓存的内存大小(cache)、每秒从交换区写到内存的大小(si)、每秒写入交换区的内存大小(so)。
- I/O信息(io):显示每秒从磁盘读入虚拟内存的大小(bi)、每秒虚拟内存写入磁盘的大小(bo)、每秒CPU的中断次数(in)、每秒上下文切换次数(cs)。
- CPU使用情况(cpu):显示用户进程执行时间(us)、系统进程执行时间(sy)、空闲时间(id)和等待IO的时间(wa)。
3.Linux中查看文件内容的命令
1. more指令 —— 分页显示文件内容
注:左下角会显示当前已经阅读了所有内容的百分之几。
more指令会以一页一页的形式显示文件内容,按空白键(space)显示下一页内容,按Enter键会显示下一行内容,按 b 键就会往回(back)一页显示,其基本用法如下:
more file1 查看文件file1的文件内容;
more -num file2 查看文件file2的内容,一次显示num行;
more +num file3 查看文件file3的内容,从第num行开始显示;
2. less指令 —— 可以向前或向后查看文件内容
注:less查出来的文件内容,可以通过鼠标滚轮往前看或者往后看!
less指令查看文件内容时可以向前或向后随意查看内容;
less指令的基本用法为:
less file1 查看文件file1的内容;
less -m file2 查看文件file2的内容,并在屏幕底部显示已显示内容的百分比;
less -N file2 查看文件file3的内容,并显示每行的行号;
按空格键显示下一屏的内容,按回车键显示下一行的内容;
按 U 向前滚动半页,按 Y 向前滚动一行;
按[PageDown]向下翻动一页,按[PageUp]向上翻动一页;
按 Q 退出less命令;
3. head指令 —— 查看文件开头的内容
head指令用于显示文件开头的内容,默认情况下,只显示文件的头10行内容;
head指令的基本用法:
head -n <行数> filename 显示文件内容的前n行;
例如:head -n 5 file1 显示文件file1的前5行内容
head -c <字节> filename 显示文件内容的前n个字节;
例如:head -c 20 file2 显示文件file2的前20个字节内容
4. tail指令 —— 显示文件尾部的内容
tail指令用于显示文件尾部的内容,默认情况下只显示指定文件的末尾10行;
tail指令的基本用法:
tail file1 显示文件file1的尾部10行内容;
tail file1 -f 动态显示文件file1的尾部10行内容;文件如果一直在写入数据,最新写入的数据也会被同步查出来。
tail -n <行数> filename 显示文件尾部的n行内容;
例如:tail -n 5 file1 显示文件file1的末尾5行内容
tail -c <字节数> filename 显示文件尾部的n个字节内容;
例如:tail -c 20 file2 显示文件file2的末尾20个字节
5. cat指令 —— 显示文件内容
使用cat命令时,如果文件较小还勉强能用,如果文件内容过多,则只会显示最后一屏的内容;
cat指令的基本用法:
cat file1 用于查看文件名为file1的文件内容;
cat -n file2 查看文件名为file2的文件内容,并从1开始对所有输出的行数(包括空行)进行编号;
cat -b file3 查看文件名为file3的文件内容,并从1开始对所有的非空行进行编号;
4.crontab命令-设置定时任务
在Linux中设置定时任务通常是通过cron
服务(表现就是一个一直执行的守护进程,这个守护进程会一直监视定时任务列表有没有指定定时任务)来实现的。cron
服务允许用户在指定的日期和时间运行脚本和命令。如果有定时任务,就会到指定时间执行,如果没有,守护进程也会一直运行。要设置定时任务,你需要编辑当前用户的crontab
文件,或者在/etc/crontab
文件中添加系统级别的任务。
使用场景:日志分析、定时数据备份等周期性工作。
简单使用步骤:
1.创建一个任务 (可以是脚本或者命令)
2.通过 crontab - e 命令把定时任务加入crontab服务队列中
3.通过 crontab - l 命令查看队列中是否有加入的定时任务(确认成功加入任务)
例:1.假设我们已经写了一个脚本“time.sh”
2.执行 crontab -e 命令,就会进入:
任务执行的格式: 时间 + 任务路径
注:最后一个代表每天每小时每分钟执行1次。
写入以后,通过" :wq! " 保存并退出编辑。
3.查看定时任务队列,通过命令 crontab -l