zoukankan      html  css  js  c++  java
  • vim编辑以及脚本编程练习

    转至:http://www.178linux.com/88128

    vim编辑器的使用总结:

    vim在工作过程当中有三种模式:编辑模式、输入模式、末行模式。

    1、编辑模式:即命令模式,键盘操作常被理解为编辑命令;

    2、输入模式:在文本文件当中进行输入内容;

    3、末行模式:vim内置的命令行接口,执行vim的内置命令。

    vim的使用

    打开文件

    #vim[option]…[FILE]

    +#:打开文件后,直接让光标处于第#行的行首;

    +/PATTERN:打开文件后,直接让光标处于第一个被PATTERN锁匹配到的行的行首。

    模式转换

    1、ESC键:可以从输入模式转换到编辑模式

    2、从编辑模式à输入模式

    常用的有o:在光标所在行的下方新建一个空行病转换为输入模式

    a:在光标所在的后方转换为输入模式

    3、编辑模式à末行模式:直接输入冒号(:)即可在窗口的左下方显示冒号

    4、末行模式à编辑模式敲击ESC键

    5、输入à编辑à末行:输入模式不能直接转换到末行模式

    退出文件

    需要先切换到编辑模式之后才能退出,在切换到编辑模式后键入一下命令即可进行相关的操作:

    :q退出

    :q!不保存退出

    :wq保存退出

    :x保存退出

    :wq!强制保存退出

    :w /PATH/TO/SOMEWHERE

    编辑模式保存退出的快捷键ZZ

    vim的编辑命令

    x:删除光标所在处的字符

    dd:删除光标所在行

    p:paste,粘贴

    y:yank,复制

    Y:yy复制行

    c:修改

    撤销编辑:

    u:撤销此前的操作

    #u:撤销最近的#次操作

    撤销此前的撤销操作

    Ctrl+r

    vim中的末行模式

    1、内容定界

    #:第#行

    #,#:从左侧第#行到右侧第#行结尾

    .:当前行

    $:最后一行

    %:全文,相当于1,$

    2、查找

    /PATHERN:从当前光标所在处向文件尾部查找

    ? PATHERN:从当前光标所在处向文件首部查找

    窗口属性定义

    :set nu 显示行号

    :set nonu取消显示行号

    :set ai启用自动缩进功能

    :set noai取消自动缩进功能

    本周练习:

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

    %s@^([[:space:]]+)@#1@

    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。

    # crontab –e

    0 */4 * * * root cp -r /etc/ /backup/etc-$(date +%Y%m%d%H%M)

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

    # crontab –e

    0 * * * Tue,Tur,Sat root cp /var/log/messages /backup/messages_logs/messages-$(date +%Y%m%d)

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

    # crontab –e

    0 */2 * * * root grep “^S” /proc/meminfo >> /stats/memory.txt

    9,工作日的工作时间内,没两小时执行一次echo “howdy”。

    # crontab –e

    0 9-18/2 * * 1-5 root echo “howdy”

    10,创建目录/tmp/testdir-当前日期时间。

    #!/bin/bash

    mkdir /tmp/testdir-$(date +%Y%m%d%H%M%S)

    # bash -x mkdir2.sh

    ++ date +%Y%m%d%H%M%S

    + mkdir /tmp/testdir-20170902155548

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

    #!/bin/bash

    for num in `seq 1 100`; do

    touch /tmp/testdir-20170902155548/file$num

    done

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

    #!/bin/bash

  • 相关阅读:
    如何让nacos中服务注册的ip是自定义的网段ip ( docker swarm )
    docker swarm集群节点打标签
    mysql 8 设置大小写不敏感
    mysql 8 安装&账户权限控制
    I/O(输入/输出)---序列化与反序列化
    I/O(输入/输出)---字节流与字符流
    I/O(输入/输出)---File类
    转发与重定向的区别
    application的使用(实现计数器)
    HTML的相关路径与绝对路径的问题---通过网络搜索整理
  • 原文地址:https://www.cnblogs.com/my-first-blog-lgz/p/13390460.html
Copyright © 2011-2022 走看看