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

本文介绍了Vim编辑器的不同模式及常用命令,如删除、复制和搜索。接着讲解了Shell脚本的基础,包括接收用户参数、条件测试和循环语句。此外,还涵盖了文件测试、逻辑测试和字符串比较的运算符。最后提到了Linux的计划任务服务,如一次性与长期性计划任务的管理。
摘要由CSDN通过智能技术生成

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

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
  • $?:上一个命令的返回值

在这里插入图片描述

判断用户的参数

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

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

文件测试

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

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

在这里插入图片描述

逻辑测试

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

整数值比较

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

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

在这里插入图片描述

字符串比较

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

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

流程控制语句

if条件测试语句

单分支格式:

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

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

双分支格式:

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

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

多分支格式:

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

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

for条件循环语句

for循环语法格式:

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

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

while条件循环语句

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

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

例子:

在这里插入图片描述

case条件测试语句

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

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

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

计划任务服务程序

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

一次性计划任务

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

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

长期性计划任务

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

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

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

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值