马哥教育网络班22期+第6周课程练习

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

赞 (0)
devondevon
上一篇 2016-09-26 07:43
下一篇 2016-09-26 07:43

相关推荐

  • 三次握手和四次挥手

    今天来聊一下事实标准协议TCP/IP中传输层里TCP协议中,主机与服务器建立连接时的三次握手,和断开连接时的四次挥手。 本博文分两部分介绍,    一:状态详解    二:三次握手和四次挥手状态介绍 这里总共涉及到十种状态,其实总共有十一种状态,接下来分别介绍一下它们; 一:状态详解 CLOSED:关闭—&…

    2017-09-01
  • linux安装

    点击开始运行\\172.16.0.1\python10 用户名:python10 密码:python10magedu 运行 ftp://172.16.0.1                                                                                                      …

    Linux干货 2018-03-17
  • 第一周作业

    1、描述计算机的组成及其功能 答:计算机主要有5大组件构成: 1) 计算器:用户数据计算,主要是指CPU 2) 控制器:用于控制数据流或者指令流,控制计算机系统的各个组件的协同工作以及信息的流动,如各种控制芯片(南桥,北桥等) 3) 存储器:用户数据的存放,如内存 4) 输入设备:如键盘,鼠标等 5) 输出设备:如显示器,外置的存储设备( 硬盘,光…

    Linux干货 2016-10-30
  • 由tty命令产生的好玩的想法

    昨天看了马哥Linux视频的前两天内容,里面讲了到终端的概念,回顾一下:  物理终端:是直接接入本机的显示器和键盘设备。/dev/console  虚拟终端:附加在物理终端之上的以软件方式虚拟实现的终端,CentOS 6默认启动6个虚拟终端 Ctrl+Alt+F#: [1,6] 图形终端:附加在物理终端之上的以软件方式…

    Linux干货 2016-05-16
  • 马哥教育网络班20期+第二周博客作业

    1.Linux上的文件管理类命令 2.bash命令学习总结 3.bash命令实例 4.元数据与时间戳 5.命令别名 6.练习题6~12 1.Linux上的文件管理类命令        Linux上的文件管理类命令可分为查看类、目录管理类、权…

    Linux干货 2016-06-19
  • 关于软硬链接那些事儿

           小编这周接触到了链接,那么重点来了,啥是链接呢小编觉得链接简单来说就是一种共享的方式,比如我们去逛超市,超市的入口就是‘链接’。在Linux中,链接又分为软连接和硬链接,想要了解他俩,就得先了解几个基本概念。 一:Inode       我们知道文件包含数据和元数据,它的数据…

    Linux干货 2017-07-22

评论列表(1条)

  • 马哥教育
    马哥教育 2016-09-27 09:58

    所有的crontab都不对,在仔细想想