文章目录
Vim文本编辑器
在Linux系统中一切都是文件,而配置一个服务就是在修改其配置文件的参数
Vim编辑器中设置了三种模式—命令模式、末行模式和编辑模式
命令模式:控制光标移动,可对文本进行复制、粘贴、删除和查找等工作。
输入模式:正常的文本录入。
末行模式:保存或退出文档,以及设置编辑环境。
Vim编辑器不同模式切换方法:
每次运行Vim编辑器时,默认进入命令模式,此时需要先切换到输入模式后再进行文档编写工作,而每次在编写完文档后需要先返回命令模式,然后再进入末行模式,执行文档的保存或退出操作。
Vim编辑器命令模式常用命令:
末行模式常用命令:
编写Shell脚本
Shell脚本命令的工作方式有两种:交互式和批处理。
交互式(Interactive):用户每输入一条命令就立即执行。
批处理(Batch):由用户事先编写好一个完整的Shell脚本,Shell会一次性执行脚本中诸多的命令。
编写Shell脚本的流程为:
使用Vim编辑器新建一个 .sh 为后缀的文件。
第一行写入:
#! [shell解释器路径(我们用Bash)]
第二行可以选择性的加入注释信息:
#我是一个shell脚本
后面按行分别写入想要执行的命令。
然后我们可以使用:
bash 文件名
执行写好的脚本
接收用户参数
用户在执行 bash 脚本名 时候可以在后面加N个变量。
$0对应的是当前Shell脚本程序的名
$#对应的是总共有几个参数
$*对应的是所有位置的参数值
$?对应的是显示上一次命令的执行返回值
而$1、$2、$3……则分别对应着第N个位置的参数值
判断用户参数
Shell脚本中的条件测试语法可以判断表达式是否成立,若条件成立则返回数字0,否则便返回其他随机数值。
按照测试对象来划分,条件测试语句可以分为4种:
文件测试语句
逻辑测试语句
整数值比较语句
字符串比较语句
文件测试即使用指定条件来判断文件是否存在或权限是否满足等情况的运算符:
逻辑测试用于对测试结果进行逻辑分析,根据测试结果可实现不同的效果。
Shell终端中逻辑“与”的运算符号是&&,它表示当前面的命令执行成功后才会执行它后面的命令
Shell终端中逻辑“或”的运算符号为||,它表示当前面的命令执行失败后才会执行它后面的命令
整数比较仅是对数字的操作,不能将数字与字符串、文件等内容一起操作。
字符串比较用于判断测试字符串是否为空值,或两个字符串是否相同。
流程控制语句
if条件测试语句
if单分支结构格式:
if双分支结构格式:
if多分支结构格式:
for条件循环语
while条件循环语句
while循环语句通过判断条件测试的真假来决定是否继续执行命令,若条件为真就继续执行,为假就结束循环。
case条件测试语句
等同于C语言种的switch语句
计划任务服务程序
计划任务分为一次性计划任务与长期性计划任务
一次性计划任务:今晚11点30分开启网站服务。
长期性计划任务:每周一的凌晨3点25分把/home/wwwroot目录打包备份为backup.tar.gz。
一次性计划任务
我们可以使用 at 时间 来设置计划任务,at -l 查看已设置的计划任务,atrm 序号 删除计划任务。
如:
[root@linuxprobe ~]# at 23:30
at > systemctl restart httpd
at > 此处请同时按下Ctrl+d来结束编写计划任务
job 3 at Mon Apr 27 23:30:00 2015
[root@linuxprobe ~]# at -l
3 Mon Apr 27 23:30:00 2016 a root
长期性计划任务
Linux系统中默认启动的crond服务可以让我们周期性的执行计划任务。
创建、编辑计划任务的命令为“crontab -e”
查看当前计划任务的命令为“crontab -l”
删除某条计划任务的命令为“crontab -r”
如果您是以管理员的身份登录的系统,还可以在crontab命令中加上-u参数来编辑他人的计划任务。
crond服务设置任务的参数格式:分 时 日 月 星期 命令
逗号(,)来分别表示多个时间段,例如“8,9,12”表示8月、9月和12月。
减号(-)来表示一段连续的时间周期(例如字段“日”的取值为“12-15”,则表示每月的12~15日)
除号(/)表示执行任务的间隔时间(例如“*/2”表示每隔2分钟执行一次任务)。
总结
本节我们学习了Vim编辑器、Shell脚本和计划任务。
1.Vim编辑器的三种模式分别是什么?
答:命令模式、末行模式与输入模式(也叫编辑模式或插入模式)。
2.怎么从输入模式切换到末行模式?
答:需要先敲击Esc键退回到命令模式,然后敲击冒号(:)键后进入末行模式。
3.一个完整的Shell脚本应该哪些内容?
答:应该包括脚本声明、注释信息和可执行语句(即命令)。
4.分别解释Shell脚本中$0与$3变量的作用。
答:在Shell脚本中,$0代表脚本文件的名称,$3则代表该脚本在执行时接收的第三个参数。
5.if条件测试语句有几种结构,最灵活且最复杂的是哪种结构?
答:if条件测试语句包括单分支、双分支与多分支等三种结构,其中多分支结构是最灵活且最复杂的结构,其结构形式为if…then…elif…then…else…fi。
6.for条件循环语句的循环结构是什么样子的?
答:for条件循环语句的结构为“for 变量名 in 取值列表 do 命令序列 done”。
7.若在while条件循环语句中使用true作为循环条件,那么会发生什么事情?
答:因条件测试值永久为true,因此脚本中循环部分会无限地重复执行下去,直到碰到exit命令才会结束。
8.如果需要依据用户的输入参数执行不同的操作,最方便的条件测试语句是什么?
答:case条件语句。
9.Linux系统的长期计划任务所使用的服务是什么,其参数格式是什么?
答:长期计划任务需要使用crond服务程序,参数格式是“分、时、日、月、星期 命令”。