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,如若转载,请注明出处:/79482

发表评论

登录后才能评论

评论列表(1条)

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

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

联系我们

400-080-6560

在线咨询:点击这里给我发消息

邮件:1823388528@qq.com

工作时间:周一至周五,9:30-18:30,节假日同时也值班

友情链接:万达主管QQ  万达招商QQ  万达登录  万达主管QQ  万达开户  万达娱乐直属  万达娱乐平台  华宇招商  万达娱乐主管QQ  guoqibee.com