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)
上一篇 2017-03-13 17:32
下一篇 2017-03-13 21:59

相关推荐

  • 马哥教育网络班22期第二周课程练习1-未闻花名

    1、Linux管理文件和目录的命令 命令 功能 命令 功能 pwd 显示当前目录 ls 查看目录下的内容 cd 改变所在目录 cat 显示文件的内容 grep 在文件中查找某字符 cp 复制文件 touch 创建文件 mv 移动文件 rm 删除文件 rmdir 删除目录 1.1 pwd命令 该命令的英文解释为print working directory(打…

    Linux干货 2016-08-29
  • 关于大型网站技术演进的思考(十)–网站静态化处理—动静整合方案(2)

    原文出处: 夏天的森林    上篇文章我简要的介绍了下网站静态化的演进过程,有朋友可能认为这些知识有点过于稀松平常了,而且网站静态化的技术基点也不是那么高深和难以理解,因此它和时下日新月异的web前端技术相比,就显得不伦不类了。其实当我打算写本系列的之前我个人觉得web前端有一个点是很多人都知道重要,但是有常常低估它作用的,那就…

    2015-03-11
  • 编译安装LAMP-centos7

    编译安装LAMP (centos7 基于模块化) 编译安装所需版本 Httpd 2.4,PHP 5.4,MariaDB 5.5通用二进制格式(绿色安装包) MAriDB5.5 绿色安装 1、#mkdir lamp :创建一个文件夹,存放软件的版本 2、从官网上下载httpd2.4 mariaDb 5.5 PHP 5.4到该文件夹下 3、# tar xvf m…

    Linux干货 2017-05-17
  • iptables实战笔记一

    iptables实战 1.开启防火墙 systemctl start firewalld 2.清空所有的默认规则,我们自己定义自己的规则 iptables -F 查看此时的iptables iptables -nL Chain INPUT (policy ACCEPT) target prot opt source destination Chain FOR…

    Linux干货 2017-06-13
  • Linux入门之常见文本处理工具

    Linux入门之常见文本处理工具 文本内容查看命令 cat   tac    rev  more  less   head   tail 普通文本查看 cat  tac  rev cat 命令 cat  [option]…

    Linux干货 2016-08-08
  • class-6 积累应用

    1、三种权限rwx对文件和目录的不同意义     ## 读写执行对于文件的意义         r:针对于文本文件         w:可修改内容,但不能删除文件本身,需要x权限配合  &n…

    Linux干货 2016-08-05

评论列表(1条)

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

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