第六周作业

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

vim总结:

    模式:编辑模式

                插入模式

                末行模式

                        内置命令行接口

            打开文件

            vim +# 打开文件后直接处于文件的#行行首

                    +/PATTER 打开文件后直接处于第一个被PATTER匹配到行的行首

                    + 直接处于尾行行首

模式转换

       编辑模式:默认模式,打开文件后处于编辑模式

                编辑模式–>插入模式:

                        i: insert 光标所在地方输入

                        a:append 在光标所在的后方输入

                        o:在光标所在下方打开一个新行

                        I:大写i 在光标所在行的行首插入

                        A 在光标所在行尾插入

                        O 在光标所在行的上方插入新行

                插入模式–>编辑模式 ESC键

                编辑模式–>末行模式 使用 冒号 :

                末行模式–>编辑模式 ESC键 一次或两次

关闭文件

        ZZ:编辑模式下保存并退出

        wq!:末行模式 w保存,q退出 ! 强制执行

           x :末行模式  保存退出

         w /path/to/filename 保存到某文件内当前文件不退出 另存为效果

  光标跳转

        字符间跳转

                k,j,h,l 上下左右 或上下左右的键盘 

                #j,k,h,l #表示数字,一次跳转#个字符    

        单词间跳转

                w 下一个单词词首

                b 当前或前一个单词词首

                e 当前或下一单词的词尾

                # command 跳转#指定个数的单词

        行首行尾跳转

                ^ 跳转至行首第一个非空白字符

                0 跳转至行首

                $ 跳转至行位

        行间跳转

                G 跳转至最后一行

                # G 跳转至第#行

                1G,gg 跳转至第一行

   翻屏 

                ctrl +f  向文件尾翻一屏

               +b 向文件首部翻一屏

               +d 向文件尾部翻半屏

               +u 向文件首部翻半屏

            enter 安行向后翻    

vim的编辑命令:

            字符编辑

                    x 删除光标所在处的字符

                    #x删除光标所在处起始向后#个字符

                   xp 交换光标所在处字符和后面字符的位置 

            替换命令 

                    r替换光标所在处的字符 r后跟索要替换的字符   

            删除命令

                    d 删除命令,可结合光标跳转字符,实现范围删除

                    d$ 删除光标所在到行尾

                    d^ 删除光标到行首

                        下面命令支持#dw 删除光标到下#个单词词首

                    dw 删除光标到下一个单词词首

                    de 删除光标所在到词尾

                    db 删除光标所在到词首

                    dd 删除整行

                    #dd 从光标所在行开始删除#行    

            粘贴命令

                    p 粘贴缓冲区的内容如果为整行,则粘贴在光标所在行的下方,否则粘贴至光标所在处的后方

                    P 粘贴缓冲区的内容如果为整行,则粘贴在光标所在行的上方,否则粘贴至光标所在处的前方

            复制命令(yank)

                    y 复制,工作行为相似与d命令    

            改变命令(change c)

                    编辑模式–>输入模式-

                        删除后进入输入模式

                    操作类似d命令

       其他编辑操作

              可视化模式(选定区域)

                    v 按字符选定

                   V 按行选定

                     结合编辑命令使用

           撤销(undo)操作

                    u 撤销此前的操作(可撤销最近50次操作)

                           #u 撤销此前的#个操作

                撤销此前的撤销操作

                    ctrl+r

             重复执行前一个编辑操作

               vim 自带联系教程

                       vimtutor.

vim 末行模式

        内建命令行接口

                (1)地址定界

                             :m 特定第m行  

                             :m,n 第m行到第n行    

                             :m,+n 第m行后的n行    

                             : . 当前行

                             :$最后一行

                             : % 表示全文

                             :/pattern/ 光标起始第一次被模式所匹配到的行

                              /pattern1/,/pattern2/ 光标起始第一次匹配pattern1到的行开始到第一次匹配到pattern2的行结束

            可与编辑命令一同使用,实现编辑操作

                        w /path/to/file 将范围内文本保存到其他地方

                (2) 查找

                    /pattern 从当前光标开始向尾部查找能被匹配到的字符串并将光标移到查找到的字符串

                    ?pattern 从当前光标开始向文件首部查找能被匹配到的字符串并将光标移到查找到的字符串

                    n 下一个被查找到的字符串

                    N 上一个被查找到的字符串

                 (3)查找替换(替换为无实现删除效果)

                       s 末行模式的命令

                    s/查找的内容/替换的内容/修饰符

                        查找的内容:可以用正则表达式

                        替换的内容:不能使用模式,但可引用

                                    如果查找的内容部分使用了分组符号可在后面替换的内容使用后向引用。

                                    直接引用查找模式匹配到的全部文本(使用&符号)

                        修饰符:i 查找的内容忽略大小写

                                       g 全局替换(默认只替换匹配到行的第一次替换)

                         可把分割符替换成其他非常用内容

vim 多文件功能

    vim file1 file2…

    多文件

            末行模式 next 切换到下一个文件

                           prev 切换到上一个文件

                           first   切换到第一个文件

                            last    切换到最后一个

            退出所有文件

                        wqall 保存所有文件退出

                        wall 保存所有文件

                        qall 退出所有文件

    多窗口

        使用ctrl+w 方向键 窗口间切换

        vim -o|O

        -o 水平分割窗口

        -O 垂直分割窗口

    单个文件也可分割为多个窗口进行查看

        ctrl+w s 水平分割窗口

        ctrl+w  v垂直分割窗口

定制vim的工作特性

        末行模式下设定仅对当前vim有效

        永久有效需修改配置文件

                个人: vim  ~/.vimrc

                全局 : /etc/vimrc

        1、行号   

              末行模式 set nu 显示行号

                              set nonu 取消行号

         2、括号匹配高亮显示

                    set  showmatch ,set sm

                    set noshowmatch,set nosm

         3、自动缩进功能

                set ai

                set noai

         4、高亮搜索

                set hlsearch

                set nohlsearch

        5、语法高亮

                syntax on

                syntax off

        6、忽略大小写

                set lc

                set nolc

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

vim /tmp/rc.sysinit  
%s/^[[:space:]]/# /

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

vim /tmp/grub.con
:%s/[[:space:]]\+//

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

vim /tmp/rc.sysinit  
:%s/^#[[:space:]]\+//

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

vim /tmp/grub.conf
:1,3s/^/#/

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

vim /etc/yum.repos.d/CentOS-Media.repo
:%s/=0/=1/

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

crontab -e
0 */4 * * * /bin/tar -cPf /backup/etc-`date +%Y%m%d%H%M` /etc

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

crontab -e
0 0 * * 2,4,6 /bin/tar -cPf /backup/messages_logs/messages-`date +%Y%m%d` /var/log/messages

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

crontab -e
0 */2 * * * /bin/grep "^S" /proc/meminfo >> /stats/memory.txt

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

crontab -e
0 */2 * * 1-5 /bin/echo "howdy"

脚本编程练习

10、创建目录/tmp/testdir-当前日期时间; 

#!/bin/bash
mkdir /tmp/testdir-`date +%Y%m%d%H%M%S`

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

#!/bin/bash
DATA=`date +%Y%m%d%H%M%S`
[ !  -d /tmp/testdir-$DATA ] && mkdir  /tmp/testdir-$DATA
 touch /tmp/testdir-$DATA/file{1..100}

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

#!/bin/bash
sed -n '2~2p' /etc/passwd |cut -d: -f1

13、创建10用户user10-user19;密码同用户名;

#!/bin/bash
for i in {10..19};do
useradd user$i && echo "user$i" |passwd --stdin user$i 
done

14、在/tmp/创建10个空文件file10-file19; 

#!/bin/bash
touch /tmp/file{10..19}


#!/bin/bash
for i in {10..19};do
touch /tmp/file$i
done
~

15、把file10的属主和属组改为user10,依次类推。

#!/bin/bash
for i in {10..19};do
chmod user$i:user$i /tmp/file$i
done
~

原创文章,作者:胡安慧,如若转载,请注明出处:http://www.178linux.com/67591

(0)
胡安慧胡安慧
上一篇 2017-02-06
下一篇 2017-02-06

相关推荐

  • 第二周作业

    1. Linux上文件管理类命令总结及示例 文件管理命令主要由查看类命令和管理类命令组成 查看类命令 cat:显示文本 cat [OPTION]… [FILE].. tac:倒序查看文件内容 tac [OPTION]… [FILE].. head:显示文件前几行内容 head [OPTION]… [FILE].. -n#:指定获取前#行,也可直接使用-# -…

    Linux干货 2016-12-10
  • YUM工具的工作原理、用法及源 码包的编译安装

    YUM工具的工作原理,用法及源码包的编译安装 _ueditor_page_break_tag_ 一、 CentOS: yum, dnf       1.YUM: (Yellow dogUpdate Modifier),rpm的前端程序,用来解决软件包相关依赖性,可以在多个库之间定位软件包,up2date的替代工具   …

    Linux干货 2016-09-01
  • Linux系统的软链接和硬链接

    Linux的链接是一种共享文件和访问它的用户的若干目录项之间建立联系的一种方法。一共分为两种链接,分别是软链接和硬链接。 一、硬链接 1、硬链接的本质上是一个文件,它们除了名字不一样,其他都一样,占用的空间是一个。硬链接会增加文件的链接数。如下图 (1)建立硬链集之前     (2)建立硬链接之后 2、删去一个链接名,链接数减一…

    Linux干货 2016-10-22
  • 制作本地yum源(以redhat5.8通过复制光盘文件到本地)

    为什么要制作本地yum源 1、RPM安装方式很多情况下不能有效解决复杂的包依赖关系。 2、而刚安装完成系统的YUM一般是通过联网使用。 3、如果是未注册的redhat5.0以上系统,则不能联网使用yum。 我们可以改变yum库的指向,使其指向本地自己制作的yum仓库,从而轻松实现本地yum方式查询、安装应用软件了。 下面据此给大家介绍其操作方法(以Redha…

    Linux干货 2016-04-11
  • 基本网络设置

    我们在上网的时候会遇到各种各样的问题,比如有时候网络不通,没有ip地址,或者ip地址有冲突等等,这就需要我们懂得一些网络的配置,方便以后使用。基本网络配置:主机名,ip地址,网关,DNS服务器。1、 主机名的配置第一种方法:在配置文件修改Centos7版本:vim /etc/hostname 改过配置文件后需要使其生效,命令为hostname centos7…

    2017-09-09
  • 马哥教育网络班21期-第五周课程练习

    1、显示/boot/grub/grub.conf中以至少一个空白字符开头的行; # grep -E "^[[::space]]\+.*" /boot/grub/grub.conf 2、显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行;…

    Linux干货 2016-08-08