文本编辑器vi
1.基本上vi分三种状态
- 命令行模式
无法直接输入文本,可做删除或者复制等,等待指令
该模式是默认模式
在此模式下接收到插入命令之后可进入插入模式,输入【:】可进入到底行模式 - 插入模式
进入插入模式之后可以输入文本,按esc可回到命令行模式 - 底行模式
输入【:】,可进入底行模式,将文件保存或退出
2.插入命令
- 【i】 在当前字符前插入文本
- 【I】 在行首插入文本
- 【a】 在当前字符后插入文本
- 【A】 在行末插入文本
- 【o】 在当前行后插入空行
- 【O】 在当前行前插入空行
- 【G】 跳转到全文最后一行
3.删除命令
- 【r】 替换当前光标所在字符,仅一个仅一次
- 【x】 删除光标后的一个字符
- 【X】 删除光标前的一个字符
- 【dd】 删除光标所在行
- 【n+dd】 删除光标下的n行,包括光标所在的那行
- 【d$】 删除光标所在处到行尾的所有字符
- 【u】 撤销操作
4.复制命令
- 【yy】 复制当前一行
- 【{num}+yy】 复制n行,包括当前行
- 【p】 粘贴
- 【cw】 改变(替换)光标所在单词,删除后进入插入模式,光标在单词中间是仅删除光标后面的部分
- 【dw】 删除光标所在处的单词,不进入插入模式,光标在单词中间是仅删除光标后面的部分
5.查找命令
- 【:set nu】 显示行号
- 【:set nonu】 取消行号
- 【:n】 跳转到第n行
- 【:/string】=【:?string】 从光标所在处向后或向前查找相应字符串(n向后,N向前)
6.光标命令
- 【k、j、h、l】 上下左右
- 【contrl+f】 向下翻一页
- 【contrl+b】 向上翻一页
- 【n/N】 查找下一个、上一个
- 【contrl+c】 进入乱码模式后强制退出,不建议
7.查找并替换
- 当前行
【: s/Mem/memory】 替换当前行第一个Mem为memory,仅第一个
【: s/Mem/memory/g】 替换当前行所有Mem为memory - 每行
【:%s/Mem/memory】 替换每行第一个Mem为memory,仅第一个
【:%s/Mem/memory/g】 替换每行所有Mem为memory - 范围行
【: n, s / M e m / m e m o r y 】 替 换 第 n 行 开 始 到 最 后 一 行 第 一 个 M e m 为 m e m o r y , 仅 第 一 个 n 为 数 字 【 : n , s/Mem/memory】 替换第n行开始到最后一行第一个Mem为memory,仅第一个 n为数字 【: n, s/Mem/memory】替换第n行开始到最后一行第一个Mem为memory,仅第一个n为数字【:n,s/Mem/memory/g】 替换第n行开始到最后一行所有Mem为memory
8.保存退出
- 【:w】 保存
- 【:w 新名字】 另存为新名字在当前目录下
- 【:w 新名字 目录】 另存为新名字在某目录下
- 【:wq】 保存并退出
- 【:x】 保存并退出
- 【:q!】 不保存直接退出
Linux定时任务
- 【crontab -l】 查看定时任务
- 【crontab -e】 编辑定时任务
【*****】五个 * 号分别代表分钟,时,日,月,星期几
例:
【01 * * * * echo “hello world” > /root/a.txt 】 每小时01分执行
【* * /2 * * * echo “hello world” > /root/a.txt】 每两个小时执行
【* 23-7/2,8 * * * echo “hello world” > /root/a.txt】 晚上11点到7点每两个小时和早上八点执行
【0 11 4 * 1-3 echo “hello world” > /root/a.txt】 每个月四号和周一到周三的早上11点