CPU 相关
1.vmstat [options] [delay [count]]
-a 列出活动和非活动的内存(默认)
-t 带时间戳
-d 输出所有磁盘的统计信息
-S 定义显示单位(k/m),默认 KB
2.mpstat [-P ALL] [internal [count]]
| 参数 |
释义 |
| %usr |
在internal时间段里,用户态的CPU时间(%),不包含 nice值为负进程 |
| %nice |
在internal时间段里,nice值为负进程的CPU时间(%) |
| %sys |
在internal时间段里,核心时间(%) |
| %iowait |
在internal时间段里,硬盘IO等待时间(%) |
| %irq |
在internal时间段里,硬中断时间(%) |
| %soft |
在internal时间段里,软中断时间(%) |
| %steal |
虚拟机管理器在服务另一个虚拟处理器时虚拟CPU处在非自愿等待下花费时间的百分比 |
| %guest |
运行虚拟处理器时CPU花费时间的百分比 |
| %idle |
在internal时间段里,CPU除去等待磁盘IO操作外的因为任何原因而空闲的时间闲置时间(%) |
3.pidstat [options] [delay [count]]
-u 显示各个进程的CPU使用统计,默认参数
-r 显示各个进程的内存使用统计
-d 显示各个进程的IO使用情况
-p 指定进程号
| 参数 |
释义 |
| %usr |
进程在用户空间占用CPU的百分比 |
| %system |
进程在内核空间占用CPU的百分比 |
| %guest |
进程在虚拟机占用CPU的百分比 |
| %CPU |
进程占用CPU的百分比 |
| CPU |
处理进程的CPU编号 |
| minflt/s |
进程每秒钟出现的小错误的条数 |
| majflt/s |
进程每秒钟出现较大错误的条数 |
| VSZ |
进程使用的虚拟内存的大小(KB) |
| RSS |
进程使用的不可交换的物理内存(KB) |
| %MEM |
进程占用的物理内存百分比 |
| KB_rd/s |
进程从硬盘读取数据的速度 |
| KB_wr/s |
进程向硬盘写入数据的速度 |
| KB_cc/s |
进程写入硬盘被取消的速度 |
磁盘IO
iostat [options] [delay [count]]
-c 显示CPU利用率报告
-d 显示磁盘利用率报告
-k 显示统计信息(以kb/s为单位)
-x 显示扩展统计
-h 显示人类可读的输出(以最合适的单位)
| 参数 |
释义 |
| tps |
该设备每秒的传输次数,一次传输指一次I/O请求,多个逻辑请求可能会被合并为一次I/O请求 |
| kB_read/s |
每秒从设备读取的数据量 |
| kB_wrtn/s |
每秒向设备写入的数据量 |
| kB_read |
读取的总数据量 |
| kB_wrtn |
写入的总数量数据量 |
| rrqm/s |
每秒这个设备相关的读取请求有多少被Merge了 |
| wrqm/s |
每秒这个设备相关的写入请求有多少被Merge了 |
| rsec/s |
每秒读取的扇区数 |
| wsec/s |
每秒写入的扇区数 |
| await |
每一个IO请求的处理的平均时间(单位是微秒)。这里可以理解为IO的响应时间,一般系统IO响应时间应该低于5ms,如果大于10ms就比较大了 |
| %util |
在统计时间内所有处理IO时间,除以总共统计时间。该参数暗示了设备的繁忙程度,一般该参数是100%表示设备已经接近满负荷运行了,但如果是多磁盘,即使%util是100%,因为磁盘的并发能力,磁盘也使用未必就到了瓶颈 |
字符串
1.grep [OPTION] PATTERN [FILE]
-a binary文件以text方式搜寻
-c 统计有多少行含有匹配的模式
-e 如果指定多个匹配模式,用-e来指定每个模式
grep -e t -e f file1
-i 忽略大小写
-v 反向搜索,输出不匹配该模式的行
-n 输出行号
-A after 显示匹配行的后几行
-B before 显示匹配行的前几行
2.wc [OPTION] [FILE]
-l 统计行数
-w 统计单词数
-m 统计字符数
3.sort [OPTION] [FILE]
-u 去重
-c 不排序,但检查输入数据是不是已排序;未排序的话,报告
-r 降序排列,默认升序
-b 排序时忽略起始的空白
-n 依据数值来排序,默认字典序
-t 指定分隔符,与-k搭配使用
-k 指定排序键,即列数,与-t搭配使用
-f 忽略大小写
-M 用三字符月份名按月份排序
-m 将两个已排序数据文件合并
-o 将排序结果写出到指定的文件中
4.uniq [OPTION] [INPUT [OUTPUT]]
-c 在每列旁边显示该行重复出现的次数
-d 仅显示重复出现的行列,显示一行
-D 显示所有重复出现的行列,有几行显示几行
-u 仅显示出一次的行列
-i 忽略字符大小写
-f Fields 忽略比较指定的列数
-s N 忽略比较前面的N个字符
-w N 对每行第N个字符以后的内容不作比较
INPUT 指定已排序好的文本文件,如果不指定此项,则从标准读取数据
OUTPUT 指定输出的文件,如果不指定此选项,则将内容显示到标准输出设备(显示终端)
5.cut [OPTION] [FILE]
-d 指定分隔符,与-f一起使用
-f 依据-d的分隔字符将一段信息分割成为数段,用-f取出第几段的意思
--complement 搭配-c或-f使用,反选
-c range 选中指定的字符,字符范围
N 从第1个开始数的第N个字节、字符或域
N- 从第N个开始到所在行结束的所有字符、字节或域
N-M 从第N个开始到第M个之间(包括第M个)的所有字符、字节或域
-M 从第1个开始到第M个之间(包括第M个)的所有字符、字节或域
获取输入
getopts optstring variable
示例:
while getopts ":a:b:c:d:e:" opt
do
case ${opt} in
a) echo "a=${OPTARG}";;
b) echo "b=${OPTARG}";;
c) echo "c=${OPTARG}";;
d) echo "d=${OPTARG}";;
e) echo "e=${OPTARG}";;
esac
done