继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命令
运行脚本:
- 使用base解释器命令直接运行Shell脚本。格式:
base 文件名
- 直接使用相对路径(即当前目录)加上文件名来运行脚本。格式:
./文件名
,该方法需要为脚本文件增加执行权限
接收用户的参数
变量:
- $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:删除某条计划任务