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

相关推荐

  • Linux系统上的人机交互

    众所周知,计算机上运行的数据流最后都会以二进制的方式流转,这对计算机来说确实没什么问题,但是对人类来说,这样的方式无疑太难理解,所以计算机通过转换,将二进制的0、1字符串转换成人们可以易于理解的字母和数字,来方便计算机与人类的沟通和交互。这样一来,人类可以读取和输入人类习惯的字母和数字;而计算机可以使用自己的0、1字符串接收任务和返回结果。然而,这一过程就少…

    Linux干货 2017-09-01
  • linux系统启动详解

    主要内容: 系统启动过程 init启动过程 chkconfig的增,删,查 Linux组成 Linux: kernel+rootfs  kernel: 进程管理、内存管理、网络管理、驱动程序、文件系统、安全功能  rootfs:程序和glibc 库:函数集合, function, 调用接口…

    Linux干货 2016-09-08
  • shell编程之循环

           当需要重复运行特定的指令以满足系统管理工作需要时,条件判断语句if、case并不能很好地提供支撑,shell提供了for、while、until循环语句来满足此需求。 一、for循环语句        for循环用于重复整个对象列表,依次遍历对列…

    Linux干货 2016-08-18
  • Linux用户和组管理及相关命令详解

        概要:在学习Linux的初级阶段,用户管理是基础管理的重要部分,任何命令的运行,系统的正常运转,均离不开用户管理的内容,本篇就为大家介绍下Linux用户管理的一些基础概念和一些基础命令的用法。内容主要分为以下三个部分:        &nbs…

    Linux干货 2016-08-02
  • 关于 shell脚本编程第一篇

                                                   shell脚本编程(1) …

    系统运维 2016-08-15
  • 【26期】Linux第八周学习小总结

        前言     本周的学习已经过去了,虽然本周学习中老师一直都有说,哎呀,这个不重要,以后有网络管理员给你们来做,了解一下就行,然而话锋一转就又说,其实小公司没有网络管理员,如果你们不好好学,以后就会做得更多更杂的工作,这一周的知识点基本上都是在一个pdf上的,大概有200…

    2017-09-02

评论列表(1条)

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

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