vim编辑以及脚本编程练习
转至:http://www.178linux.com/88128
vim编辑器的使用总结:
vim在工作过程当中有三种模式:编辑模式、输入模式、末行模式。
1、编辑模式:即命令模式,键盘操作常被理解为编辑命令;
2、输入模式:在文本文件当中进行输入内容;
3、末行模式:vim内置的命令行接口,执行vim的内置命令。
vim的使用
打开文件
#vim[option]…[FILE]
+#:打开文件后,直接让光标处于第#行的行首;
+/PATTERN:打开文件后,直接让光标处于第一个被PATTERN锁匹配到的行的行首。
模式转换
1、ESC键:可以从输入模式转换到编辑模式
2、从编辑模式à输入模式
常用的有o:在光标所在行的下方新建一个空行病转换为输入模式
a:在光标所在的后方转换为输入模式
3、编辑模式à末行模式:直接输入冒号(:)即可在窗口的左下方显示冒号
4、末行模式à编辑模式敲击ESC键
5、输入à编辑à末行:输入模式不能直接转换到末行模式
退出文件
需要先切换到编辑模式之后才能退出,在切换到编辑模式后键入一下命令即可进行相关的操作:
:q退出
:q!不保存退出
:wq保存退出
:x保存退出
:wq!强制保存退出
:w /PATH/TO/SOMEWHERE
编辑模式保存退出的快捷键ZZ
vim的编辑命令
x:删除光标所在处的字符
dd:删除光标所在行
p:paste,粘贴
y:yank,复制
Y:yy复制行
c:修改
撤销编辑:
u:撤销此前的操作
#u:撤销最近的#次操作
撤销此前的撤销操作
Ctrl+r
vim中的末行模式
1、内容定界
#:第#行
#,#:从左侧第#行到右侧第#行结尾
.:当前行
$:最后一行
%:全文,相当于1,$
2、查找
/PATHERN:从当前光标所在处向文件尾部查找
? PATHERN:从当前光标所在处向文件首部查找
窗口属性定义
:set nu 显示行号
:set nonu取消显示行号
:set ai启用自动缩进功能
:set noai取消自动缩进功能
本周练习:
1,复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#。
%^([[:space:]]+)@#\
2,复制/boot/grub/grub.conf至/tmp目录中,删除/tmp/grub.conf文件中行首的空白字符。
%^[[:space:]]@g
3,删除/tmp/rc.sysinit文件中以#开头,且后面跟了至少一个空白字符的行行的#和空白字符。
%^#[[:space:]]@g
4,为/tmp/grub.conf文件中前三行的行首加#号。
1,^@#@g
5,将/etc/yum.repos.d/CentOS-Media.repo文件中所有的enabled=0或gpgcheck=0的最后的0修改为1。
%(enabled\|gpgcheck)\
6,每4小时执行一次对/etc目录的备份,备份至/backup目录中,保存的目录名为形如etc-201504020202。
# crontab –e
0 */4 * * * root cp -r /etc/ /backup/etc-$(date +%Y%m%d%H%M)
7,每周2,4,6备份/var/log/messages文件至/backup/messages_logs/目录中,保存的文件名形如messages-20150402。
# crontab –e
0 * * * Tue,Tur,Sat root cp /var/log/messages /backup/messages_logs/messages-$(date +%Y%m%d)
8,每天每两个小时取当前系统/proc/meminfo文件中的所有以S开头的信息至/stats/memory.txt文件中。
# crontab –e
0 */2 * * * root grep “^S” /proc/meminfo >> /stats/memory.txt
9,工作日的工作时间内,没两小时执行一次echo “howdy”。
# crontab –e
0 9-18/2 * * 1-5 root echo “howdy”
10,创建目录/tmp/testdir-当前日期时间。
#!/bin/bash
mkdir /tmp/testdir-$(date +%Y%m%d%H%M%S)
# bash -x mkdir2.sh
++ date +%Y%m%d%H%M%S
+ mkdir /tmp/testdir-20170902155548
11,在此目录中创建100个空文件:file1-file100。
#!/bin/bash
for num in `seq 1 100`; do
touch /tmp/testdir-20170902155548/file$num
done
12,显示/etc/passwd文件中位于第偶数行的用户的用户名。
#!/bin/bash