Linux运维必备技能-vim编辑器高效用法
vim末行模式:
内建的命令行接口
- 地址定界
:startups [, endows]
#:特定的第#行,例如即第5行
#,#:指定行范围,左侧为起始行,右侧为结束行;
#,+#:指定行范围,左侧为起始行绝对编号,右侧为相对左侧号的偏移量;例如:3+7
., $-1
1, $
%:全文
/pattern/:从光标所在处起始向文件尾部第一次被模式所匹配到的行;
/first/,$
/pat1/,/pat2:从光标所在处起始,第一次有pat匹配到的行开始,至第一次由pat2匹配到的行结束之间的所有行;
可同编辑命令一同使用,实现编辑操作;
d
y
c
w /PATH/TO/SOMEFILE:将范围内的文本保存至指定的文件中;
r /PATH/FROM/SOMEFILE:将指定的文件中的文本读取并插入至指定位置
- 查找
/PATHERN:从当前光标所在处向文件尾部查找能够被当前模式匹配到的所有字符串;
? PATHERN:从当前光标所在处向文件首部查找能够被当前模式匹配到的所有字符串;
n:下一个,与命令方向相同;
N:上一个,与命令方向相反;
- 查找并替换
s:末行替换的命令,使用格式;
s/要查找的内容/替换为的内容/修饰符
要替换的内容:可使用正则表达式;
替换为的内容:不能使用下则表达式,但可以引用;
如果“要查找的内容”部分在模式中使用分组符号:在“替换为的内容”中使用后向引用;
直接引用查找模式匹配到的全部文本;
修饰符:
i:忽略大小写
g:全局替换,意味着一行中如果匹配到多次,则均替换
可把分隔符替换为其它非常用字符;
s@@@
s###
示例:
%s@\<t\([[:alpha:]]\+\)>@T\1@g
%s@\<t[[:alpha:]]\+\>@&er@g
练习:
- 复制/etc/grub2.cfg文件至/tmp目录中,用查找替换命令删除/tmp/grub2.cfg文件中以空白字符开头的行的行首的空白字符;
- 复制/etc/rc.d/init.d/functions文件至/tmp目录中,用查找替换命令为/tmp/functions文件的每个以空白字符开头的行的行首加上#;
- 将/etc/yum.repos.d/Centos-Base.repo文件中所有的enabled=1,所有gpgchek=0替换为gpgcheck=1;
%@
vim的多文件功能:
vim FILE1 FILE2..
:next 下一个
:prev 上一个
:first 第一个
:last 最后一个
退出所有文件;
:wqall 保存所有文件并退出;
:wall
:qall
多窗口:
-o:水平分割窗口
-O:垂直分割窗口
在窗口间切换:Ctrl+w,ARROW
注意:单个文件也可以分割为多个窗口进行查看:
Ctrl+w,s:水平分割窗口
Ctrl+w,v:垂直分割窗口
定制vim的工作特性:
- 行号
显示:set number,简写为set nu
取消显示:set number , set nonu
- 括号匹配高亮
匹配:set showmatch,set sm
取消:set nosm
- 自动缩进
启用:set al
禁用:set noal
- 高亮搜索
启用:set hlsearch
禁用:set nohlsearch
- 语法高亮
启用:syntax on
禁用:syntax off
- 忽略字符大小写
启用:set lc
禁用:set nolc
获取帮助:
:help
:help subject
Bash脚本编程之算术运算
+,-,*,/,**,%
算术运算格式:
- let VAR=算术运算表达式
- VAR=$(算术运算表达式)
- VAR=$(算术运算表达式)
- VAR=$(expr $ARG1 $OP ¥ARG2)