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

相关推荐

  • shell编程——让你又爱又恨的东西

    变量类型:      不同的数据类型在系统中所占资源不同,并且表示的范围也不同      数值型:          短整型short:      &…

    Linux干货 2016-08-12
  • 08.08 笔记总结

    1. 使用sed显示特定行  sed -n '20p' /etc/passwd  // 显示/etc/passwd中第20行 命令相当于  cat /etc/passwd | head -20 | tail -1 2. sed -ibak '/^UUID.*/d' /etc/fstab &…

    Linux干货 2016-08-12
  • vim浅谈

            在Linux的世界里,绝大部分的配置文件都是以ASCII的纯文本形式存在的,所以作为一名优秀的Geek,熟练掌握一种文本编辑辑器是非常重要的。         Linux世界中的文本编辑器有很多…

    Linux干货 2015-04-27
  • N25第一周学习总结

    第一周学习总结 按照课程要求,本周完成2天的课时,总计8课时。 因为是刚开课,马哥为我们介绍了上课环境,课程体系,还有一些计算机基础理论。内容主要是:          计算机的工作机制        &nbs…

    Linux干货 2016-12-04
  • 8 文本查看、处理与统计分析

    文本查看 cat cat [OPTION]… [FILE]… 该命令用于正向查看文本文件,但不可分页,一次性显示完成 参数说明 参数 说明 -E 显示行结束符$ -n 对显示出的每一行进行编号 -A 显示所有控制符 -b 非空行编号 -s 压缩连续的空行成一行 -T 显示tab为^I 示例  tac tac […

    Linux干货 2016-08-10
  • 18-系统启动故障修复-实践

    说明:重启时可以选择性在vmlinuz所在行末尾添加 selinux=0;或者直接编辑/etc/selinus/config文件,更改 SELINUX=disabled 关闭SELINUX。可以避免打标签,节省启动时间 以下操作都需要进入bootloader引导加载项修改内核启动参数,在vmlinuz所在行末尾添加一个启动选项 如何进入bootloader引…

    2017-04-02

评论列表(1条)

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

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