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
下一篇 2017-07-08

相关推荐

  • nginx负载均衡实验

    实验一、 实验环境:     1、一台director主机。并部署nginx服务。        内网iP:192.168.1.1  外网iP:10.1.64.1     2、一台后端服务器。并部署h…

    Linux干货 2016-10-30
  • 第二周作业

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 目录管理类的命令: mkdir, rmdir mkdir:make directories mkdir [OPTION]… DIRECTORY… -p: 自动按需创建父目录; -v: verbose,显示详细过程; -m MODE:直接给定权限; 注意:路径…

    Linux干货 2018-01-17
  • vim、定时任务、脚本初步应用及详解

    1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#;   ~]#cp  /etc/rc.d/rc.sysinit   /tmp   在末行模式下输入:%s@^[[:space:]]\+[^[:space:]]@#&@g     &:匹配模式找到的全部…

    2016-12-04
  • PHP通过Thrift操作Hbase

    HBase是一个开源的NoSQL产品,它是实现了Google BigTable论文的一个开源产品,和Hadoop和HDFS一起,可用来存储和处理海量column family的数据。官方网址是:http://hbase.apache.org 一 、HBase访问接口 1.  Native Java API,最常规和高效的访问方式,适合Hadoop …

    Linux干货 2015-05-18
  • 脚本实现httpd创建虚拟主机

    概述 本文使用脚本实现基于主机名的虚拟主机按需创建: 脚本可接受参数,提供独立站点目录; 生成独立站点首页; 脚本可接受参数,参数虚拟主机名称; 每虚拟使用单独的配置文件; 脚本可接受参数,参数虚拟主机名称; 环境 系统基于CentOS7.2,并通过yum安装httpd 2.4.6 建议关闭防火墙和selinux。 演示   客户机将域名解析写入/…

    Linux干货 2016-10-08
  • 初识操作系统和linux

    初识操作系统和linux 1.计算机系统由硬件系统和软件系统两大部分组成:是一种能接收和存储信息,并按照存储在其内部的程序对海量数据进行自动、高速地处理,然后把处理结果输出的现代化智能电子设备。   2.世界上第一台计算机是1946年诞生在美国宾州大学。   3.冯·诺依曼体系结构:1946年数学家冯·诺依曼于…

    Linux干货 2017-02-14

评论列表(1条)

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

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