第六周作业

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

基本模式:
    编辑模式,命令模式
    输入模式
    末行模式
        内置的命令行接口
打开文件
    vim [options] [file ..]

        +#:打开文件后,直接让光标处于第#行
        +/PATTERN:打开文件后,直接让光标处于第一个被PATTERN匹配到的行的行首
        + 空格:直接到末尾

模式转换:
    编辑模式 --> 插入模式
        i:insert,在光标所在处输入
        a:append,在光标所在处后方输入
        o:在光标所在处的下方打开一个新行
        I:在光标所在行的行首输入
        A:在光标所在行的行尾输入
        O:在光标所在处的上方打开一个新行

        输入模式 --> 编辑模式

            Esc
        编辑模式 -->末行模式
            :
        末行模式 --> 编辑模式

            Esc
    关闭文件:
        ZZ:保存并推出
        :q:退出
        :q!:强制退出,不保存此前的编辑操作
        :wq:保存并推出
            :w,:q
        :x保存并推出
        :w /PATH/TO/SOMEFILE
    光标跳转:
        字符间跳转
            h:左
            j: 下
            k: 上
            l: 右
            #COMMAND:跳转由#指定的个数的字符

    单词间跳转
        w: 下一个单词的词首
        e: 当前或后一个单词的词尾
        b: 当前或前一个单词的词首
    行首行尾跳转
        ^: 跳转至行首的第一个非空白字符
        0:跳转至行首
        $: 跳转至行尾
    行间跳转
        #G:跳转至由#指定的行
        1G,gg:第一行
        G:最后一行
    句间跳转:
        )
        (
    段间跳转
        }
        {
    翻屏:
        Ctrl+f:向文件尾翻一屏
        Ctrl+b:向文件首部翻一屏
        Ctrl+d:向问价你未卜翻半屏
        Ctrl+u:向文件首部翻半屏
        Enter:执行向后翻

vim编辑命令
    字符编辑
        x: 删除光标所在处的字符
        #x: 删除光标所在处起始的#个字符
        xp:交换光标所在处的字符与其后面的字符的位置
    替换命令(replace)
        r: 替换光标所在处的字符
            rCHAR
    删除命令
        d:删除命令,可结合光标跳转字符,实现范围删除
            d$:
            d^:
            dw:
            de:
            db:
                #COMMAND
            dd:
                #dd:删除光标所处的行起始的共#行
    粘贴命令(p,put,paste)
        p:缓冲区的内容如果为整行,则粘贴在当前光标所在行的下方;否则,则粘贴至当前光标所在处的后方
        P:缓冲区的内容如果为整行,则粘贴咋当前光标所在行的上方;否则,则粘贴至当前光标所在处的后方
    复制命令(yank,y)
        y$
        y^
        yo
        ye
        y
        yw
        yb
            #COMMAND
        y:复制,工作行为相似与d命令
            yy:复制一整行
                #yy:复制# 行
    改变命令(change,c)
        编辑模式 --> 输入模式,实现删除操作
            c$
            c^
            co
            cb
            ce
            cw
                #COMMAND
            cc:删除光标所在的行,并转换为输出模式

    可视化模式,
        v:按字符选定
        V:按行选定

        结合编辑命令使用:d,c,y

    撤销(undo)操作
        u: 撤销此前的操作
            #u:撤销此前的#个操作

    撤销此前的撤销:
        Ctrl+r
    重复执行前的一个编辑操作:
        .

vim自带的练习教程:vimtutor

vim末行模式 
    内建的命令行接口

    (1)地址定界
        :start_ports[,end_pos]
            #:特定的第# 行,例如5即第5行
            .:当前行
            $:最后一行
            #,#: 指定行范围,左侧为起始行,右侧为结束行
            #,+#:指定行范围,左侧为起始行绝对编号,右侧为相对左侧行号的偏移量,例如:3,+7
                .,$-1 当前行到倒数第二行
                1,$:全文
            %:全文
            /pattern/:从光标所在处起始向文件尾部第一次被模式所匹配到的行
                /first/,$
            /pat1/,/pat2/:从光标所在处起始,第一次由part1匹配到的行开始,至第一次由pat2匹配到的行结束之间的所有行
        可同编辑命令一同使用,实现编辑操作
        d
        y
        c

        w /PATH/TO/SOMEFILE:将范围内的文本保存至指定的文件中
        r /PATH/FROM/SOMEFILE:将指定的文件中的文本读取并插入至指定位置


    (2)查找
        /PATTERN: 从当前光标所在处向文件尾部查找能够被当前模式匹配到的所有字符串
        ?PATTERN:从当前光标所在处向文件首部查找能够被当前模式匹配到的所有字符串
            n:下一个,与命令方向相同
            N:上一个,与命令方向相反

    (3)查找并替换
        s:末行模式的命令
            s/要查找的内容/替换为的内容/修饰符
                要查找的内容:可使用正则表达式
                替换为的内容:不能使用正则表达式,但可以引用
                    如果“要查找的内容”部分在模式中使用分组符号;在“替换为的内容”中使用后向引用
                    直接引用查找模式匹配到的全部文本
                修饰符:
                    i:忽略大小写
                    g:全局替换,意味着一行中如果匹配到多次,则均替换               
            可把分隔符替换为其它非常用字符;
                s@@@
                s###

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

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

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

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

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

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

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

 :1,3s@^@#&@g

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

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

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

 * */4 * * * /usr/bin/cp -r /etc/ /backup/etc-`date +%Y%m%d%H%M`

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

 * * * * 2,4,6 /usr/bin/cp -r /var/log/messages /backup/messages_logs/messages-`date +%Y%m%d`

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

 * */2 * * * /usr/bin/grep '^S' /proc/meminfo >> /stats/memory.txt

9、工作日的工作时间内,每两小时执行一次echo "howdy"

 * */2 * * 1-5 echo "howdy" 2>&1

脚本编程练习
10、创建目录/tmp/testdir-当前日期时间;

  1 #!/bin/bash
  2 #
  3 
  4 DATE=`date +%Y%m%d%H%M%S`
  5 if [ -d /tmp/testdir-$DATE ];then
  6         echo "/tmp/testdir-$DATE is exist."
  7 else
  8         mkdir /tmp/testdir-$DATE
  9 if [ -d /tmp/testdir-$DATE ];then
  10 
  11         echo "/tmp/testdir-$DATE create success."
  12 else
  13         echo "/tmp/testdir-$DATE create failure."
  14 
  15 fi
  16 fi

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

  1 #!/bin/bash
  2 #
  3 
  4 for i in {1..100};do
  5 if [ -e ./file$i ];then
  6         echo "./file$i is exit."
  7 else
  8         touch ./file$i
  9 fi
  10 done

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

 sed -n '2~2p' /etc/passwd | cut -d: -f1

原创文章,作者:N25-赵叔,如若转载,请注明出处:http://www.178linux.com/68430

(0)
上一篇 2017-02-13 21:49
下一篇 2017-02-14 12:57

相关推荐

  • 网络班N22期第七周博客作业

    1、创建一个10G分区,并格式为ext4文件系统;    (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl;     [root@bogon ~]# fdisk /dev/sde   &nb…

    Linux干货 2016-10-17
  • mageedu_20160802

     用户的管理权限设置与更改以及ACL的存在及其实用意义      一.用户的管理权限如何设置与更改以及umask值的含义    由于linux系统是一个多用户使用的系统,对于各个用户指定的文件或目录必须存在一套管理系统,以防止多用户对相同文件的混淆使用。于是催生出了linux系统文件的用户权限设置。…

    Linux干货 2016-08-03
  • 使用NFS共享网页文件

    上图为我们要搭建的网络拓扑图 本次实验目的:使用NFS文件服务来实现wordpress共享 实验环境: 需要三台虚拟机:         分别是:192.168.26.188(服务器端)          &n…

    2017-05-01
  • linux 哲学思想

    一切皆文件:普通文件,目录、字符设备、块设备、套接字在linux中都是以文件被对待;虽然类型不通,但是对其提供得却都是统一套操作界面。 由众多的单一程序,一个程序只实现一个功能,多个程序组合完成负责任务。单一的程序可以保持高效的执行效率,对于复杂的功能linux通过许多简单程序组合等方式实现,在保证简单程序的高效性同时,复杂的程序也必然是高效性的。 文本文件…

    Linux干货 2017-08-19
  • 马哥教育网络班22期+第一周课程练习

    计算机的组成及其功能 计算机主要由五大部分组成:控制器、运算器、存储器、输入设备、输出设备,即CPU(控制器、运算器)、内存、I/O(输入/输出设备)。 控制器 是整个计算机的中枢神经,其功能是对程序规定的控制信息进行解释,根据其要求进行控制,调度程序、数据、地址,协调计算机各部分工作及内存与外设的访问等。 运算器 对数据进行各种算术运算和逻辑运算,即对数据…

    Linux干货 2016-08-15
  • 文本处理三剑客之sed

    文本处理三剑客之sed 一、处理文本的工具sed 概念: Stream EDitor, 行编辑器 v sed是一种流编辑器,它一次处理一行内容。处理时,把 当前处理的行存储在临时缓冲区中,称为“模式空间”( pattern space),接着用sed命令处理缓冲区中的内容 ,处理完成后,把缓冲区的内容送往屏幕。接着处理下一 行,这样不断重复,直到文件末尾。文…

    Linux干货 2016-08-12