当前位置: 首页 > news >正文

wordpress外网访问不seo综合查询是什么

wordpress外网访问不,seo综合查询是什么,杭州上城区网站建设,72搭建网站网页###课程目标 掌握for循环语句的基本语法结构 掌握while和until循环语句的基本语法结构 能会使用RANDOM产生随机数 理解嵌套循环 一、随机数 bash默认有一个$RANDOM的变量 默认是0~32767。使用set |grep RANDOM 查看上一次产生的随机数 echo $RANDOM ​ 产生0~1之间…###课程目标 掌握for循环语句的基本语法结构 掌握while和until循环语句的基本语法结构 能会使用RANDOM产生随机数 理解嵌套循环 一、随机数 bash默认有一个$RANDOM的变量 默认是0~32767。使用set |grep RANDOM 查看上一次产生的随机数 echo $RANDOM ​ 产生0~1之间的随机数 echo $[$RANDOM%2] ​ 产生0~2之间的随机数 echo $[$RANDOM%3] ​ 产生0~3之间的随机数 echo $[$RANDOM%4] 。。。。 产生0~9内的随机数 echo $[$RANDOM%10] ​ 产生0~100内的随机数 echo $[$RANDOM%101] ​ ​ 产生50-100之内的随机数 echo $[$RANDOM%5150] ​ 产生三位数的随机数 echo $[$RANDOM%900100] 实战案例1 写一个脚本产生一个phonenum.txt文件随机产生以139开头的手机号1000个每个一行。 分析 1. 产生1000个电话号码脚本需要循环1000次 2. 1398位,后8位随机产生可以让每一位数字都随机产生$[RANDOM%10] 0-9 3. 将随机产生的数字分别保存到变量里然后加上139保存到文件里 ​ #!/bin/bash # random phonenum # 循环1000次产生电话号码并保存到文件 for i in {1..1000} don1$[RANDOM%10]n2$[RANDOM%10]n3$[RANDOM%10]n4$[RANDOM%10]n5$[RANDOM%10]n6$[RANDOM%10]n7$[RANDOM%10]n8$[RANDOM%10]echo 139$n1$n2$n3$n4$n5$n6$n7$n8 phonenum.txt done ​ #!/bin/bash # random phonenum # 循环1000次产生电话号码 for ((i1;i1000;i)) don1$[$RANDOM%10]n2$[$RANDOM%10]n3$[$RANDOM%10]n4$[$RANDOM%10]n5$[$RANDOM%10]n6$[$RANDOM%10]n7$[$RANDOM%10]n8$[$RANDOM%10]echo 139$n1$n2$n3$n4$n5$n6$n7$n8 phonenum.txt done ​ #!/bin/bash i1 while [ $i -le 1000 ] don1$[$RANDOM%10]n2$[$RANDOM%10]n3$[$RANDOM%10]n4$[$RANDOM%10]n5$[$RANDOM%10]n6$[$RANDOM%10]n7$[$RANDOM%10]n8$[$RANDOM%10]echo 139$n1$n2$n3$n4$n5$n6$n7$n8 phonenum.txtlet i done ​ continue:继续跳过本次循环执行下一次循环 break:打断执行循环体外的代码do..done外 exit:退出程序 ​ ​ #!/bin/bash for i in {1..1000} don1$[$RANDOM%10]n2$[$RANDOM%10]n3$[$RANDOM%10]n4$[$RANDOM%10]n5$[$RANDOM%10]n6$[$RANDOM%10]n7$[$RANDOM%10]n8$[$RANDOM%10]echo 139$n1$n2$n3$n4$n5$n6$n7$n8 phonenum.txt done ​ #!/bin/bash #create phone num file for ((i1;i1000;i)) don1$[$RANDOM%10]n2$[$RANDOM%10]n3$[$RANDOM%10]n4$[$RANDOM%10]n5$[$RANDOM%10]n6$[$RANDOM%10]n7$[$RANDOM%10]n8$[$RANDOM%10]echo 139$n1$n2$n3$n4$n5$n6$n7$n8 |tee -a phonenum.txt done ​ #!/bin/bash count0 while true don1$[$RANDOM%10]n2$[$RANDOM%10]n3$[$RANDOM%10]n4$[$RANDOM%10]n5$[$RANDOM%10]n6$[$RANDOM%10]n7$[$RANDOM%10]n8$[$RANDOM%10]echo 139$n1$n2$n3$n4$n5$n6$n7$n8 |tee -a phonenum.txt let countif [ $count -eq 1000 ];thenbreakfi done 在上面的1000个手机号里抽奖5个幸运观众显示出这5个幸运观众。但只显示头3个数和尾号的4个数中间的都用*代替 思路 确定幸运观众所在的行 随机生成 RANDOM $[RANDOM%10001] 将电话号码提取出来 head 和 tail 显示前3个和后4个数到屏幕 最后将电话号码输出到屏幕 echo ${电话号码部分} #!/bin/bash #定义变量 phone/shell04/phonenum.txt for ((i1;i5;i)) do#定位幸运观众所在行号linewc -l $phone |cut -d -f1luck_line$[RANDOM%$line1]#取出幸运观众所在行的电话号码luck_numhead -$luck_line $phone|tail -1#显示到屏幕echo 139****${luck_num:7:4}echo $luck_num luck.txt#删除已经被抽取的幸运观众号码sed -i /$luck_num/d $phone done ​ ​ ​ #!/bin/bash file/shell04/phonenum.txt for i in {1..5} dofile_numwc -l $file |cut -d -f1lineecho $[$RANDOM%$file_num1]luckhead -n $line  $file|tail -1echo 139****${luck:7:4} echo $luck /shell04/luck_num.txt done ​ ​ #!/bin/bash for ((i1;i5;i)) do filephonenum.txt linecat phonenum.txt |wc -l 1000 luckline$[$RANDOM%$line1] phonecat $file|head -$luckline|tail -1 echo 幸运观众为:139****${phone:7:4} done ​ ​ 或者 #!/bin/bash # choujiang phonephonenum.txt for ((i1;i5;i)) donumwc -l phonenum.txt |cut -d -f1lineecho $[$RANDOM%$num1]luckhead -$line $phone |tail -1sed -i /$luck/d $phoneecho 幸运观众是:139****${luck:7:4} done ​ 批量创建5个用户每个用户的密码为一个随机数 思路 循环5次创建用户 产生一个密码文件来保存用户的随机密码 从密码文件中取出随机密码赋值给用户 #!/bin/bash #crate user and set passwd #产生一个保存用户名和密码的文件 echo user0{1..3}:itcast$[$RANDOM%90001000]#~|tr \n user_pass.file #循环创建5个用户 for ((i1;i5;i)) douserhead -$i user_pass.file|tail -1|cut -d: -f1passhead -$i user_pass.file|tail -1|cut -d: -f2useradd $userecho $pass|passwd --stdin $user done ​ 或者 for i in cat user_pass.file douserecho $i|cut -d: -f1passecho $i|cut -d: -f2useradd $userecho $pass|passwd --stdin $user done ​ #!/bin/bash #crate user and set passwd #产生一个保存用户名和密码的文件 echo user0{1..3}:itcast$[$RANDOM%90001000]#~|tr \n|tr : user_pass.file #循环创建5个用户 while read user pass do useradd $user echo $pass|passwd --stdin $user done user_pass.file ​ ​ pwgen工具产生随机密码 [rootserver shell04]# pwgen -cn1 12 Meep5ob1aesa [rootserver shell04]# echo user0{1..3}:$(pwgen -cn1 12) user01:Bahqu9haipho user02:Feiphoh7moo4 user03:eilahj5eth2R [rootserver shell04]# echo user0{1..3}:$(pwgen -cn1 12)|tr \n user01:eiwaShuZo5hi user02:eiDeih7aim9k user03:aeBahwien8co 二、嵌套循环 一个循环体内又包含另一个完整的循环结构称为循环的嵌套。在外部循环的每次执行过程中都会触发内部循环直至内部完成一次循环才接着执行下一次的外部循环。for循环、while循环和until循环可以相互嵌套。 demo1打印如下图案 1 12 123 1234 12345 ​ ​ X轴 for ((i1;i5;i));do echo -n $i;done Y轴 负责打印换行 ​ #!/bin/bash for ((y1;y5;y)) dofor ((x1;x$y;x))doecho -n $xdone echo done ​ #!/bin/bash for ((y1;y5;y)) dox1while [ $x -le $y ]doecho -n $xlet xdone echo done demo2打印如下图案 5 54 543 5432 54321 ​ Y轴打印换行 X轴打印数字 5-1 ​ #!/bin/bash y5 while (( $y 1 )) dofor ((x5;x$y;x--))doecho -n $xdone echo let y-- done ​ ​ #!/bin/bash for (( y5;y1;y--)) dofor (( x5;x$y;x--))doecho -n $xdone echo done ​ #!/bin/bash y5 while [ $y -ge 1 ] dofor ((x5;x$y;x--))doecho -n $xdone echo let y-- done ​ ​ #!/bin/bash y1 until (( $y 5 )) dox1while (( $x $y ))doecho -n $[6-$x]let xdone echo let y done ​ ​ 课后打印 54321 5432 543 54 5 ​ 课堂练习打印九九乘法表三种方法 1 12 123 1234 12345 ​ for ((y1;y5;y)) dofor ((x1;x$y;x))doecho -n $xdone echo done ​ 1*11 ​ 1*22   2*24 ​ 1*33   2*36   3*39 ​ 1*44   2*48   3*412  4*416 ​ 1*55   2*510  3*515  4*520  5*525 ​ 1*66   2*612  3*618  4*624  5*630  6*636 ​ 1*77   2*714  3*721  4*728  5*735  6*742  7*749 ​ 1*88   2*816  3*824  4*832  5*840  6*848  7*856  8*864 ​ 1*99   2*918  3*927  4*936  5*945  6*954  7*963  8*972  9*981 ​ ​ Y轴循环9次打印9行空行 X轴循环次数和Y轴相关打印的是X和Y轴乘积 $[] $(()) ​ #!/bin/bash for ((y1;y9;y)) dofor ((x1;x$y;x))doecho -ne $x*$y$[$x*$y]\tdone echo echo done ​ ​ #!/bin/bash y1 while [ $y -le 9 ] dox1while [ $x -le $y ]doecho -ne $x*$y$[$x*$y]\tlet xdone echo echo let y done ​ 或者 #!/bin/bash for i in seq 9 dofor j in seq $idoecho -ne  $j*$i$[$i*$j]\tdone echo echo done 或者 #!/bin/bash y1 until [ $y -gt 9 ] dox1until [ $x -gt $y ]doecho -ne $x*$y$[ $x*$y ]\tlet xdone echo echo let y done ​ 三、阶段性总结 1. 变量定义 普通变量定义 变量名值 shell变量默认可以赋予任何类型 $变量名 ${变量名} ${变量名:从第几个字符开始:截取几个字符} unset 变量名 ​ 交互式 read 变量名 -p -t -s -n ​ 数组定义 array(var1 var2 var3 ...) array[0]var1 array[1]var2 array[2]var3 普通数组数组的索引是整数 ​ 定义关联数组 关联数组索引是字符串 ​ 获取数组里的元素 ${array[*]} ${array[2]} ${array[]:1:2} ${!array[]} 获取数组的索引号下标 ${#array[]} 获取数组索引号的个数 ​ 定义有类型的变量 declare -i -x -a -A ​ ​ ​ ​ 2. 循环语句 for: 列表循环、非列表循环、类C风格 循环次数已知 while 条件为真进入循环条件为假退出循环 循环次数跟条件有关 until 条件为假进入循环条件为真退出循环 循环次数跟条件有关 ​ 3. 影响shell程序的内置命令 exit 退出整个程序 break   结束当前循环或跳出本层循环 continue 忽略本次循环剩余的代码直接进行下一次循环 shift 使位置参数向左移动默认移动1位可以使用shift 2 ​ 以下脚本都能够实现用户自定义输入数字然后脚本计算和 [rootMissHou shell04]# cat shift.sh #!/bin/bash sum0 while [ $# -ne 0 ] do let sum$sum$1 shift done echo sum$sum ​ ​ [rootMissHou shell04]# cat for3.sh #!/bin/bash sum0 for i do let sum$sum$i done echo sum$sum ​ ​ : true false ​ 4. 补充扩展expect expect 自动应答 tcl语言 需求1A远程登录到server上什么都不做 #!/usr/bin/expect # 开启一个程序 spawn ssh root10.1.1.1 # 捕获相关内容 expect {(yes/no)? { send yes\r;exp_continue }password: { send 123456\r } } interact   //交互 ​ 脚本执行方式 # ./expect1.sh # /shell04/expect1.sh # expect -f expect1.sh ​ 1定义变量 #!/usr/bin/expect set ip 10.1.1.2 set pass 123456 set timeout 5 spawn ssh root$ip expect {yes/no { send yes\r;exp_continue }password: { send $pass\r } } interact ​ ​ 2使用位置参数 #!/usr/bin/expect set ip [ lindex $argv 0 ] set pass [ lindex $argv 1 ] set timeout 5 spawn ssh root$ip expect {yes/no { send yes\r;exp_continue }password: { send $pass\r } } interact ​ 需求2A远程登录到server上操作 #!/usr/bin/expect set ip 10.1.1.1 set pass 123456 set timeout 5 spawn ssh root$ip expect {yes/no { send yes\r;exp_continue }password: { send $pass\r } } ​ expect # send rm -rf /tmp/*\r send touch /tmp/file{1..3}\r send date\r send exit\r expect eof ​ 需求3shell脚本和expect结合使用在多台服务器上创建1个用户 [rootserver shell04]# cat ip.txt 10.1.1.1 123456 10.1.1.2 123456 ​ ​ 1. 循环 2. 登录远程主机——ssh——从ip.txt文件里获取IP和密码分别赋值给两个变量 3. 使用expect程序来解决交互问题 ​ #!/bin/bash # 循环在指定的服务器上创建用户和文件 while read ip pass do/usr/bin/expect -END /dev/nullspawn ssh root$ipexpect {yes/no { send yes\r;exp_continue }password: { send $pass\r }}expect # { send useradd yy1;rm -rf /tmp/*;exit\r }expect eofEND done ip.txt ​ ​ ​ #!/bin/bash cat ip.txt|while read ip pass do{ ​/usr/bin/expect -HOUspawn ssh root$ipexpect {yes/no { send yes\r;exp_continue }password: { send $pass\r }}expect #send hostname\rsend exit\rexpect eofHOU ​} done wait echo user is ok.... ​ ​ 或者 #!/bin/bash while read ip pass do{ ​/usr/bin/expect -HOUspawn ssh root$ipexpect {yes/no { send yes\r;exp_continue }password: { send $pass\r }}expect #send hostname\rsend exit\rexpect eofHOU ​} doneip.txt wait echo user is ok.... 四、综合案例 实战案例2 写一个脚本将跳板机上yunwei用户的公钥推送到局域网内可以ping通的所有机器上 说明主机和密码文件已经提供 10.1.1.1:123456 10.1.1.2:123456 案例分析 关闭防火墙和selinux 判断ssh服务是否开启默认ok 循环判断给定密码文件里的哪些IP是可以ping通 ip pass 判断IP是否可以ping通——$?—流程控制语句 密码文件里获取主机的IP和密码保存变量 ip pass 判断公钥是否存在—不存在创建它 ssh-copy-id 将跳板机上的yunwei用户的公钥推送到远程主机—expect解决交互 将ping通的主机IP单独保存到一个文件 测试验证 代码拆分 1.判断yunwei用户的公钥是否存在 [ ! -f /hoem/yunwei/.ssh/id_rsa ] ssh-keygen -P -f ./id_rsa ​ 2.获取IP并且判断是否可以ping通 1)主机密码文件ip.txt10.1.1.1:12345610.1.1.2:123456 2) 循环判断主机是否ping通tr : ip.txt|while read ip passdoping -c1 $ip /dev/nullif [ $? -eq 0 ];then推送公钥fidone​ ​ 3.非交互式推送公钥 /usr/bin/expect -END /dev/nullspawn ssh-copy-id root$ipexpect {yes/no { send yes\r;exp_continue }password: { send $pass\r }}expect eofEND ​ ​ 最终实现 环境准备 jumper-server 有yunwei用户 ​ yunwei用户sudo授权 visudo ## Allow root to run any commands anywhere root    ALL(ALL)       ALL yunwei  ALL(root)      NOPASSWD:ALL,!/sbin/shutdown,!/sbin/init,!/bin/rm -rf / ​ 解释说明 1第一个字段yunwei指定的是用户可以是用户名也可以是别名。每个用户设置一行多个用户设置多行也可以将多个用户设置成一个别名后再进行设置。 2第二个字段ALL指定的是用户所在的主机可以是ip,也可以是主机名表示该sudo设置只在该主机上生效ALL表示在所有主机上都生效限制的一般都是本机也就是限制使用这个文件的主机;一般都指定为ALL表示所有的主机不管文件拷到那里都可以用。比如10.1.1.1...则表示只在当前主机生效。 3第三个字段root括号里指定的也是用户指定以什么用户身份执行sudo即使用sudo后可以享有所有root账号下的权限。如果要排除个别用户可以在括号内设置比如ALL(ALL,!oracle,!pos)。 4第四个字段ALL指定的是执行的命令即使用sudo后可以执行所有的命令。除了关机和删除根内容以外也可以设置别名。NOPASSWD: ALL表示使用sudo的不需要输入密码。 5也可以授权给一个用户组%admin ALL(ALL) ALL 表示admin组里的所有成员可以在任何主机上以任何用户身份执行任何命令 ​脚本实现 #!/bin/bash #判断公钥是否存在 [ ! -f /home/yunwei/.ssh/id_rsa ] ssh-keygen -P -f ~/.ssh/id_rsa ​ #循环判断主机是否ping通如果ping通推送公钥 tr : /shell04/ip.txt|while read ip pass do {ping -c1 $ip /dev/nullif [ $? -eq 0 ];thenecho $ip ~/ip_up.txt/usr/bin/expect -END /dev/nullspawn ssh-copy-id root$ipexpect {yes/no { send yes\r;exp_continue }password: { send $pass\r }}expect eofENDfi } done wait echo 公钥已经推送完毕正在测试.... #测试验证 remote_iptail -1 ~/ip_up.txt ssh root$remote_ip hostname /dev/null test $? -eq 0 echo 公钥成功推送完毕 ​ 实战案例3 写一个脚本统计web服务的不同连接状态个数 ​ #!/bin/bash #count_http_80_state #统计每个状态的个数 declare -A array1 statesss -ant|grep 80|cut -d -f1 for i in $states dolet array1[$i] done #通过遍历数组里的索引和元素打印出来 for j in ${!array1[]} doecho $j:${array1[$j]} done​ 五、课后作业 1、将/etc/passwd里的用户名分类分为管理员用户系统用户普通用户。 2、写一个倒计时脚本要求显示离2019年1月1日元旦的凌晨0点还有多少天多少时多少分多少秒。 3、写一个脚本把一个目录内的所有空文件都删除最后输出删除的文件的个数。
http://www.zqtcl.cn/news/142448/

相关文章:

  • 曲阜网站建设价格做5173这样的网站要多少人
  • 深圳网站建设服务合同wordpress 增删改查
  • 网站建设好处wordpress评论积分
  • 珠海网站策划网站不能自行备案吗
  • 在vs中做网站如何连接数据库wordpress模板如何安装教程
  • 10g空间网站做视频网站手机网站搜索
  • 服务器上面建设网站网站为什么显示正在建设中
  • 德阳网站优化网络顾问
  • 大淘客可以做几个网站hm网上商城
  • 网站建设分配人员方案呼市网站制作招聘
  • 电商网站建设方案100例用什么做php网站
  • 网站开发设计课程教案南宁网站建设招聘
  • 常州微信网站建设wordpress 中英主题
  • 新零售型网站开发网络营销常用的工具和方法
  • 陕西省建设监理协会网站证书网站建设去哪里找客户
  • 上海网站注销吗如何在wordpress上调用百度地图
  • 网站设计与开发实例网站semseo先做哪个
  • 一个网站做3个关键词够找人建设一个网站多少钱
  • 网站群软件阿里云虚拟主机wordpress
  • 自己做个网站要多少钱温州网站开发平台
  • 北京鑫创网站建设找个网站你知道的
  • 做网站找客户电子商务网站开发与管理
  • 宝安高端网站设计怎么样qq钓鱼网站怎么制作
  • 学习教建网站公众号小程序怎么注销
  • 网站建设或网站优化排名做建筑设计网站
  • 外贸seo外贸推广外贸网站建设外贸网站建设用图片设置网站首页
  • 网站模板安装出入成都通知今天
  • wordpress网站 添加微信网站设计O2O平台佛山总代理
  • 广州网站开发定制方案网站建设应该考虑哪些方面
  • 在线网站建设培训门户类网站图片