vim编辑器与shell编程

本文介绍了vim编辑器的三种模式:命令模式、输入模式和末行模式,并详细讲解了如何在命令模式下执行常用操作。此外,文章还深入探讨了shell脚本的编写,包括如何执行脚本、接受用户参数以及使用条件测试和流程控制语句。通过学习,读者能够掌握编写和执行shell脚本的基本技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1:vim编辑器

使用vim如果打开一个不存在的文件,则会创建该文件

1.1:三种模式

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

命令模式

第一次进入的时候是命令模式

在这里插入图片描述

命令模式下随便输入声明字符,就会进入输入模式。

输入模式

主要是aio进入输入模式的区别
aio三个的区别:
a 键与 i 键分别是在光标后面一位和光标当前位置切换到输入模式,而 o 键则是在光标的下面再创建一个空行

命令模式下的常用命令
在这里插入图片描述
dd:删除光标所在行,前面加数组就代表要删除几行,不加数字就是删除一行
yy:复制光标所在行,前面加数字就代表要复制几行,不加数字就代表只复制一行
u:撤销上一个操作
p:粘贴之前复制和删除过的内容

末行模式

末行模式主要用于保存或退出文件,以及设置 Vim 编辑器的工作环境,还可以让用户执
行外部的 Linux 命令或跳转到所编写文档的特定行数。
在这里插入图片描述

2:编写shell脚本

2.1:如何编写和执行一个脚本

Shell 脚本命令的工作方式有两种:交互式和批处理。

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

Shell 脚本文件的名称可以任意,但为了避免被误以为是普通文件,建议将.sh 后缀加上,以表示是一个脚本文件。
一个shell脚本的简单构成
在这里插入图片描述
在上面的这个 example.sh 脚本中实际上出现了三种不同的元素:

  • 第一行的脚本声明(#!)用来告诉系统使用哪种 Shell 解释器来执行该脚本;
  • 第二行的注释信息(#)是对脚本功能和某些命令的介绍信息,使得自己或他人在日后看到- - 这个脚本内容时,可以快速知道该脚本的作用或一些警告信息;注释
  • 第三、四行的可执行语句也就是我们平时执行的 Linux 命令了。

执行脚本文件
1:使用bash命令后接脚本文件(不用是完整路径)
2:输入完整脚本文件路径

2.2:接受用户参数

  • 参数直接跟在文件名称后面用空格隔开即可
    在这里插入图片描述

$0:该脚本程序的名称
$#:参数的个数
$*:所有参数
$?:上一条命令执行的返回值
$1,$2:第几个参数
在这里插入图片描述
在这里插入图片描述

2.3:处理用户输入的参数

2.3.1:条件测试语句

条件满足返回0 。不满足返回一个0以外的随机数

条件测试主要有四种:

  • 文件测试语句:
    在这里插入图片描述
    例如:判断一个是不是一个目录类型的文件
    在这里插入图片描述
  • 逻辑测试语句:

三个逻辑语句:

&&操作符:不同于Java等高级语言中的含义,虽然也是逻辑”与“。但是它表示前面命令执行成功才执行接下来的命令。==常与条件语句配合使用
实例
在这里插入图片描述

|| 操作符:表示前面的命令执行失败后才会执行这个命令。也是和条件语句配合使用效果奇佳
实例:
在这里插入图片描述

!操作符:把条件测试的判断结果取反
在这里插入图片描述

  • 整数值比较语句:
    在这里插入图片描述
    在这里插入图片描述
  • 字符串比较语句:字符串比较语句用于判断测试字符串是否为空值,或两个字符串是否相同。
    在这里插入图片描述

2.3.2:流程控制语句

接下来我们通过 if、for、while、case 这 4 种流程控制语句来学习编写难度更大、功能更强的 Shell 脚本。

if条件测试语句

普通单分支结构:if 条件语句的单分支结构由 if、then、fi 关键词组成。
在这里插入图片描述

双分支结构: if 条件语句的双分支结构由 if、then、else、fi 关键词组成。
在这里插入图片描述

多分枝结构: if 条件语句的多分支结构由 if、then、else、elif、fi 关键词组成,它进行多次条件匹配判断
在这里插入图片描述

for循环语句

for 循环语句允许脚本一次性读取多个信息,然后逐一对信息进行操作处理,当要处理的数据有范围时,使用 for 循环语句再适合不过了。
在这里插入图片描述
实例:读取一个文件的内容:
在这里插入图片描述

while条件循环语句

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

在这里插入图片描述
简单例子:
在这里插入图片描述

case条件测试语句

case 条件测试语句和 switch 语句的功能非常相似!
case 语句是在多个范围内匹配数据,若匹配成功则执行相关命令并结束整个条件测试;而如果数据不在所列出的范围内,则会去执行星号(*)中所定义的默认命令。
在这里插入图片描述

计划任务服务程序

计划任务分为一次性计划任务与长期性计划任务,大家可以按照如下方式理解。

  • 一次性计划任务:今晚 11 点 30 分开启网站服务。
  • 长期性计划任务:每周一的凌晨 3 点 25 分把/home/wwwroot 目录打包备份为
    backup.tar.gz。

顾名思义,一次性计划任务只执行一次,一般用于满足临时的工作需求。我们可以用 at
命令实现这种功能,只需要写成“at 时间”的形式就可以。如果想要查看已设置好但还未执
行的一次性计划任务,可以使用“at -l”命令;要想将其删除,可以用“atrm 任务序号”。在
使用 at 命令来设置一次性计划任务时,默认采用的是交互式方法。

例如,使用下述命令将系统设置为在今晚 23:30 分自动重启网站服务。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值