首页 > 系统相关 >Linux学习-DAY7

Linux学习-DAY7

时间:2023-02-05 15:31:53浏览次数:36  
标签:语句 DAY7 crontab 学习 命令 任务 测试 Linux 执行

2.2接收用户参数

Linux系统中的Shell脚本语言内设了用于接收参数的变量,变量之间使用空格间隔。例如,$0对应的是当前Shell脚本程序的名称,$#对应的是总共有几个参数,$*对应的是所有位置的参数值,$?对应的是显示上一次命令的执行返回值,而$1、$2、$3……则分别对应着第N个位置的参数值

Linux学习-DAY7_计划任务

2.3判断用户参数

系统在执行mkdir命令时会判断用户输入的信息,即判断用户指定的文件夹名称是否已经存在,如果存在则提示报错;反之则自动创建。Shell脚本中的条件测试语法可以判断表达式是否成立,若条件成立则返回数字0,否则便返回非零值。

Linux学习-DAY7_取值_02

条件测试语句分4种:文件测试语句、逻辑测试语句、整数值比较语句、字符串比较语句。

 文件测试所用的参数

操作符

作用

-d

测试文件是否为目录类型

-e

测试文件是否存在

-f

判断是否为一般文件

-r

测试当前用户是否有权限读取

-w

测试当前用户是否有权限写入

-x

测试当前用户是否有权限执行

​&&是逻辑“与”,只有当前面的语句执行成功的时候才会执行后面的语句。

||是逻辑“或”,只有当前面的语句执行失败的时候才会执行后面的语句。

!是逻辑“非”,代表对逻辑测试结果取反值;之前若为正确则变成错误,若为错误则变成正确。

整数比较运算符仅是对数字的操作,不能将数字与字符串、文件等内容一起操作,而且不能想当然地使用日常生活中的等号、大于号、小于号等来判断。因为等号与赋值命令符冲突,大于号和小于号分别与输出重定向命令符和输入重定向命令符冲突。因此一定要使用规范的整数比较运算符来进行操作。

 可用的整数比较运算符

操作符

作用

-eq

是否等于

-ne

是否不等于

-gt

是否大于

-lt

是否小于

-le

是否等于或小于

-ge

是否大于或等于

字符串比较语句用于判断测试字符串是否为空值,或两个字符串是否相同。它经常用来判断某个变量是否未被定义(即内容为空值),理解起来也比较简单。

 常见的字符串比较运算符

操作符

作用

=

比较字符串内容是否相同

!=

比较字符串内容是否不同

-z

判断字符串内容是否为空

3.流程控制语句

3.1 if条件测试语句

if条件语句的单分支结构由if、then、fi关键词组成,而且只在条件成立后才执行预设的命令,相当于口语的“如果……那么……”。

Linux学习-DAY7_字符串_03

f条件语句的双分支结构由if、then、else、fi关键词组成,它进行一次条件匹配判断,如果与条件匹配,则去执行相应的预设命令;反之则去执行不匹配时的预设命令,相当于口语的“如果……那么……或者……那么……”。

Linux学习-DAY7_取值_04

if条件语句的多分支结构由if、then、else、elif、fi关键词组成,它进行多次条件匹配判断,这多次判断中的任何一项在匹配成功后都会执行相应的预设命令,相当于口语的“如果……那么……如果……那么……”。

Linux学习-DAY7_字符串_05

3.2 for条件循环语句

for循环语句允许脚本一次性读取多个信息,然后逐一对信息进行操作处理。当要处理的数据有范围时,使用for循环语句就再适合不过了。

Linux学习-DAY7_字符串_06

3.3 while条件循环语句

hile条件循环语句是一种让脚本根据某些条件来重复执行命令的语句,它的循环结构往往在执行前并不确定最终执行的次数,完全不同于for循环语句中有目标、有范围的使用场景。while循环语句通过判断条件测试的真假来决定是否继续执行命令,若条件为真就继续执行,为假就结束循环。

Linux学习-DAY7_字符串_07

3.4 case条件测试语句

case语句是在多个范围内匹配数据,若匹配成功则执行相关命令并结束整个条件测试;如果数据不在所列出的范围内,则会去执行星号(*)中所定义的默认命令。

Linux学习-DAY7_取值_08

3.5计划任务服务程序

计划任务分为一次性计划任务与长期计划任务。

一次性计划任务只执行一次,一般用于临时的工作需求。可以用at命令实现这种功能,只需要写成“at时间”的形式就行。如果想要查看已设置好但还未执行的一次性计划任务,可以使用at -l命令;要想将其删除,可以使用“atrm任务序号”。at命令的参数及其作用


参数

作用

-f

指定包含命令的任务文件

-q

指定新任务名称

-l

显示待执行任务列表

-d

删除指定待执行任务

-m

任务执行后给用户发邮件

还有些时候,我们希望Linux系统能够周期性地、有规律地执行某些具体的任务,那么Linux系统中默认启用的crond服务简直再适合不过了。创建、编辑计划任务的命令为crontab -e,查看当前计划任务的命令为crontab -l,删除某条计划任务的命令为crontab -r。另外,如果您是以管理员的身份登录的系统,还可以在crontab命令中加上-u参数来编辑他人的计划任务。

 crontab命令的参数及其作用

参数

作用

-e

编辑计划任务

-u

指定用户名称

-l

列出任务列表

-r

删除计划任务

crond服务设置任务的参数格式

Linux学习-DAY7_字符串_09

字段

说明

分钟

取值为0~59的整数

小时

取值为0~23的任意整数

日期

取值为1~31的任意整数

月份

取值为1~12的任意整数

星期

取值为0~7的任意整数,其中0与7均为星期日

命令

要执行的命令或程序脚本

假设在每周一、三、五的凌晨3:25,都需要使用tar命令把某个网站的数据目录进行打包处理,使其作为一个备份文件。我们可以使用crontab -e命令来创建计划任务,为自己创建计划任务时无须使用-u参数。crontab –e命令的具体实现效果和crontab -l命令的结果如下所示:

[root@linuxprobe ~]# crontab -e
no crontab for root - using an empty one
crontab: installing new crontab
[root@linuxprobe ~]# crontab -l
25 3 * * 1,3,5 /usr/bin/tar -czvf backup.tar.gz /home/wwwroot

如果在crond服务中需要同时包含多条计划任务的命令语句,应每行仅写一条。

在crond服务的配置参数中,一般会像Shell脚本那样以#号开头写上注释信息,这样在日后回顾这段命令代码时可以快速了解其功能、需求以及编写人员等重要信息。

计划任务中的“分”字段必须有数值,绝对不能为空或是*号,而“日”和“星期”字段不能同时使用,否则就会发生冲突。


标签:语句,DAY7,crontab,学习,命令,任务,测试,Linux,执行
From: https://blog.51cto.com/u_14211843/6038288

相关文章

  • 安装Windows Server 2022 - 初学者系列 - 学习者系列文章
          这天要写一个关于系统部署的系列文章,涉及到WindowsServer2022操作系统的安装,所以就写了此文。Windows系列的操作系统安装,以前的博文中都有介绍,这里再次做一......
  • 日常学习(6)gcc编译选项
    gcc编译选项-nostartfiles连接的时候不使用标准系统的启动文件。-nodefaultlibs连接的使用不使用标准系统库。-nostdlib链接的时候不使用标准的系统启动文件和系统库......
  • RocketMQ 学习笔记
    为什么要学习RocketMQ?相信无论是前端还是后端的同学,不管是在平常的自我充电、还是日常的工作中,对RocketMQ、Kafka等主流消息队列多多少少都有一定的了解。现在的服务端......
  • 计算机导论学习记录(一)
    这个作业的目标<自我介绍以及学习内容的系列记录>这个作业属于哪个课程https://edu.cnblogs.com/campus/fzzcxy/2023learning这个作业要求在哪里https://www......
  • 超详细--redis在Linux环境搭建主从复制
    引言Redis是一个高性能的缓存中间件,一个Redis服务器可以支撑很多的并发请求。但是在一些超高的并发场景下,虽然Redis读写速度很快,但也会产生读写压力过大,服务器负载过高的情......
  • Linux脚本Shell脚本第三章:for 、while循环
    一、for循环1.基本格式for  变量名称(注意是名称不是变量$等)  [ in  名称范围 ](可以不写)do  执行内容   若满足循环则做什么动作done  ......
  • Linux环境下:程序的链接, 装载和库[可执行文件的装载]
    现代操作系统如何装载可执行文件?给进程分配独立的虚拟地址空间建立虚拟地址空间和可执行文件的映射关系把CPU指令寄存器设置成可执行文件的入口地址,启动执行可执行......
  • Linux系统之安装Linux管理工具inpanel
    (Linux系统之安装Linux管理工具inpanel)一、inpanel介绍1.inpanel简介inpanel是一款一个基Web的Linux开源管理工具。这个项目的目标是做出最简单、最快速、最无痛的Li......
  • FHQ-Treap 学习笔记
    FHQ-Treap学习笔记Treap=Tree+Heap.Treap是一种弱平衡二叉树,可以看作是笛卡尔树:其每个点有一个二元组\((Key,Value)\),\(Key\)满足二叉搜索树的性质,而\(Value\)......
  • 学习css的第二天~
    基本选择器:1、标签选择器:p{color:blue;} 2、类选择器:(对标签里的class属性值进行样式设置)html标签里加入class进行区分<pclass="red">文本</p>在css里......