N26-第六周

请详细总结vim编辑器的使用

vim 模式化的编辑器

vim的三种模式:1.编辑模式(命令模式)

                         2.输入模式

                         3.末行模式 内置的命令行接口

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

编辑模式 –> 末行模式:
输入 `:` 

末行模式 –> 编辑模式
直接按 `ESC` 键即可

<h3>文件操作</h3>
接着是如何打开文件和关闭文件。

打开文件的语法是 `vim [options][file…]`。在打开文件时,利用某些选项,还可以让光标处于特定的位置,例如:

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

关闭文件的相关命令有:
  ZZ :保存并退出
  :q 退出
  :q! 强制退出,不保存此前的编辑操作
  :wq 保存并退出
  :w /PATH/TO/SOMEFILE 另存到文件

vim 支持在某个命令的前面添加数字来达到多次执行的目的。

字符间跳转:
h 左 j 下 k 上 l 右

单词间跳转
    w 跳到下一个单词的词首
    b 当前或前一个单词的词首
    e 当前或后一个单词的词尾

行首行尾跳转
    ^ 跳转至行首的第一个非空白字符
    0 跳转至行首
    $ 跳转至行尾

行间跳转
    #G 跳转至由数字 # 指定的行
    1G,gg 跳转至第一行
    G 跳转至最后一行

句间跳转
    ) 跳到后一句
    ( 跳到前一句

段间跳转
    } 跳到前一段
    { 跳到后一段

翻屏:
    Ctrl+f 向文件尾部翻一屏
    Ctrl+b 向文件首部翻一屏
    Ctrl+d 向文件尾部翻半屏
    Ctrl+u 向文件首部翻半屏
    Enter 按行向后翻

<h3>编辑命令</h3>
接下来是与编辑命令相关的介绍。

字符编辑:
    x 删除光标所在处的字符
    #x 删除光标所在处起始的 # 个字符
    xp 交换光标所在处的字符及其后面的字符的位置

替换命令 replace
    r 替换光标所在处的字符 rCHAR

删除命令
    d 删除命令,可结合光标跳转字符,实现范围删除
        d$ 
        d^
        dw
        de
        db
        dd 删除光标所在处的行 
            #dd

粘贴命令
    p 缓冲区中的内容如果为整行,则粘贴在当前光标所在行的下方;否则粘贴至当前光标所在处的后面
    P 缓冲区中的内容如果为整行,则粘贴在当前光标所在行的上方;否则粘贴至当前光标所在处的前面

复制命令 yank
    y 复制,工作方式与 d 命令类似

改变命令 change
    编辑模式 –> 输入模式,实现删除操作

可视化模式
    v 按字符选定
    V 按行选定
    结合编辑命令使用:d,c,y,p

撤销操作 undo
    u 撤销此前的操作
        #u 撤销此前的 # 次操作
撤销此前的撤销
    Ctrl+r
重复执行前一个编辑操作
    .

<h3>查找和替换操作</h3>
(1) 地址定界 :start_pos[,end_pos]
    # 特定的第 # 行
    . 当前行
    $ 最后一行
    #,# 指定行范围
    #,+# 指定行范围,相对初始位置
    % 表示全文
    /pattern/ 从光标所在处开始向后寻找,第一次被模式所匹配到的行
    /parrern1/,/pattern2/

可同编辑命令一同使用,实现编辑操作
    d,y,c
    w /PATH/TO/SOMEFILE 将范围内的文本保存至指定的文件中
    r /PATH/OF/SOMEFILE 将指定文件中的文本读取并插入至指定位置

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

(3) 查找替换
    s 末行模式的命令;使用格式
        s/查找内容/替换内容/修饰符
            查找内容:可使用正则表达式
            替换内容:不能使用正则表达式,可引用
                如果 查找内容 部分在模式中使用分组符号,在 替换内容中使用后向引用
                直接引用查找模式匹配到的全部文本,使用 & 符号
            修饰符:
                i 忽略大小写
                g 全局替换,意味着一行中如果匹配到多次,则均替换;

## 1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#;
命令:
    cp /etc/rc.d/rc.sysinit /tmp
    vim /tmp/rc.sysinit
    :%s@^[[:space:]]\+@#\1@g

## 2、复制/boot/grub/grub.conf至/tmp目录中,删除/tmp/grub.conf文件中的行首的空白字符;
命令:
    cp /boot/grub/grub.conf /tmp
    vim /tmp/grub.conf
    :%s@^[[:space:]]\+@@g

## 3、删除/tmp/rc.sysinit文件中的以#开头,且后面跟了至少一个空白字符的行行的#和空白字符
命令:
    vim /tmp/rc.sysinit
    :%s@^#[[:space:]]@@g

## 4、为/tmp/grub.conf文件中前三行的行首加#号;
命令:
    vim /tmp/grub.conf
    :1,3s@^@#\1@g

## 5、将/etc/yum.repos.d/CentOS-Media.repo文件中所有的enabled=0或gpgcheck=0的最后的0修改为1;
命令:
    vim /etc/yum.repos.d/CentOS-Media.repo
    :%s@\(enabled\|gpgcheck\)=0@\1=1@g

## 6、每4小时执行一次对/etc目录的备份,备份至/backup目录中,保存的目录名为形如etc-201504020202
命令:
    crontab -e
    0 */4 * * * cp -a /etc /backup/etc-$(date +%Y%m%d%H%M
)

## 7、每周2,4,6备份/var/log/messages文件至/backup/messages_logs/目录中,保存的文件名形如messages-20150402
命令:
    crontab -e
    0 0 * * 2,4,6 cp -a /var/log/messages /backup/messages_logs/messages-$(date +%Y%m%d)

## 8、每天每两小时取当前系统/proc/meminfo文件中的所有以S开头的信息至/stats/memory.txt文件中
命令:
    crontab -e
    0 */2 * * * grep -E “^S” /proc/meninfo >> /stats/memory.txt

## 9、工作日的工作时间内,每两小时执行一次echo “howdy”
命令:
    crontab -e
    0 9-18/2 * * 1-5 echo “howdy”

脚本编程练习
## 10、创建目录/tmp/testdir-当前日期时间; 
## 11、在此目录创建100个空文件:file1-file100
## 12、显示/etc/passwd文件中位于第偶数行的用户的用户名;

vim testdir.sh

#! /bin/bash
DIR=/tmp/testdir-$(date +%Y%m%d)
mkdir $DIR
touch $DIR/file{1..100}

sed -n ‘n;p’ /etc/passwd | cut -d: -f1

编辑模式 –> 输入模式
1. 输入 i:insert 在光标所在处插入
2. 输入 I:在光标所在行的行首插入
3. 输入 a: append 在光标所在处之后输入
4. 输入 A: 在光标所在行的行尾插入
5. 输入 o:在光标所在处下方打开的一个新行
6. 输入 O:在光标所在处上方打开的一个新行

输入模式 –> 编辑模式
直接按 `ESC` 键即可

编辑模式 –> 末行模式:
输入 `:` 

末行模式 –> 编辑模式
直接按 `ESC` 键即可

<h3>文件操作</h3>
接着是如何打开文件和关闭文件。

打开文件的语法是 `vim [options][file…]`。在打开文件时,利用某些选项,还可以让光标处于特定的位置,例如:

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

关闭文件的相关命令有:
  ZZ :保存并退出
  :q 退出
  :q! 强制退出,不保存此前的编辑操作
  :wq = :w,:q 保存并退出
  😡 保存并退出
  :w /PATH/TO/SOMEFILE 另存到文件

<h3>光标的跳转</h3>
vim 支持在某个命令的前面添加数字来达到多次执行的目的。

字符间跳转:
h 左 j 下 k 上 l 右

单词间跳转
    w 跳到下一个单词的词首
    b 当前或前一个单词的词首
    e 当前或后一个单词的词尾

行首行尾跳转
    ^ 跳转至行首的第一个非空白字符
    0 跳转至行首
    $ 跳转至行尾

行间跳转
    #G 跳转至由数字 # 指定的行
    1G,gg 跳转至第一行
    G 跳转至最后一行

句间跳转
    ) 跳到后一句
    ( 跳到前一句

段间跳转
    } 跳到前一段
    { 跳到后一段

翻屏:
    Ctrl+f 向文件尾部翻一屏
    Ctrl+b 向文件首部翻一屏
    Ctrl+d 向文件尾部翻半屏
    Ctrl+u 向文件首部翻半屏
    Enter 按行向后翻

<h3>编辑命令</h3>
接下来是与编辑命令相关的介绍。

字符编辑:
    x 删除光标所在处的字符
    #x 删除光标所在处起始的 # 个字符
    xp 交换光标所在处的字符及其后面的字符的位置

替换命令 replace
    r 替换光标所在处的字符 rCHAR

删除命令
    d 删除命令,可结合光标跳转字符,实现范围删除
        d$ 
        d^
        dw
        de
        db
        dd 删除光标所在处的行 
            #dd

粘贴命令
    p 缓冲区中的内容如果为整行,则粘贴在当前光标所在行的下方;否则粘贴至当前光标所在处的后面
    P 缓冲区中的内容如果为整行,则粘贴在当前光标所在行的上方;否则粘贴至当前光标所在处的前面

复制命令 yank
    y 复制,工作方式与 d 命令类似

改变命令 change
    编辑模式 –> 输入模式,实现删除操作

可视化模式
    v 按字符选定
    V 按行选定
    结合编辑命令使用:d,c,y,p

撤销操作 undo
    u 撤销此前的操作
        #u 撤销此前的 # 次操作
撤销此前的撤销
    Ctrl+r
重复执行前一个编辑操作
    .

<h3>查找和替换操作</h3>
(1) 地址定界 :start_pos[,end_pos]
    # 特定的第 # 行
    . 当前行
    $ 最后一行
    #,# 指定行范围
    #,+# 指定行范围,相对初始位置
    % 表示全文
    /pattern/ 从光标所在处开始向后寻找,第一次被模式所匹配到的行
    /parrern1/,/pattern2/

可同编辑命令一同使用,实现编辑操作
    d,y,c
    w /PATH/TO/SOMEFILE 将范围内的文本保存至指定的文件中
    r /PATH/OF/SOMEFILE 将指定文件中的文本读取并插入至指定位置

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

(3) 查找替换
    s 末行模式的命令;使用格式
        s/查找内容/替换内容/修饰符
            查找内容:可使用正则表达式
            替换内容:不能使用正则表达式,可引用
                如果 查找内容 部分在模式中使用分组符号,在 替换内容中使用后向引用
                直接引用查找模式匹配到的全部文本,使用 & 符号
            修饰符:
                i 忽略大小写
                g 全局替换,意味着一行中如果匹配到多次,则均替换;

## 1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#;
命令:
    cp /etc/rc.d/rc.sysinit /tmp
    vim /tmp/rc.sysinit
    :%s@^[[:space:]]\+@#\1@g

## 2、复制/boot/grub/grub.conf至/tmp目录中,删除/tmp/grub.conf文件中的行首的空白字符;
命令:
    cp /boot/grub/grub.conf /tmp
    vim /tmp/grub.conf
    :%s@^[[:space:]]\+@@g

## 3、删除/tmp/rc.sysinit文件中的以#开头,且后面跟了至少一个空白字符的行行的#和空白字符
命令:
    vim /tmp/rc.sysinit
    :%s@^#[[:space:]]@@g

## 4、为/tmp/grub.conf文件中前三行的行首加#号;
命令:
    vim /tmp/grub.conf
    :1,3s@^@#\1@g

## 5、将/etc/yum.repos.d/CentOS-Media.repo文件中所有的enabled=0或gpgcheck=0的最后的0修改为1;
命令:
    vim /etc/yum.repos.d/CentOS-Media.repo
    :%s@\(enabled\|gpgcheck\)=0@\1=1@g

## 6、每4小时执行一次对/etc目录的备份,备份至/backup目录中,保存的目录名为形如etc-201504020202
命令:
    crontab -e
    0 */4 * * * cp -a /etc /backup/etc-$(date +%Y%m%d%H%M
)

## 7、每周2,4,6备份/var/log/messages文件至/backup/messages_logs/目录中,保存的文件名形如messages-20150402
命令:
    crontab -e
    0 0 * * 2,4,6 cp -a /var/log/messages /backup/messages_logs/messages-$(date +%Y%m%d)

## 8、每天每两小时取当前系统/proc/meminfo文件中的所有以S开头的信息至/stats/memory.txt文件中
命令:
    crontab -e
    0 */2 * * * grep -E “^S” /proc/meninfo >> /stats/memory.txt

## 9、工作日的工作时间内,每两小时执行一次echo “howdy”
命令:
    crontab -e
    0 9-18/2 * * 1-5 echo “howdy”

脚本编程练习
## 10、创建目录/tmp/testdir-当前日期时间; 
## 11、在此目录创建100个空文件:file1-file100
## 12、显示/etc/passwd文件中位于第偶数行的用户的用户名;

N26-第六周

 


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

(0)
geshubogeshubo
上一篇 2017-03-13
下一篇 2017-03-13

相关推荐

  • 网络班22期+第二周作业练习

    常用的文件管理命令: ls,显示文件或目录 -l:显示文件或目录的包括权限、属主、属组大小创建日期等详细信息 [root@centos7 ~]# ls -l total 16 -rw-r–r–. 1 root root   64 Aug&nbsp…

    Linux干货 2016-09-05
  • N25第三周视频博客 find命令详解

    视频作业:find命令详解 大纲:         1、什么是find 2、find能实现什么功能 3、为什么要使用find 4、如何使用find 5、find各参数详解   1、什么是find      find是linux 命令,它将档案系统内符合 expression(表达…

    Linux干货 2016-12-15
  • 网络管理3

    一、知识整理 1、跨网络通信:路由 路由的分类:主机路由;网络路由;默认路由。 将主机接入网络,需要配置网络相关设置。一般包括如下内容:主机名;IP/MASK;路由:默认网关;DNS服务器:主、次、第三DNS服务器。 2、网络配置文件:IP、MASK、GW、DNS相关配置文件 /etc/sysconfig/network-scripts/ifcfg-IFAC…

    Linux干货 2016-09-13
  • 谈shell命令的神奇组合以及对脚本的影响

    shell命令是我们与机器交互的基本沟通翻译官。我们要告诉计算机的很多事情都由它来翻译,而shell的神奇之处就在于支持命令联合使用,现在我就来讲讲基本的命令组合引用。1.管道应用:命令 | 命令  ,前面的命令的结果可以直接作为后面命令的输出,省却了一个变量做存储。2.文本段落提取;我们可以用 组合命令 通常为 cat 某文件 | (head -…

    Linux干货 2017-04-02
  • N22-℡浮生.若夢 ╮第一周作业

    1.描述计算机的组成及其功能  组成:     硬件       (1).CPU: 是计算机的主要设备之一,功能主要是解释计算机指令以及处理计算机软件中的数据.       (2).存储器:内存,硬盘,存储器的功能是存储程序、数据和各种信号…

    Linux干货 2016-09-19
  • sed工具实践解析

    此次博文介绍一下文本处理三剑客中的sed工具(点击查看grep工具http://www.178linux.com/83512) 介绍sed: sed是非交互式的编辑器。它不会修改文件,除非使用shell重定向来保存结果。默认情况下,所有的输出行都被打印到屏幕上。 运行过程: sed编辑器逐行处理文件,并将结果发送到屏幕。具体过程如下:首先sed把当前正在处理…

    Linux干货 2017-08-26

评论列表(1条)

  • 马哥教育
    马哥教育 2017-03-30 14:27

    VIM是一款非常棒的文件编辑器,本文总结的非常到位,掌握扎实,今后将会事半功倍。