vim文本编译器
这个就厉害了,必备技能
vim 或者 vi进入
编辑下的三种格式
命令模式
输入模式
末行模式
常用的命令
命令 | 作用 |
---|---|
dd | 剪切 |
5dd | 剪切光标下面五行 |
yy | 复制 |
5yy | 复制光标下面五行 |
p | 复制 |
u | 撤销 |
n | 下一个,比如搜索的下一个 |
N | 上一个 |
末行模式下的命令
命令 | 作用 |
---|---|
:w | 保存 |
:q | 退出 |
set nu | 显示行号 |
:wq! | 强制 |
:命令 | 执行这个命令,咱也不知道有啥用 |
:整数 | 跳转到该行 |
: s/one/two | 将当前光标所在行的第一个one替换成two(冒号后面没空格,博客会把这俩组合成笑脸) |
: s/one/two/g | 将当前光标所在行的所有one替换成two |
:%s/one/two/g | 将全文中的所有one替换成two |
?字符串 | 在文本中从下至上搜索该字符串 |
/字符串 | 在文本中从上至下搜索该字符串 |
写个好玩的脚本
没好玩的
脚本注意事项
- 第一行必须是 #!/bin/bash
- 判断语句[ a -t b ],中括号两边必须有空格,必须有空格,必须有空格
- 变量赋值时不要有空格,a=b not a = b
- if then else fi是一套的,背一下
- for a in 列表 do done 是一套的,列表可以是"a" “b” “c” 也可以是 {a,b,c} {1…10]} $(seq 1 10) $(seq 1 2 10) {1…10…2},写数字时是大括号,写seq时是小括号,直接写数据时,有空格就算另一个了,也可以用命令或者文件导入列表,每行都是一个数据。
- for(int i=1;i++;i<10) = for i in {1…10}
- while 和 do done 也是一套的,
- let 去操作一些加减乘除 let “items+=1” 别加空格了
- case a in [1-9])
10.echo “”
;;
[a-z])
echo “”
;;
*)
;;
esac - 条件后面加),操作之后 ;; 收尾兜底*) 结束esac
定时任务
这个也厉害了,比如备份什么的,可以实现自动化,但是刚想了下运维开发,不知道是不是也是调用了这个实现了自动化
at <时间>
at 10:10
写命令
CTRL+D结束
at 10:10 2019-10-04
写命令
CTRL+D结束
at now + 1 minutes
写命令
CTRL+D结束
- 不能写秒
- 如果命令里有echo会给你发邮件
- at -l 显示定时任务list(列表)
- atrm n 移除这个定时任务
crontab
编辑计划任务的命令为“crontab -e”,查看当前计划任务的命令为“crontab -l”,删除某条计划任务的命令为“crontab -r”
- ***分钟 小时 日 月 星期 命令***切记切记切记
- 命令必须绝对路径,whereis查看路径
- (,)来分别表示多个时间段,例如“8,9,12”表示8月、9月和12月。还可以用减号(-)来表示一段连续的时间周期(例如字段“日”的取值为“12-15”,则表示每月的12~15日)。以及用除号(/)表示执行任务的间隔时间(例如“*/2”表示每隔2分钟执行一次任务)
- 靠后的参数有数据时,前面参数最好不用*,最起码写个0
- 分钟小时日月当为个位数时,不需要00 01表示
vim与vi 的区别?
vim是vi 的加强版,可以撤销多级操作,最主要的是可以加亮语法,以后就用vim了,不解释。