一.shell数组
1.数组
数组的特性就是一组数据类型相同的集合(不包括有一些编程语言提出来的关联数组的概念)。那么shell中数组是怎么定义的呢,我们来看两种数据类型:一是数值类型,二是字符串类型;虽然shell本身是弱类型的,但也可以这么区分。
数值类型的数组:一对括号表示数组,数组中元素之间使用“空格”来隔开。
举个列子: arr_number=(1 2 3 4 5);
字符串类型数组:同样,使用一对括号表示数组,其中数组中的元素使用双引号或者单引号包含,同样使用“空格”来隔开。
arr_string=("abc" "edf" "sss"); 或者 arr_string=('abc' 'edf' 'sss');
2.读取数组
定义取值
取值,取个数,添加
删除数组
修改数组
3.数组脚本练习
取数值遍历
取字符遍历
数组里可以是shell命令
数组字符的取值之取出小于6个字符的单词
方法一:数组方法
方法二:统计字符串方法
方法三:awk的方法
二.三种取随机数并加密的方法
1.random的取数并加密
取数的方法:
取随机数的方法:
取随机数的并加密的方法:
2.data时间取随机数并加密
三.随机数的应用
1.批量创建以随机数开头的文件
题目1:在/westos目录下创建10个开头以10个小写字母的随机数,结尾是_westos.html的文件
题目2:批量将html换成HTML
第一种方法 for
第二种方法 AWK
题目3:在/westos目录下创建10个开头以10个小写字母的随机数,结尾是_westos后面是带两位序号的.html的文件
注:下面的脚本使用了两种生成随机加密数的方法:random和openssl
2.批量创建带序号的用户,并且密码是随机数,并输出到文件中
运行结果:
查看输出文件:
批量删除创建的用户:
3.将加密后的密钥转化为加密前的数字(破解加密)
定义一个数组,里面为需要破解的加密后的文字
fungetmd5为生成全部的随机加密,共有32767个
funfindmd5是跟数组里加密后的进行比对
没有的话调整cut的位数
四.通过加密检查文件是否变动的脚本,防止别人篡改服务器的文件
1.模拟httpd默认发布目录,拷贝一些文件做实验
2.将全部文件进行md5算法加密,生成加密后的数据库,俗称指纹库
3.将文件全部导入到wenjian.db中
4.测试实验:篡改原目录下的文件aliases
用md5的加密算法验证,和原来的数据库进行比对,有错误,找到被篡改的文件aliases
只显示错误的信息
5.如果原文件的数量发生改变,九无法用md5算法找出,只能将变动后的原文件重新生成一个新的数据,和最初的文件db进行比对,变可以查出文件数量上的变化
6.写成测试脚本
本文转自一百个小排 51CTO博客,原文链接:http://blog.51cto.com/anfishr/1981844,如需转载请自行联系原作者