Linux学习(3):Vim编辑器、Shell命令脚本

继20230517和20230518所阅刘遄《Linux就该这么学》第四章所做笔记

文章目录

    • Vim文本编辑器
      • 模式
      • vim常用的命令(命令行模式下)
      • 末行模式中可用命令
    • 编写Shell脚本
      • 接收用户的参数
      • 判断用户的参数
        • 文件测试
          • 参数
        • 逻辑测试
        • 整数值比较
          • 运算符
        • 字符串比较
          • 运算符
    • 流程控制语句
      • if条件测试语句
      • for条件循环语句
      • while条件循环语句
      • case条件测试语句
    • 计划任务服务程序
      • 一次性计划任务
      • 长期性计划任务

Vim文本编辑器

模式

命令模式:启动 Vim 后默认进入的模式,按a、i、o键可进入输入模式,按键可进去末行模式
输入模式:此模式下可以像普通文本编辑器一样输入文字,输入Esc进入输入模式
末行模式:使用: + 字母可对文章整体进行操作

vim常用的命令(命令行模式下)

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

末行模式中可用命令

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

编写Shell脚本

理解:将Linux命令按照顺序一次写入到一个文件中,就是一个简单的脚本。(以.sh结尾的文件)

脚本信息中的元素:

  • !#:脚本声明,告诉系统使用哪种Shell解释器来执行该脚本
  • #:注释信息,对脚本功能和某些命令的介绍信息
  • Linux命令

运行脚本:

  1. 使用base解释器命令直接运行Shell脚本。格式:base 文件名
  2. 直接使用相对路径(即当前目录)加上文件名来运行脚本。格式:./文件名,该方法需要为脚本文件增加执行权限

接收用户的参数

变量:

  • $0:当前Shell脚本程序的名称
  • $* :第几个参数,*可以为0-n
  • $?:上一个命令的返回值

Linux学习(3):Vim编辑器、Shell命令脚本_第1张图片

判断用户的参数

测试语句格式:[ 条件表达式 ]

按照测试对象分类可分为文件测试、逻辑测试、整数值比较、字符串比较

文件测试

使用指定条件来判断文件是否存在或权限是否满足等

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

在这里插入图片描述

逻辑测试

在Shell终端中逻辑
“与”的运算符号是&&,表示当前命令执行成功后才会执行它后面的命令
“或”的运算符是||,表示前面命令执行失败后才会执行它后面的命令
“非”的运算符是!,表示把条件测试中的判断结果取相反的值,测试是正确的会将其变成错误,测试错误的将其变成正确
在这里插入图片描述
在这里插入图片描述

整数值比较

正数值比较运算符仅对数字的操作有效,不能将数字与字符串、文件等内容一起操作。

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

在这里插入图片描述

字符串比较

通常用于判断字符串是否为空值,两个字符串是否相同

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

流程控制语句

if条件测试语句

单分支格式:

if 条件测试操作
	then 命令序列
if

例子:
Linux学习(3):Vim编辑器、Shell命令脚本_第2张图片

双分支格式:

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

例子:
Linux学习(3):Vim编辑器、Shell命令脚本_第3张图片

多分支格式:

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

例子:
Linux学习(3):Vim编辑器、Shell命令脚本_第4张图片

for条件循环语句

for循环语法格式:

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

例子:
Linux学习(3):Vim编辑器、Shell命令脚本_第5张图片

while条件循环语句

while循环语句通过判断条件测试的真假来决定是否继续执行命令,若条件为真就继续执行,为假就结束循环
语法格式:

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

例子:
Linux学习(3):Vim编辑器、Shell命令脚本_第6张图片
Linux学习(3):Vim编辑器、Shell命令脚本_第7张图片

case条件测试语句

格式:
如果数据不在所列出的范围内,星号(*)中所定义的默认命令

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

例子:
Linux学习(3):Vim编辑器、Shell命令脚本_第8张图片

计划任务服务程序

用于子无人介入的情况下,在指定的时间段自动启动或停止某些服务或命令,实现运维自动化。

一次性计划任务

只需执行一次即可满足临时的工作需求

使用at命令实现这种功能
at 时间:输入at 时间在回车键输入命令即可实现在指定的时间点进行操作,输入完成后Ctrl + D结束编写计划任务
at -l:查看设置好的位置的一次性计划任务
atrm 任务序列:删除一次性计划任务

长期性计划任务

Linux系统周期性、有规律地执行某些具体的任务

crontab -e:创建、编辑计划任务的命令
设置任务的参数格式:
分 时 日 月 星期 命令 绝对路径命令

crontab -l:查看当前计划任务的命令
crontab -r:删除某条计划任务

你可能感兴趣的:(vim,linux,编辑器)