N26-第六周博客作业

请详细总结vim编辑器的使用并完成以下练习题

VIM有三种模式,分别为标准模式、输入模式、末行模式

模式切换:

         标准模式——输入模式:i

         标准模式——末行模式::

         末行模式、输入模式——标准模式:esc

         末行模式——输入模式:esc之后按i

光标移动:

        

h

l

j

k

w

跳转至下一单词词首

2w

跳转至往下两个单词的词首

b

向前跳转至前一个词首

e

向后跳转至下一个词首

2b

跳转至前两个词首

2e

跳转至下两个词首

0

绝对行首

^

非空白行首

$

行尾

上一句

)

下一句

{

上一段

}

下一段

G

最后一行

gg1G

第一行

5G

跳转至第5

 

退出:

         q:在没有修改时退出编辑器

         q!:不保存退出

         w:保存

         wq:保存退出

         x:保存退出

         wq!:强制保存退出

         w
/path/to/file
:另存为

         ZZ:编辑模式下保存退出

编辑操作:

x

删除光标所在处字符

5x

删除光标所在处及向后共5个字符

d

结合光标跳转字符实现范围删除,如d$dwdedbd0

dd

删除光标所在行

2dd

删除2

p

在光标所在行下方粘贴

y

结合光标跳转字符实现范围复制

5y

从当前行向下复制5

yyY

复制当前行

c

修改,结合光标跳转字符实现范围修改

cc

删除光标所在行并进入编辑模式

v

可视化模式,按字符选择

V

可视化模式,按行选择

u

撤销此前的操作

4u

撤销最近的4次操作

ctrl+r

撤销此前的撤销操作

ctrl+f

向文件尾部翻一屏

ctrl+b

向文件首部翻一屏

ctrl+d

向文件尾部翻半屏

ctrl+u

向文件首部翻半屏

 

 

 

末行模式:

1、  地址定界

#:第#

#1,#2:从#1行至#2

#1+#2:从#1行再往后#2

.:当前行

$:最后一行

%:全文,相当于1,$

/path1/,/path2/:从第一次被path1匹配到的行到第一次被path2匹配到的行

2、  保存选取内容

w /path/to/file 需配合地址定界功能使用

3、  读取文件内容

r /path/from/file

4、  查找

/key :从当前光标处向文件尾部查找

?key :从当前光标处向文件首部查找

查找过程中:

           n:与查找方向相同

           N:与查找方向相反

5、  替换

末行模式下s

s/要查找的内容/要替换为的内容/修饰符

要查找的内容:可使用正则表达式

要替换为的内容:不能使用正则表达式,但可以引用,可使用分组引用,也可以使用&引用

修饰符:i  忽略大小写

                    g       全局模式

多文件模式:

        

:next

切换至下一个文件

:previous

切换至上一个文件

:last

切换至最后一个文件

:first

切换至第一个文件

:wqall

保存退出全部文件

:qall

退出所有文件

:wall

保存所有文件

 

 

vim -o a.txt b.txt

水平分割

vim -O a.txt b.txt

垂直分割

 

多窗口

ctrl+w,s

水平分割文件窗口

ctrl+w,v

垂直分割文件窗口

ctrl+w,方向键

窗口间切换

 

 

 

窗口属性定义(仅对当前vim进程有效):

:set nu

显示行号

:set nonu

取消显示行号

:set ai

启动自动缩进功能

:set noai

取消自动缩进功能

:set ic

忽略大小写

:set noic

取消忽略大小写

:set sm

括号匹配

:set nosm

取消括号匹配

:syntax on

语法高亮开启

:syntax off

语法高亮关闭

:set hisearch

搜索高亮

:set nohlsearch

关闭搜索高亮

也可修改以下文件

         /etc/vimrc:全局配置

         ~/.vimrc:用户配置文件,有可能默认不存在,需要创建

 

一、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#

         [root@centos6
tmp]# cp /etc/rc.d/rc.sysinit /tmp                                      #
复制文件至/tmp

         vim末行模式下输入:

         :%s@^[[:space:]]\+@#&@g

         :%s@^\([[:space:]]\+\)@#\1@g

二、复制/boot/grub/grub.conf/tmp目录中,删除/tmp/grub.conf文件中的行首的空白字符;

         [root@centos6
tmp]# cp /boot/grub/grub.conf /tmp                       #
复制文件至/tmp

:%s@^[[:space:]]\+@@g

:%s@^[[:space:]]\{1,\}@@g

三、删除/tmp/rc.sysinit文件中的以#开头,且后面跟了至少一个空白字符的行行的#和空白字符

         s@^#[[:space:]]\+@@g                              #引用前面的模式

         :%s@^#[[:space:]]\{1,\}@@g                   #分组模式

四、为/tmp/grub.conf文件中前三行的行首加#号;

         :1,3s@^.*@#&@g                                      #引用模式

         :1,3s@^\(.*\)@#\1@g                                #分组模式

五、将/etc/yum.repos.d/CentOS-Media.repo文件中所有的enabled=0gpgcheck=0的最后的0修改为1

         :%s@\(enabled\|gpgcheck\)=0@&=1@g

六、每4小时执行一次对/etc目录的备份,备份至/backup目录中,保存的目录名为形如etc-201504020202

         方法一:[root@promote
backup]# crontab -e     
输入以下内容

* */4 * * * /bin/tar -P -Jcf /backup/etc-`date
+\%Y\%m\%d\%H\%M`.tar.xz /etc

         方法二:[root@promote
crontabscript]# vim etcbackup

                            输入以下内容:

                            #!/bin/bash

tar -P -Jcf /backup/etc-`date +%Y%m%d%H%M`.tar.xz /etc

[root@promote backup]#chmod u+x /tmp/crontabscript/etcbackup            

#增加执行权限

[root@promote backup]# crontab -e

输入以下内容:

* */4 * * * /tmp/crontabscript/etcbackup

 

七、每周246备份/var/log/messages文件至/backup/messages_logs/目录中,保存的文件名形如messages-20150402

方法一:[root@promote
backup]# crontab -e     
输入以下内容

0 0 * * 2,4,6 /bin/tar -P -Jcf /backup/messages_logs/messages-`date
+\%Y\%m\%d\%H\%M`.tar.xz /var/log/messages

         方法二:打开vim编辑器,输入以下内容

                            #!/bin/bash

tar -P -Jcf /backup/messages_logs/messages-`date +%Y%m%d%H%M`.tar.xz
/var/log/messages

[root@promote backup]# crontab -e      输入以下内容

0 0 * * 2,4,6 /tmp/crontabscript/messagesbackup

 

八、每天每两小时取当前系统/proc/meminfo文件中的所有以S开头的信息至/stats/memory.txt文件中

方法一:[root@promote
backup]# crontab -e     
输入以下内容

* */2 * * * /bin/cat /proc/meminfo | /bin/grep -i “^s”
>>/stats/memory.txt && /bin/echo
`/bin/date`>>/stats/memory.txt

#/proc/meminfo文件中的所有以S开头的信息和时间一起保存至/stats/memory.txt文件中

方法二:打开VIM编辑器,输入以下内容

#!/bin/bash

cat /proc/meminfo | grep -i “^s” >>/stats/memory.txt
&& echo `date`>>/stats/memory.txt

[root@promote backup]# crontab -e      输入以下内容

* */2 * * * /tmp/crontabscript/meminfobackup

九、工作日的工作时间内,每两小时执行一次echo “howdy”

* (9-17)/2 * * 1-5 /bin/echo “howdy”

脚本编程练习

十、创建目录/tmp/testdir-当前日期时间;

         #!/bin/bash

# version 1

mkdir /tmp/testdir-`date +%Y-%m-%d-%H-%M`

 

#!/bin/bash

# version 2

i=`date +%Y%m%d%H%M`

if

         [ -e testdir$i ];then

                   echo
“testdir$i is exists”

         else

                   mkdir
./testdir$i

         fi

十一、在此目录创建100个空文件:file1-file100

         #!/bin/bash

         #version 1

touch file{1..100}

 

#!/bin/bash

#version 2

for i in
{1..100};do

         if [ -e file$i ];then

                   echo “file$i is
exists”

         else touch ./file$i

         fi

done

十二、显示/etc/passwd文件中位于第偶数行的用户的用户名;

         方法一:

         #!/bin/bash

sed ‘1~2d’
/etc/passwd | cut -d: -f1

方法二:

#!/bin/bash

sed -n ‘n;p’
/etc/passwd | cut -d : -f1

原创文章,作者:lixinkuan,如若转载,请注明出处:http://www.178linux.com/79482

(0)
lixinkuanlixinkuan
上一篇 2017-07-08 15:50
下一篇 2017-07-08 22:48

相关推荐

  • 使用httpd反向代理模块实现tomcat负载均衡集群(下)

    上一篇讲解了http使用mod_http和mod_ajp代理模块实现tomcat负载均衡,下面我们来讲解使用http的mod_jk实现taomcat的负载均衡集群: 注意:http的mod_jk是第三方扩展模块,在新http版本中以不支持,在httpd 1.3和2.0效果较好 6、使用mod_jk实现tomcat负载均衡集群 6.1安装mod_jk [roo…

    Linux干货 2015-07-21
  • 创建CA 和申请证书

    创建CA 和申请证书1生成私有CA的私钥:(umask 066;openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048)注:CA的私钥文件必须放在/etc/pki/CA/private/cakey.pem 这个路径里2创建序列号 ,数据库文件touch  /etc/pki/CA/index.tx…

    Linux干货 2017-07-17
  • 域名解析服务(DNS)之bind

    DNS简介 DNS是Domain Name System的简称,DNS的主要作用就是讲主机名解析成ip地址的过程,因为在计算机网络当中是通过ip地址来进行主机间通信的,ipv4的地址是32位,人类记忆起来十分困难,更何况ipv6的128位,所以我们需要一个简单容易记忆的字符串来替换ip地址,当我们访问www.baidu.com它能知道访问的是某个ip地址的服…

    Linux干货 2016-10-09
  • vim编辑器

    vim编辑器    模式化编辑器                        &nbsp…

    Linux干货 2016-08-10
  • 第六周作业-Vim总结

                    Vim总结 vim功能比较多,这里我不总结vim多窗口,只对基本常用的介绍. 一.模式说明 vim和记事本或WORD不一样,不是一打开后就可以输入文字,此时它处于正常模…

    Linux干货 2017-01-16
  • 浅谈Linux终端类型

    Linux终端类型 作者:任飞鹏            日期:2016-10-13 终端是什么: 终端(Terminal)也称终端设备,是计算机网络中处于网络最外围的设备,主要用于用户信息的输入以及处理结果的输出等。 早期计算机系统中,由于计算机主机…

    Linux干货 2016-10-19

评论列表(1条)

  • 马哥教育
    马哥教育 2017-07-13 17:16

    6,8,9题需要精确到分钟的哈,加油!!!