目录
- vim编辑器
- vim编辑器介绍
- vim编辑器操作
- vim编辑器三中模式
- 命令行模式
- 末行模式
- 编辑模式
- 一次性定时任务
- at命令
- (1)添加一次性任务。
- (2)删除一次性任务
- (3)通过man命令查看at使用手册
- (1)crontab基本语法
- (1)脚本编写规范
- (2)执行程序
- (3)基础语法
- (4)标准输出echo
- (5)基础输入
- (6)变量使用
- (1)选择结构if
- 选择结构case
- (3)循环结构for
- (4)循环结构while
- (5)拓展
- (6)函数
vim编辑器
vim编辑器介绍
vim编辑器是Unix和Linux系统中的定点编辑器,他回一个命令行编辑器,被系统内建使用时不需要安装,操作过程中占用系统资源较少,同时提供了高度的定制化操作、因此一直被广大Unix/Linux爱好者/开发人员喜爱。
- 系统自带的是一个精简版的vim编辑器:vi编辑器。打开文件指令是:
vi 文件名称 - 要想使用真正的vim编辑器需要通过命令行安装:
yum install vim - 安装后开启vim编辑器命令。
vi/vim 文件名称
如果要打开的文件名不存在会新建一个文件。
vim编辑器操作
在了解vim编辑器具体操作时需要先知道vim编辑器拥有三种模式:命令模式、末行模式、编辑模式。
vim编辑器三中模式
命令行模式
命令行模式又称全面模式/视图模式/查看模式:该模式下只能移动光标和查看内容。
命令行模式的相关命令:
| 按键 | 描述 |
|---|---|
| x | 删除光标所在字符,相当于delete |
| X | 删除光标前一个字符,相当于backspace |
| dd | 删除光标所在行,删除一行 |
| dnd | n表示数字,连续删除光标后n行 |
| yy | 复制光标所在行,复制一行 |
| yny | n为数字,连续复制光标后n行 |
| p/P | 小写p将复制的一行数据粘贴在光标下一行 大写P将复制的数据粘贴到下n行 |
| G | 跳转到文档最后一行 |
| gg | 跳转到文档的第一行 |
| H | 光标移动到可视化窗口的第一行 |
| M | 光标移动到可视化窗口的中间一行 |
| u | 撤销操作,返回上一步 |
| ctrl+r | 反撤销 |
| ctrl+b | back 往回翻一整页 |
| ctrl+f | front 往前翻一整页 |
| ctrl+d | down 往下翻一页 |
| ctrl+u | up 往上翻一页 |
^所在行开头;$所在行结尾。
末行模式
末行模式又称末行命令模式:在命令模式输入特定的命令符号执行特殊操作。
| 按键 | 描述 |
|---|---|
| :w | 保存文件 |
| :q | 不保存,退出文件 |
| :wq | 保存并退出文件 |
| :w! | 强制保存文件 |
| :q! | 强制不保存退出文件 |
| :wq! | 强制保存并退出文件 |
| 😡 | 保存退出 |
| :x! | 强制保存退出文件 |
| :set nu | 显示行号 |
| :set nonu | 取消显示行号 |
| :n1,n2s/old/new/g | 将n1行开始到n2行的内容中出现的old字符替换成new字符 old支持正则匹配 |
| /str | 在文件中光标位置向下查询str字符串 |
| ?str | 在文件中光标位置向上查询str字符串 |

编辑模式
编辑模式就是可以往文件内插入文本内容,可以自定义喧杂额在光标前或者光标后输入内容。
编辑模式的相关命令:
| 按键 | 描述 |
|---|---|
| i | 从命令行模式进入编辑模式,并在光标前插入内容 |
| I | 行首插入字符 |
| a | 光标后插入字符 |
| A | 行尾插入字符 |
| o | 光标下一行输入字符 |
| O | 光标上一行输入字符 |
三种模式关系图

shell编程
shell编程的目的:让我们通过手工操作的繁琐步骤,是程序完成自动化地操作。是Linux操作系统中的一种自动化的操作。
一次性定时任务
Linux中提供了at命令,用于指定时间点,就可以在指定的额时间点添加多条执行命令,党制定的时刻到达时,就会除服执行所有的命令。
at命令
(1)添加一次性任务。
at -l:查看任务
at 时间点:指定的时间点上,添加任务。
ctrl + D:组合键保存定时任务
未执行一次性定时任务时:
到点执行了任务后:
(2)删除一次性任务
atrm 任务编号
(3)通过man命令查看at使用手册


周期重复性任务
Linux中提供了定时任务操作crontab实现周期重复性任务,通常情况下crontab是系统的一个内建组件,如果系统缺少了这个组件,可以yum install crontab安装组件。
(1)crontab基本语法
通过crontab命令添加任务、编辑任务、删除任务
| 命令 | 描述 |
|---|---|
| crontab -l | 列出当前用户的所有周期性任务 |
| crontab -e | 编辑当前用户的周期性任务 |
| crontab -r | 删除当前用户的所有周期性任务 |
crontab -e 编辑任务同时创建了一个任务文件,直接编辑添加任务,任务格式固定格式。
一第一个*号为例,说明语法
- *:表示每一天都额每个小时的每分钟执行一次后面的命令
- 10:表示每一天的每个小时中的第10分钟,执行一次后面的命令。
- */5:表示每一天的每个小时中,每间隔5分钟,执行一次后面的命令
- 5,10,20,30:表示每一天的每个小时中,第5、10、20、30分钟时刻在执行后面命令。
- 10-20:表示每一天的每个小时中,第10分钟开始到第20分钟结束,每分钟执行命令
SHELL脚本基本语法
(1)脚本编写规范
脚本程序是Unix和Linux系统中的一种特殊的文件,一定要妥善的管理和整理起来。
- 属于用户的脚本程序,全部放在指定的路径了scripts/目录下
- 脚本程序的后缀名称,同一使用.sh作为文件后缀名(约定俗成)
- 脚本程序的第一行代码:#!/bin/sh 指定程序的执行者(是一条可执行命令)
(2)执行程序
基本程序的执行:
Unix/Linux中的文件都有自己的权限,r/wx
①在没有执行权限的情况下(拥有r权限)
可以直接指定使用哪个可执行命令去执行。
执行语法:sh 脚本程序名.sh
②用户拥有某个脚本程序的执行权限(x),可以直接执行脚本程序。
执行语法:./脚本程序名.sh
(3)基础语法
SHELL语法中以#号开头的都是单行注释,除了第一行的#!/bin/sh,这是一条可执行命令,不是注释。
(4)标准输出echo
格式:
echo 要打印展示的消息
类似于python中的print()函数。
echo 打印信息完直接换行
echo -n 打印信息完不换行

(5)基础输入
SHELL中使用read来读取用户从键盘输入的信息。
-p:打印提示信息
-s:用户输入信息时不回显

(6)变量使用
变量就是一个标识符(有特殊意义的符号,由字母、数字、下划线组成,数字不能开头)
变量需要先声明后使用,变量不要使用特殊符号、Linux命令的单词。
命名规范与python语法一致。

SHELL编程之程序结构
(1)选择结构if
基本语法
if 条件;
then
条件如果为真要执行的代码
fi
多分支
if 条件1;then
条件1如果为真要执行的代码
elif 条件2;then
条件2如果为真要执行的代码
else
条件如果都不为真要执行的代码
fi
文件判断
| 选项 | 描述 |
|---|---|
| -e | 判断文件是否存在 if [ -e 文件路径 ] |
| -d | 判断是否是文件夹 if [ -d 文件路径 ] |
| -f | 判断是否是文件 if [ -f 文件路径 ] |
| -r | 判断指定文件是否可读 if [ -r 文件路径 ] |
| -w | 判断文件是否可写 if [ -w 文件路径 ] |
| -x | 判断文件是否可执行 if [ -x 文件路径 ] |
字符串判断
| 选项 | 描述 |
|---|---|
| = | 判断两个字符是否相等 |
| != | 判断两个字符是否不相等 |
| -z | 判断字符串长度是否为0 zero |
| -n | 判断字符串是否为空 null |
整数判断
| 选项 | 描述 |
|---|---|
| -eq | 判断两个整数是否相等 |
| -gt | > |
| -lt | < |
| -ge | >= |
| -le | <= |
| -ne | != |
逻辑判断
| 选项 | 描述 |
|---|---|
| && | 判断并且关系 |
| -a | 判断并且关系 |
| || | 判断或者关系 |
| -o | 判断或者关系 |
| ! | 判断取反 |
选择结构case
case用于匹配操作,可以多种结果进行匹配
基本语法
case 变量 in
值1)
要执行的代码
;;
值2)
要执行的代码
;;
*)
都没有匹配成功时要执行的代码
;;
easc
(3)循环结构for
for循环结构与python中的语法结构基本一致。
基本语法
for 临时变量 in 一串数据
do 开始循环
循环的代码
done 循环结束
(4)循环结构while
while循环结构,与python中的循环结构基本一致
while 条件
do
循环执行的代码
done
(5)拓展
完成整数运算有三种操作方式
- expr运算表达式,如expr 12 + 13
- $(())运算符号,如res=$((12 + 13))
- $[]运算符号,如res=$[12 + 13]
程序暂停运行
sleep 秒数
(6)函数
声明函数
基本语法
function 函数名称(){
函数中的代码
}
快捷语法
函数名称(){
函数中的代码
}
调用函数:直接使用函数名称调用函数函数名称
爱站程序员基地


