week6: 请详细总结vim编辑器的使用并完成以下练习题 vim编辑器小结: 1. vim编辑器的模式: vim编辑器有很多模式,常用模式有:Normal,Insert,Command; 通常,打开一个文件,此时所处的就是normal模式;normal模式下可以浏览,修改文件内容; 在任何模式下,只要按ESC就可以返回到Normal模式; Insert模式则用来编辑文本内容; Command模式多用来操作文本文件,如保存文件,改变编辑器本身的状态等; 模式间的切换: Normal ---> Insert 按键:i,a,o,s,I,A,O,S Normal ---> Command 按键:':' Insert/Command ---> Normal 按键:ESC 2. vim编辑器的使用: 2.1 打开一个文件: #vim [option] File [...] option: +NUM:打开文件后,让光标处于第NUM行的行首;不加NUM,直接处于最后一行; +/PATTERN:打开文件后,让光标处于第一个被PATTERN模式匹配到的行的行首; -b:以二进制方式打开文件; -m:只读方式发开文件; -d file1 file2 ..:比较多个文件;不加-d,表示打开多个文件; -o file1 file2 .. :水平分割方式打开多个文件; -O file1 file2 .. :垂直分割方式打开多个文件; 2.2 关闭文件: :q 退出(此时文件内容未发生改变才可以正常退出); :q! 强制退出,丢弃做出的修改; :wq 保存退出; :x 保存退出; ZZ 保存退出; ZQ 不保存退出; 2.3 光标移动: 逐字符移动: 方向键 hjkl:左下上右 备注:支持和数字组合; 逐单词移动: w:移至下一个单词的词首 e:跳至当前或下一个单词的词尾 b:跳至当前或前一个单词的词首 备注:支持和数字组合,即6w之类等; 行内跳转: 0:跳至绝对行首; ^:跳至相对行首; $:跳至绝对行尾; 行间跳转: G:表示最后一行; NG:表示跳转到第N行;(":N") 2.4 翻屏: ctrl + f:向下翻一屏 ctrl + b:向上翻一屏 ctrl + d:向下翻半屏 ctrl + u:向上翻半屏 3. 删除: x:删除单个字符; d[num]w: 删除光标所在处向后的n个单词; [num]dd:删除包括光标所处行的n行;没有num的话,删除当前单行; :1,3d表示删除1到3行; .表示当前行; $表示最后一行; %表示所有行; $-n表示倒数第n行; 4. 粘贴: p: 如果删除或复制为整行内容,则粘贴至光标所在行的下方;如果是非整行,则粘贴至光标所在字符的后面 P:如果删除或复制为整行内容,则粘贴至光标所在行的上方;如果是非整行,则粘贴至光标所在字符的前面 5. 复制: 使用y;用法同d命令; 6. 撤销编辑与还原: u:撤销前一次的操作; 可连续敲u键撤销此前的n次操作; ctrl+r:还原最近一次的撤销操作; 其它: 重复前一次的编辑操作可以按'.'; 替换单个字符:先按'r',在按需要替换的字符; 7. 查找并替换: 末行模式下使用s命令: ADDR1,ADDR2s/pattern/string/[[g][i]] 示例: :.,$-3s/begian/after/gi 表示从当前行到倒数第三行之间忽略大小写查找begian并替换为after; 直接查找: /pattern:在全文查找匹配到的字符串,按n键会跳到下一个匹配到的字符串; 8. 和shell交互: :! Command 9. vim设置: :set nu 显示行号 :set nonu 不显示行号 :set ic 忽略字符大小写 :set noic 区分字符大小写 :set ai 设定自动缩进 :set noai 取消设定自动缩进 :set hlsearch 高亮显示 :set nohlsearch 不高亮显示 :syntax on 语法高亮 :syntax off 不高亮显示 1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; [root@centos6 ~]# sed -r -i 's/^[[:space:]]+/#&/g' /tmp/rc.sysinit 2、复制/boot/grub/grub.conf至/tmp目录中,删除/tmp/grub.conf文件中的行首的空白字符; [root@centos6 ~]# sed -r -i 's/^[[:space:]]+//g' /tmp/grub.conf 3、删除/tmp/rc.sysinit文件中的以#开头,且后面跟了至少一个空白字符的行行的#和空白字符 [root@centos6 ~]# sed -r -i 's/^#[[:space:]]+//g' /tmp/rc.sysinit 4、为/tmp/grub.conf文件中前三行的行首加#号; [root@centos6 ~]# sed -i '1,3s/^/#&/g' /tmp/grub.conf 5、将/etc/yum.repos.d/CentOS-Media.repo文件中所有的enabled=0或gpgcheck=0的最后的0修改为1; [root@centos6 ~]# sed -r -i 's/(enabled|gpgcheck)=0/\1=1/g' /etc/yum.repos.d/CentOS-Media.repo 6、每4小时执行一次对/etc目录的备份,备份至/backup目录中,保存的目录名为形如etc-201504020202 * */4 * * * /bin/mkdir /tmp/etc-`date +%F%m%d%H%M` && cp -a /etc/* /tmp/etc-`date +%F%m%d%H%M` 7、每周2,4,6备份/var/log/messages文件至/backup/messages_logs/目录中,保存的文件名形如messages-20150402 * * * * 2,4,6 /bin/cp /var/log/messages /backup/messages_logs/messages-`date +%Y%m%d` 8、每天每两小时取当前系统/proc/meminfo文件中的所有以S开头的信息至/stats/memory.txt文件中 * */2 * * * /bin/grep ^S /proc/meminfo >> /stats/memory.txt 9、工作日的工作时间内,每两小时执行一次echo "howdy" * */2 * * 0 /bin/echo "howdy" 脚本编程练习 10、创建目录/tmp/testdir-当前日期时间; [root@centos6 ~]# mkdir /tmp/testdir-`date +%Y%m%d` 11、在此目录创建100个空文件:file1-file100 [root@centos6 ~]# for i in `seq 1 100`;do touch /tmp/testdir-`date +%Y%m%d`/file${i};done 12、显示/etc/passwd文件中位于第偶数行的用户的用户名; [root@centos6 ~]# awk -F':' '{if(NF/2 -eq 0)print $1}' /etc/passwd 13、创建10用户user10-user19;密码同用户名; [root@centos6 ~]# for i in `seq 10 19`;do useradd user$i && echo user$i|passwd --stdin user$i;done 14、在/tmp/创建10个空文件file10-file19; [root@centos6 ~]# for i in `seq 10 19`;do touch /tmp/file$i ;done 15、把file10的属主和属组改为user10,依次类推。 [root@centos6 ~]# for i in `seq 10 19`;do chown user$i.user$i /tmp/file$i;done
原创文章,作者:devon,如若转载,请注明出处:http://www.178linux.com/47837
评论列表(1条)
所有的crontab都不对,在仔细想想