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

建设h网站风险大吗技能培训机构排名前十

建设h网站风险大吗,技能培训机构排名前十,微信小程序开发详解,来个网站好人有好报2024目录 Shell脚本基础 Shell脚本组成 Shell脚本工作方式 编写简单的Shell脚本 Shell脚本参数 Shell脚本接收参数 Shell脚本判断用户参数 文件测试与逻辑测试语句 整数测试比较语句 字符串比较语句 Shell流程控制 if条件判断语句 单分支 双分支 多分支 for循环语句…

目录

Shell脚本基础

Shell脚本组成

Shell脚本工作方式

编写简单的Shell脚本

Shell脚本参数

Shell脚本接收参数

Shell脚本判断用户参数

文件测试与逻辑测试语句

整数测试比较语句

字符串比较语句

Shell流程控制

if条件判断语句

单分支

双分支

多分支

for循环语句(根据范围进行循环)

while循环语句(根据条件进行循环)

case条件测试语句(判断语句)

Shell脚本编写计划任务

一次性计划任务

长期性计划任务


Shell脚本基础

Shell脚本组成

Shell脚本由三部分组成

 脚本声明、脚本注释、脚本命令

脚本声明

告诉系统我们是使用哪个解释器来执行Shell脚本

现在基本上都是使用/bin/bash解释器

所以一般脚本声明为 #!/bin/bash    

脚本注释

写一些说明信息(包括功能介绍、参数介绍等,可有可无)

此注释不会被系统读,只是让用户看的

#开头

脚本命令

通过这些命令来完成某些事情

Shell脚本工作方式

交互式  用户每输入一条命令就立即执行

批处理  用户事先编写一个完整的Shell脚本,Shell就会一次性执行脚本中的命令

编写简单的Shell脚本

简单的Shell脚本可以理解为就是命令的堆积,能够实现一些固定的功能

没有调节测试语句、循环语句赋予的灵活的调节判断功能

创建Shell脚本

shell脚本可以没有后缀,但是为了区分,可以给个后缀.sh

vim 123.sh  创建/编辑 名称为123的Shell脚本

编写简单的Shell脚本

#!/bin/bash                                   编写脚本声明

#this is test                                   编写脚本注释

pwd                                              编写脚本显示当前位置

grep /bin/bash /etc/passwd | wc -l  编写脚本显示可登录服务器的用户数量

执行Shell脚本

. 123.sh   路径+Shell脚本名,直接执行 Shell脚本(用户需要执行权限,可以更改权限)

         . 表示当前路径

bash 123.sh  bash shell脚本名称,通过bash命令调用Shell脚本


Shell脚本参数

Shell脚本接收参数

为了让Shell脚本程序更好地满足用户的一些实时需求

需要让脚本程序能够像之前执行命令那样接收用户的参数

此时就需要向Shell脚本传递参数

Shell脚本如何接收用户参数

在Shell脚本通过定义$N来接受用户输入的参数

   $1、接收第一个位置参数

   $2  接收第二个位置参数

Shell脚本的特殊参数

   $0  脚本的名称

   $#  统计接收参数的总数(用户输入的所有参数的总数)

   $*  接收到的所有参数有哪些(用户输入的所有参数)

编写Shell脚本接收用户参数

编写Shell脚本

#!/bin/bash

#this is test

echo $1,$2,$4                             接收用户输入的第1、2、4个参数并输出

echo "neame is $0"                         显示脚本的名称

echo "count receive parameter number is  $#" 统计用户输入的参数总数

echo "all receive  parameter is $*"            用户输入的参数具体有哪些

执行脚本并输入参数

bash 123.sh 1 2 3 4 5

Shell脚本判断用户参数

判断语句格式:[ 条件表达式 ](注意条件表达式前后都有空格)

由于变量是没有定义类型的

在Shell中需要对输入的参数、变量进行类型判断(需要手动去完成,通过创建条件表达式完成)

根据测试对象的不同,条件表达式可分为以下4种

文件测试语句、逻辑测试语句(查看判断结果)、整数值比较语句、字符串比较语句

文件测试与逻辑测试语句

作用

判断文件是否存在

判断是什么类型的文件(一般文件、目录文件、设备(块)文件、链接文件、管道文件)

判断文件权限(写入、读取、执行权限)

具体操作符

[ -e 文件名称 ]     判断文件是否存在 

[ -f 文件名称 ]     判断文件是否为一般文件(-d 目录文件、-l 链接文件、-s 套接字文件、-b块设备文件、-c 字符设备文件、-p 管道文件)

[ -w 文件名称 ]     判断文件的权限是否可以写入(-r是否可以读取、-x是否可以执行)

进行判断后如何得到判断结果

方一 通过echo$? 来得到判断结果

echo $?    输出上一个返回值的结果(可以用此命令来查看判断文件的结果)

如果结果为0,表示上一个命令执行成功;非零表示上一个命令执行失败

此方法要使用两条命令查看,麻烦

方二  通过逻辑测试语句(逻辑操作操作符)来查看判断结果

与(&&)  前面的语句如果执行成功,执行后面的语句

或(||)    前面的语句如果执行失败,执行后面的语句

非(!)    取反值(! 代表取反值;!=代表不等于)

[ -e 文件名 ] && 命令    如果文件存在,就执行命令

[ ! -e 文件名 ]            将文件是否存在的结果取反

编写文件判断Shell脚本

#!/bin/bash

#this is test

[ -e /dev/fastab ]                      判断/dec/fstab文件是否存在

echo "this file $?"                      输出上一个判断文件执行结果

[ $USER=root ] && echo " be" || “no be”  如果当前用户为root,输出be,否则输出no be

整数测试比较语句

对于数字比较所使用的操作符不能用>、<,因为>、<是重定向符

数据比较通过操作符 -eq、-gt、-lt等来执行

 [ 1 -eq 2 ]    判断1是否等于2

 [ 1 -gt 2 ]     判断1是否大于2

 [ 1 -lt 2 ]      判断1是否小于2

 -ne          是否不等于

 -le           是否等于或小于

 -ge          是否大于或等于

编写整数比较语句

#!/bin/bash

#this is test

FREE=`free -m | grep Mem | awk '{print $4}'`           将空闲内存的值赋值给变量FREE

[ $FREE -le 1024 ] && echo "$FREE is good" || echo "$FREE is bad"  

比较空闲内存大小,小于等于1024为good,否则为bad

字符串比较语句

-z   判断字符串内容是否为空

!=   比较字符串内容是否不同

=    比较字符串内容是否相同

编写字符串比较语句

#!/bin/bash

#this is test

[ -z $USER=root ]        判断当前用户是否为是root

echo $?

[ ! -z $USER=root ]       判断当前用户是否不是root

echo $?


Shell流程控制

if条件判断语句

if 条件测试语句(if开头,fi结尾),可以分为单分支、双分支、多分支

单分支

语句格式

   if 测试条件

     then 条件通过所执行的命令(可以多条,如果在同一行用 ; 分隔多条命令)

   fi

编写单分支脚本

#!/bin/bash

if [ ! -e /etc/admin ]                            判断/etc/admin是不是不存在

then mkdir -p /etc/admin                       如果不存在,则创建/etc/admin

  echo `[ -e /etc/admin ] && echo 'create success'` 然后再判断/etc/admin是否创建成功

fi

双分支

语句格式

   if 测试条件

      then  条件通过所执行的操作

      else   条件没有通过执行的操作

fi

编写双分支脚本

#!/bin/bash

if [ ! -e /etc/admin ]     判断/etc/admin是不是不存在

then mkdir -p /etc/admin ; echo `[ -e /etc/admin ] && echo 'create success'`    如果文件不存在,创建文件并判断文件是否创建成功

else echo 'this file is be'  如果文件存在,则输出this file is be

fi

多分支

语句格式

    if 测试条件1

      then     条件1通过后执行的操作

    elif  测试条件2

      then     条件2通过后执行的操作

    else

         条件1和条件2都不满足的操作

    fi

多分支编程

#!/bin/bash

read -p "input number: " NUMBER      将用户输入的数据赋值到变量NMBER

if   [ $NUMBER -ge 80 ] && [ $NUMBER -le 100 ];then 判断值是否≥80,≤100

       echo 'good'                                   输出

elif [ $NUMBER -ge 60 ] && [ $NUMBER -le 79 ];then   判断值是否≥60,≤79

       echo 'pass'

elif [ $NUMBER -ge 0 ] && [ $NUMBER -le 59 ] ;then    判断值是否≥0,≤59

       echo 'fail'

else                                              以上条件都不满足

       echo 'again input'

read -p "Enter:" GRADE

 read 变量  读取单行数据内容,并将此内容赋值给变量GRADE

 -p 提示用户输入信息

注意:字母与数字不能够作比较,小数也不可以和整数比较

for循环语句(根据范围进行循环)

语句格式

 for 变量名 in 取值列表

   do

      操作命令

   done

编写for循环语句

#!/bin/bash

read -p "input passwd: " PASSWD        输入密码并赋值到变量PASSWD

for USER1 in `cat user.txt`               从文件中提取数据赋值到变量USER1

do

       id $USER1 &> /dev/null    查看用户信息并将回显的内容送到黑洞

       if [ $? -eq  0 ];then        如果用户存在,即上个命令执行成功,输出用户is be

          echo "$USER1 is be"

       else                     如果用户不存在,上个命令执行就不成功,执行以下命令

          useradd $USER1 &> /dev/null 

          echo $PASSWD | passwd --stdin $USER1 &> /dev/null

       fi

done

while循环语句(根据条件进行循环)

只要条件为真,则一直循环,只要条件不成立,才会停止

语句格式

 while 条件

   do   执行操作

   done

while true   一直循环下去,直到遇到强制退出符

case条件测试语句(判断语句)

语句格式

 case  变量值 in 范围值1)

          输出命令1

          ;;

      范围值2)

          输出命令2

          ;;

       *)

          默认命令

  esac

注意

case 命令只有右边的小括号,没有左边的小括号

case语句中的 | 指的是 逻辑或 的意思

* 匹配的是空值或者无穷多的信息

前面的范围值后面要加;;   最后的范围值不需要加;;

编写case判断语句

#!/bin/bash

read -p "input :" KEY

case "$KEY" in

        [a-z]|[A-Z])

                echo "$KEY this is  letter"

                ;;

        [0-9])

                echo "$KEY this is number"

                ;;

        *)

                echo "$KEY this is ohter characters"

esac


Shell脚本编写计划任务

管理员可以编辑自己的和普通用户的计划任务

普通用户只可以编辑自己的计划任务

计划任务根据执行方式分为一次性计划任务、长期性计划任务

一次性计划任务

此计划只执行一次,执行后或就不会再执行了

通过at命令来实现

at 时间

 输入想要执行的任务

 ctrl + d 保存并退出

 ctrl + c 直接退出

at -c  任务编码   查看计划任务的工作

at -l             显示待执行的任务列表(显示任务编号 任务执行时间  发起用户)

at -d  任务编码  删除指定待执行任务

at -m            任务执行后给用户发邮件

at now +5 MINUTE 创建任务,5分钟后执行(HOUR时、DAY天、MONTH月)

atrm命令

atrm 任务编码     删除计划任务

长期性计划任务

长期性计划任务,周期性的根据时间规则执行任务

时间规则格式-此格式是固定的,如果不配置参数,需要使用*来做占位

分、时、日、月、星期 、命令

其中命令的使用方式必须是 命令路径方式(可以通过which来进行查找)

即ls -l 需要写为 /usr/bin/ls -l

例子:

10 21 12  *    *    命令       每月的12号21点10分执行任务

*  *  *  */2    *   命令       当下开始每间隔两个月  

*  *  *   1,2,3  *   命令       1、2、3个月

*  *  *   1-5   *   命令       1到5个月

一般星期和日期只选择一个进行书写

crontab命令

长期计划任务通过Linux的crond服务来实现 

而crond服务需要通过crontab命令来进行配置

即:crond是服务名称、crontab是配置工具名称

需要开启crond服务

systemctl enable crond  开启crond服务

systemctl restart crond  重新启动crond服务

如果配置了计划之后没有生效,可以重新启动下服务

命令格式

 crontab -e  创建/编辑计划任务

 crontab -l   指定计划任务

 crontab -r   删除计划任务

也可以直接通过命令路径的方式编辑计划

vim /etc/crontab  来创建/编辑计划任务

不过不推荐使用vim进行编辑,虽然有注释,但是没有纠错功能

使用crontab有纠错功能,不过crontab 默认也是通过调用vim编译器来实现的

注意事项

当普通用户使用at和crontab不起作用时,不一定是计划任务的原因

还可能是用户权限的问题

http://www.dt0577.cn/news/18622.html

相关文章:

  • 怎么建立一个网站让百度搜到网上推
  • 郑州网站制作企业香港服务器
  • 向祖国建设者致敬网站seo英文全称
  • 开发商城网站建设seo诊断a5
  • 做动态网站用哪个程序软件比较简单?中国最新领导班子
  • 用 net做网站新闻源软文推广平台
  • 淮安网站建设找谁好荆门刚刚发布的
  • 怀宁县住房与城乡建设局网站论文收录网站排名
  • 国外b2b平台有哪些平台泰安seo
  • macbook做网站国内广告投放平台
  • 服装销售网站设计与制作拉新推广怎么做代理
  • 如何在电脑上建立网站渠道销售怎么找客户
  • 如何自己做网站怎样制作属于自己的网站
  • 肇庆网站建设方案优化网站关键词
  • 网站建设怎么做分录营销网站建设流程
  • 做动车哪个网站查五种常用的网站推广方法
  • 张店网站建设哪家好百度权重查询爱站网
  • wordpress当前菜单山西免费网站关键词优化排名
  • 做信息图的网站有哪些色盲测试图
  • 网站制作 视频搜索引擎排名机制
  • 海报设计培训seo怎么优化方法
  • 什么网站比谷歌还好百度客服中心人工电话
  • 兰山网站建设百度竞价推广自己可以做吗
  • 增城网站定制开发公司注册网站怎么注册
  • 网站建设kaicz视频号排名优化帝搜软件
  • 慢慢网站建设乔拓云网站注册
  • 做购物网站适合的服务器互联网项目推广平台有哪些
  • 做公众号编辑用什么网站百度竞价排名推广
  • 东营 微信网站建设谷歌竞价广告
  • 有没有专门做游戏人物的绅士视频网站成都关键词排名系统