1、总结vim命令行模式常见快捷方式,以及vim查找,替换的方法
vim命令行模式常见的快捷方式:
字符间跳转:h: 左 l: 右 j: 下 k: 上
#command:跳转由#指定一次跳转的字符数 例:5h向左跳转5个字符;6k向上跳三行
单词间跳转:w:下一个单词的词首 e:当前或下一单词的词尾 b:当前或前一个单词的词首
#COMMAND:由#指定一次跳转的单词数 例 : 5w 跳转到后面第5个单词的词首 3e 跳转到后面数第3个单词的词尾
当前页跳转:H:页首 M:页中间行 L:页底
zt:将光标所在当前行移到屏幕顶端 zz:将光标所在当前行移到屏幕中间 zb:将光标所在当前行移到屏幕底端
行首行尾跳转:^: 跳转至行首的第一个非空白字符 0: 跳转至行首 $: 跳转至行尾
行间移动:G:最后一行 1G, gg: 第一行
句间移动: ):下一句 (:上一句
段落间移动: }:下一段 {:上一段
删除命令: d: 删除命令,可结合光标跳转字符,实现范围删除 例:d5l:向后删除5个字符:
d$: 删除到行尾 d^:删除到非空行首 d0:删除到行首 dd: 删除光标所在的行 #dd:多行删除 D:从当前光标位置一直删 除到行尾,等同于d$
复制命令: y: 复制,行为相似于d命令 y$ y^ y0 yy:复制行 #yy: 复制多行 Y: 复制整行
粘贴命令(p, paste): p:缓冲区存的如果为整行,则粘贴当前光标所在行的下方;否则,则粘贴至当前光标所在处的后面
P:缓冲区存的如果为整行,则粘贴当前光标所在行的上方;否则,则粘贴至当前光标所在处的前面
撤消更改 : u 撤销最近的更改 #u 撤销之前多次更改 U 撤消光标落在这行后所有此行的更改吗 按 Ctrl-r 重做最后的“撤消”更改
. 重复前一个操作 n. 重复前一个操作n次
vim 中可以使用 :s 命令来替换字符串。
:s/aaa/bbbg 替换当前行的所有hello为sky
:n,$s/aaa/sky 替换第n行开始到最后一行的第一个aaa为bbb
:n,$s/aaa/bbb/g 替换第n行开始到最后一行的所有aaa为bbb
:%s/aaa/bbb 替换每一行的第一个aaa为bbb
:%s/aaa/bbb/g 替换每一行的所有aaa为bbb
2、总结脚本中运算符、逻辑运算以及用法.
bash中的算术运算有: +, - , * , / , %取模(取余), **(乘方)
实现算术运算:
(1) let var=算术表达式 例:运算命令是let b=1 + 2。然后用echo $b来输出b的值。如果没有let,则会输出1+2
(2) var=$[算术表达式] 例: a=$[1+3*4]。然后用echo $a来输出a的值13
(3) var=$((算术表达式)) (4) var=$(expr arg1 arg2 arg3 ...)
(5) declare –ivar= 数值 (6) echo ‘算术表达式’ | bc
乘法符号有些场景中需要转义,如* expr 5 \* 6
数值测试:-ge是否大于等于 -eq是否等于 -ne是否不等于 -lt是否小于 -le是否小于等于
逻辑运算:
非:!
! 1 = 0 ! true ! 0 = 1 ! false
短路运算
短路与 &&; 第一个为0,结果必定为0 第一个为1,第二个必须要参与运算
短路或 || 第一个为1,结果必定为1 第一个为0,第二个必须要参与运算
异或:^
异或的两个值,相同为假,不同为真
3、编写脚本/root/bin/backup.sh,可实现每日将/etc/目录备份到 /root/etcYYYY-mm-dd中
#/!bin/bash
day=`date +%F`
echo "start backup..."
cp -av /etc /root/etc$day - a 归档: 递归、保留文件属性、链接 -v:详细显示命令执行的操作
echo "finsh"
unset day 释放变量
4、编写脚本/root/bin/nologin.sh和login.sh,实现禁止和充许普通用户登录系统
5、编写脚本/root/bin/disk.sh,显示当前硬盘分区中空间利用率最大的值