继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:删除某条计划任务
本文介绍了Vim编辑器的不同模式及常用命令,如删除、复制和搜索。接着讲解了Shell脚本的基础,包括接收用户参数、条件测试和循环语句。此外,还涵盖了文件测试、逻辑测试和字符串比较的运算符。最后提到了Linux的计划任务服务,如一次性与长期性计划任务的管理。
:Vim编辑器、Shell命令脚本&spm=1001.2101.3001.5002&articleId=130735336&d=1&t=3&u=40845698b48b4cfd90ae2577e1fd76cd)
1688

被折叠的 条评论
为什么被折叠?



