转至: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

vim编辑以及脚本编程练习的更多相关文章

  1. vim编辑python脚本时Tab补全

    所属分类:成长之路 使用Linux写python脚本的时候,初期最痛苦的是什么?当然是各种库的不熟悉,知道了库,里面的方法还要挨个看,挨个记. 所以这时候,很多小伙伴使用了ipython,最强大的功能 ...

  2. linux下vi与vim区别以及vim的使用-------vim编辑时脚本高光显示语法

    vi与vimvi编辑器是所有Unix及Linux系统下标准的编辑器,他就相当于windows系统中的记事本一样,它的强大不逊色于任何最新的文本编辑器.他是我们使用Linux系统不能缺少的工具.由于对U ...

  3. Vbs 脚本编程简明教程之一

    —为什么要使用 Vbs ? 在 Windows 中,学习计算机操作也许很简单,但是很多计算机工作是重复性劳动,例如你每周也许需要对一些计算机文件进行复制.粘贴.改名.删除,也许你每天启动 计算机第一件 ...

  4. Shell脚本编程学习入门 02

    Shell脚本编程学习入门是本文要介绍的内容,我们可以使用任意一种文字编辑器,比如gedit.kedit.emacs.vi等来编写shell脚本,它必须以如下行开始(必须放在文件的第一行):   #! ...

  5. 【Shell脚本编程系列】Shell脚本开发的习惯和规范

    1.开头指定脚本解释器 #!/bin/sh或#!/bin/bash 2.开头加版本版权信息 #Date #Author #Mail #Function #Version 提示:可配置vim编辑文件时自 ...

  6. Shell脚本编程与文件系统修复

    导读 Linux基金会发起了LFCS认证(Linux 基金会认证系统管理员)Linux Foundation Certified Sysadmin,这是一个全新的认证体系,旨在让世界各地的人能够参与到 ...

  7. 《Linux命令行与shell脚本编程大全 第3版》

    第一部分 Linux 命令行 第1章  初识Linux she1.1   什么是Linux 21.1.1 深入探究Linux 内核 31.1.2 GNU 工具 61.1.3 Linux 桌面环境 81 ...

  8. SHELL脚本编程基础知识

    SHELL脚本编程基础知识 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Linux之父Linus有一句话很经典:"Talk is cheap, show me the ...

  9. shell脚本编程基础介绍

    Linux系统——shell脚本编程基础介绍 1.什么是shell 它是一个命令解释器,在linux/unix操作系统的最外层,负责直接与用户对话,把用户的输入解释给操作系统,并处理各种操作输出的结果 ...

随机推荐

  1. 元编程 (meta-programming)

    元编程 (meta-programming) 术语 meta:英语前缀词根,来源于希腊文.中国大陆一般翻译成"元". 在逻辑学中,可以理解为:关于X的更高层次,同时,这个更高层次的 ...

  2. docker daemon

    docker启动最先加载Docker Daemon. Docker Daemon的启动文件放在/etc/systemd/system/docker.service.d目录中,如果没有则手工创建该目录并 ...

  3. linux计划任务之cron

    目录 cron计划任务之用户级 cron计划任务之系统级 cron计划任务之用户级 1.安装crond centos7 执行命令: # yum install -y crontabs /bin/sys ...

  4. 在linux下的mysql导入存储过程出现语法错误,需要在文件里加DELIMITER //

    http://my.oschina.net/zerotime/blog/113126 Mysql命令行创建存储过程时,首先要输入分隔符 DELIMITER // CREATE PROCEDURE pr ...

  5. Haproxy配合Nginx搭建Web集群部署

    Haproxy配合Nginx搭建Web集群部署实验 1.Haproxy介绍 2.Haproxy搭建 Web 群集 1.Haproxy介绍: a)常见的Web集群调度器: 目前常见的Web集群调度器分为 ...

  6. SpringBoot源码解读系列——开篇

    什么是SpringBoot? 定义可以参考官网:SpringBoot官网,其定义通俗易懂,这里就不赘述. 官网也给出了一个通用的SpringBoot工程样例,其中包含了这么几个元素: 1.pom依赖 ...

  7. Lesson17——NumPy 统计函数

    NumPy 教程目录 1 NumPy 统计函数 NumPy 提供了很多统计函数,用于从数组中查找最小元素,最大元素,百分位标准差和方差等. 函数说明如下 1.1 统计 method descripti ...

  8. rsync 与 inotify 的使用 & 实现实时同步备份

    今日内容 rsync 内容详细 上一篇内容问题 1.yum源问题 2.VPN链接正常,但是没办法通过172 3.VPN链接时,出现了DNS错误 4.掩码不对 5.openvpn开启错误 复制的命令 1 ...

  9. pytest(9)-标记用例(指定执行、跳过用例、预期失败)

    pytest中提供的mark模块,可以实现很多功能,如: 标记用例,即打标签 skip.skipif标记跳过,skip跳过当前用例,skipif符合情况则跳过当前用例 xfail标记为预期失败 标记用 ...

  10. CreateEvent进程同步

    CreateEvent进程间同步   CreateEvent可以创建或是打开一个命名或是未命名的event对象. HANDLE CreateEvent(   LPSECURITY_ATTRIBUTES ...