Vim编辑器与Shell命令脚本

一、Vim编辑器

Vim编辑器设置了三种模式——命令模式、末行模式和编辑模式,每种模式分别又支持多种不同的命令快捷键。
下面是三种模式的操作区别

命令模式 : 控制光标移动,可对文本进行复制、粘贴、删除和查找等工作
输入模式 : 正常的文本录入
末行模式 : 保存或退出文档、以及设置编辑环境

在命令模式下常用的命令

命令 作用
dd 删除(剪切)光标所在整行
5dd 删除(剪切)从光标处开始的5行
yy 复制光标所在整行
5yy 复制从光标处开始的5行
n 显示搜索命令定位到的下一个字符串
N 显示搜索命令定位到的上一个字符串
u 撤销上一步的操作
p 将之前删除或复制过的数据粘贴到光标后面

末行模式主要于保存或退出文件,以及设置Vim编辑器的工作环境,还可以让用户执行外部的Linux命令或跳转到所编写文档的特定行数。要想切换到末行模式,在命令模式下输入一个冒号就行了。

在命令模式下常用的命令

命令 作用
:w 保存
:q 退出
:q! 强制退出(放弃对文档的修改内容)
:wq! 强制保存退出
:set nu 显示行号
:set nonu 不显示行号
:命令 执行该命令
:整数 跳转至该行
:%s/one/two/g 将全文中的所有one都换成two
?字符串 在文本中从下至上搜索该字符串
/字符串 在文本中从上至下搜索该字符串

二、编写Shell脚本

1

shell脚本命令工作的方式有两种

交互式 : 用户每输入一条命令就立即执行
批处理 : 由用户事先编写一个完整的脚本,Shell会一次执行脚本中的诸多命令

2

Shell脚本内设了用于接受参数的变量,变量之间可以使用空格间隔。

$0 对应当前Shell脚本程序的名称
$# 对应的是总共有几个参数
$* 对应的是所有位置的参数值
$? 对应的是显示上一次命令的执行返回值
$1 $2 分别对应着第N个位置参数的值

3

判断用户的参数
Shell脚本中的条件测试语法可以判断表达式是否成立
若条件成立则返回数字0,否则返回其他随机数值
其格式为

[ 条件表达式 ]

注意 : 条件表达式两边均应有一个空格
按照测试对象来划分,条件测试语句分为4种

文件测试语句
逻辑测试语句
整数值比较语句
字符串比较语句

文件测试所用的参数

运算符 作用
-d 测试文件是否为目录类型
-e 测试文件是否存在
-f 判断是否为一般文件
-r 测试当前用户是否有权限读取
-w 测试当前用户是否有权写入
-x 测试当前用户是否有权执行

一般这样来人性化进行测试

[ -e /dev/cdrom ] && echo "exist"

可用的整数比较运算符

运算符 作用
-eq 是否等于
-ne 是否不等于
-gt 是否大于
-lt 是否小于
-le 是否小于等于
-ge 是否大于等于

常见的字符串比较运算符

运算符 作用
= 比较字符串内容是否相同
!= 比较字符串内容是否不同
-z 测试字符串是否为空

4

if条件测试语句

if 条件测试操作
    then 命令序列
fi
if 条件测试操作
then 命令序列1
else 命令序列2
fi
if 条件测试操作1
    then 命令序列1
elif 条件测试操作2
    then 命令序列2
else
    命令序列3
fi

5

for条件循环语句

for 变量名 in 取值列表
do
    命令序列
done

6

while条件循环语句

while 条件测试操作
do
    命令序列
done

7

case条件测试语句

case 变量值 in
模式1)
    命令序列1
;;
    模式2)
;;
......
*)
    默认命令序列
esac

三、计划任务服务程序

计划任务分为一次性任务和长期性任务
使用at命令实现一次性任务,格式为 “at 时间”

at -l : 查看已经设置好了但是还没有执行的任务
atrm 任务序号 : 删除预设的一次性任务

在使用at命令来设置一次性任务时,默认采用的是交互式方法
如果希望系统周期性地、有规律地执行某些具体的任务,那么Linux默认启用的crond服务简直最适合不过了。
创建、编辑计划任务的命令为crontab - e
查看当前计划任务的命令为crontab -l
删除某条计划任务的命令为crontab -r
注:如果你是以管理员权限登录的,那么还可以使用crontab -u来管理其他人的计划任务

记住这个口诀 “分、时、日、月、星期、命令”

这是使用crond服务设置任务的参数格式
使用crond设置任务的参数字段说明

字段 说明
取值为0~59的整数
取值为0~23的任意整数
取值为1~31的任意整数
取值为1~12的任意整数
星期 取值为0~7的任意整数,其中0和7均为星期日
命令 要执行的命令或程序脚本

在设置时间时,使用逗号(,)来设置多个时间段,用减号(-)表示一段连续的时间周期,用除号(/)表示执行任务的周期

在crond服务的计划任务参数中,所有的命令都要用绝对参数的方式来写

如果不知道绝对路径,用whereis来查询

几个要注意的点

1.计划任务中的“分”字段必须要有数值,不能是空或者*号

2.“日”和“星期”不能同时使用,会产生冲突

猜你喜欢

转载自blog.csdn.net/AngryDog1024/article/details/82686076