1、总结vim命令行模式常见快捷方式,以及vim查找,替换的方法
a 在当前光标的后面插入
i 在当前光标处插入
A 在当前光标所在行的最后插入
l在当前光标所在行的开头插入
dd(按双下d键) 删除一行
x 删除当前字母
esc键进入命令模式
:w (小写)保存文件
:wq (小写)保存并退出vim
:w 文件名name 将文件另存为文件名name
:ZZ (大写)保存文件并退出,相当于:wq
:wq! (小写)文件所有者强制保存只读文件,如果不是文件所有者进行此操作,不能成功
:q! 退出不保存文件
复制(yank)
yy或 Y 复制光标所在整行
y^ 复制到光标所在行行首,不包括光标位置字符
y$ 复制到光标所在行行尾,包括光标位置字符
yw 复制一个单词,光标必须在单词首部
yG 复制到文件尾
y1G 复制到文件首
nyy 复制光标所在行开始的n行
粘贴
p (小写)粘贴到光标后
P (大写)粘贴到光标前
删除
x (小写)删除光标前一个字符
X (大写)删除光标后一个字符
dd (小写)删除光标所在整行
dw (小写)删除光标所在处一个单词
dG 删除光标所在整行到文件尾
dgg 删除光标所在整行到文件首
D (大写)删除到行尾,包含光标处的字符
d0 删除到行首,不包含光标处的字符
:n1,n2d 编辑模式下,删除n1-n2行
撤销
u (小写)无限次保存前撤销(大概500多次)
ctrl+r redo重做
多窗口功能:
:r file 读入文件 file 内容,并插在当前行后
:new 新建一栏空白窗口
:split 将当前文件分两栏显示
<C-]> 在 :help 中,遇到超连接可以按 Ctrl+] 跳转
<C-T> 在 :help 中,按 Ctrl+T 往回跳转
查找
/s /string 从光标处开始向下开始查找字符串string
/查找模式下按n(小写)查找下一个,按N(大写)查找上一个
?string 从光标处开始向上开始查找字符从string
?查找模式下按n(小写)查找上一个,按N(大写)查找下一个
:set nu(mber) 显示行号
:n 指定移动到第n行
替换
在扩展模式下完成查找替换操作
格式: %s/要查找的内容/替换为的内容/修饰符
修饰符: i 忽略大小写
g 全局替换;默认模式下每一行只替换第一个
gc 全局替换 每次替换钱询问
也可以使用其他分隔符替代/
@ #等
2.总结脚本中运算符、逻辑运算以及用法
真 1 假 0
true 1
false 0
与 的关系(并且)&
1与1=1
1与0=0
0与1=0
0与0=0
短路与 &&
若第一为假 0,则后续不管真假 结果皆为假0
若第一个为真1,则后续结果不知道真假
导出 :若第一个命令cmd1为真,则执行第二个命令cmd2
若第一个命令cmd1为假,则不执行第二个命令cmd2
或 |
1或1=1
1或0=1
0或1=1
0或0=0
短路或 ||
若第一为真1,则后续不管真假 结果皆为真1
若第一个为假0,则后续结果不知道真假
导出 :若第一个命令cmd1为真,则无需执行第二个命令cmd2
若第一个命令cmd1为假,则执行第二个命令cmd2
非 !(表示取反)
!1=0
!0=1
异或 ^:相同为假0 相反为真1
异或后的值再异或原来的值的其中之一可以得到原来的值另一个值
A=10
B=20
A=$[A^B]
B=$[A^B]
A=$[A^B]
echo A=$A B=$B
则完成了AB互换
(Linx的处理是自左而右的,第一个异或得到的值的A 在第二个异或中已经改变为处理后的值,故在B的异或中,得到的B值已经为A)
同或:相同为真1 相反为假0
条件测试
命令:
test EXPRESSION
[ ]
[[ ]]
EXPRESSION 前后必须有空白字符
[[ == ]] 通配符
[[ =~ ]] 扩展正则表达式
3、编写脚本/root/bin/backup.sh,可实现每日将/etc/目录备份到 /root/etcYYYY-mm-dd中
cp -a /date /tmp/date`date +%F`
4.编写脚本/root/bin/nologin.sh和login.sh,实现禁止和充许普通用户登录系统
touch /etc/nologin
a=/etc/nologin;[-e $a]&&rm -r $a&&echo 执行成功 || echo "执行失败"
5.5、编写脚本/root/bin/disk.sh,显示当前硬盘分区中空间利用率最大的值
df| grep -Eo "[0-9]{1,3}%"|sort -nr|head -1