shell作业脚本
第一次作业
shell作业第一次.docx
可能用到的包
nginx.sh
nginx-1.6.0.tar.gz
第二次作业
mingdan.txt
作业7.2.docx
第三次作业
监控文件变化
md5final.sh
md5simplify.sh
md5.sh
自动分发公钥
sendpubkey(simplify).sh
sendpubkey.sh
sshpass-1.06.tar.gz
模拟seq序列
seq.sh
seq_sh.sh
字符串处理习题
例题源
截取字符串例题.txt
ifconfig中截取ip地址
方法1
cut
方法2
sed
方法3
awk

sed另外的方法

合并文件并排序
题目要求

方法一(最快捷方法)

方法二(awk数组)仅仅实现合并

检测内存使用占用率
格式化输出格式
默认格式化输出保留位数

格式化输出自定义保留小数位数

非格式化输出

极简版

格式输出
题目要求

班里的人才的清奇方法,起码我知道sort用法很骚"1.7"表示第一个字段第七个字符进行排序,tr错位排序也是牛逼

sed高级用法
sed内置替换

一般方法

awk排列法
普通方法

awk内置大小写替换函数toupper()和tolower()


查重脚本
题目要求

实现方式


相同合并
题目要求

普通方法
paste

xargs

sed用法

awk用法

awk字符串方法详解

需要有个大头作为角标,str[1.1.1.1] str[2.2.2.2]一开始没有定义,所以一开始为空,str[1.1.1.1]变化过程: 空、“ 11” “ 11 22”“ 11 22 33 ”·······
插入计算
题目要求

awk实现方式

统计排序
题目要求

普通实现方式

awk实现方式

提取域名
题目要求

解决方法
使用平时学过的


sed

awk

awk数组

awk就是角标为有形,赋值为无形的操作方式,赋值的过程中是边统计边赋值,是一个变量,动静结合,静为角标,动为所赋予的值
统计历史命令使用最多的前十个命令
一般方法

awk方法

本身是角标,值是array
统计题


答案

统计次数

过滤字符(正则)

随机数取大小
首先可以产生随机数的命令
shuf -i 1-100000 | head -5000 | tr "\n" ',' >a.txt 即可再a.txt中创建一个1-100000的随机数列
行判断方法

我的方法

监控ddos攻击
题目

概述

实验要求:开启firewalld
清空防火墙规则
查看防火墙
方法一:脚本实现方式

方法二:awk实现方式

我的修改:netstat -npt |awk '/^tcp/{split($5,tmp,":");array[tmp[1]]++} END{for(i in array){if(array[i]==2) {cmd="iptables -A INPUT -s "i" -j REJECT";system(cmd)}}}'

我的实现方式2(分隔符简化):
netstat -npt | awk -F '[ :]+' '/^tcp/{array[$6]++} END{for(i in array) {if(array[i]==2){cmd="iptables -A INPUT -s "i" -j REJECT";system(cmd)}}}'

实现成功标志

再次使用11登录,显示失败

发布者:LJH,转发请注明出处:https://www.ljh.cool/35311.html