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
vim编辑以及脚本编程练习的更多相关文章
- vim编辑python脚本时Tab补全
所属分类:成长之路 使用Linux写python脚本的时候,初期最痛苦的是什么?当然是各种库的不熟悉,知道了库,里面的方法还要挨个看,挨个记. 所以这时候,很多小伙伴使用了ipython,最强大的功能 ...
- linux下vi与vim区别以及vim的使用-------vim编辑时脚本高光显示语法
vi与vimvi编辑器是所有Unix及Linux系统下标准的编辑器,他就相当于windows系统中的记事本一样,它的强大不逊色于任何最新的文本编辑器.他是我们使用Linux系统不能缺少的工具.由于对U ...
- Vbs 脚本编程简明教程之一
—为什么要使用 Vbs ? 在 Windows 中,学习计算机操作也许很简单,但是很多计算机工作是重复性劳动,例如你每周也许需要对一些计算机文件进行复制.粘贴.改名.删除,也许你每天启动 计算机第一件 ...
- Shell脚本编程学习入门 02
Shell脚本编程学习入门是本文要介绍的内容,我们可以使用任意一种文字编辑器,比如gedit.kedit.emacs.vi等来编写shell脚本,它必须以如下行开始(必须放在文件的第一行): #! ...
- 【Shell脚本编程系列】Shell脚本开发的习惯和规范
1.开头指定脚本解释器 #!/bin/sh或#!/bin/bash 2.开头加版本版权信息 #Date #Author #Mail #Function #Version 提示:可配置vim编辑文件时自 ...
- Shell脚本编程与文件系统修复
导读 Linux基金会发起了LFCS认证(Linux 基金会认证系统管理员)Linux Foundation Certified Sysadmin,这是一个全新的认证体系,旨在让世界各地的人能够参与到 ...
- 《Linux命令行与shell脚本编程大全 第3版》
第一部分 Linux 命令行 第1章 初识Linux she1.1 什么是Linux 21.1.1 深入探究Linux 内核 31.1.2 GNU 工具 61.1.3 Linux 桌面环境 81 ...
- SHELL脚本编程基础知识
SHELL脚本编程基础知识 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Linux之父Linus有一句话很经典:"Talk is cheap, show me the ...
- shell脚本编程基础介绍
Linux系统——shell脚本编程基础介绍 1.什么是shell 它是一个命令解释器,在linux/unix操作系统的最外层,负责直接与用户对话,把用户的输入解释给操作系统,并处理各种操作输出的结果 ...
随机推荐
- 微服务架构 | 4.2 基于 Feign 与 OpenFeign 的服务接口调用
目录 前言 1. OpenFeign 基本知识 1.1 Feign 是什么 1.2 Feign 的出现解决了什么问题 1.3 Feign 与 OpenFeign 的区别与对比 2. 在服务消费者端开启 ...
- es的settings设置详解
//静态设置:只能在索引创建时或者在状态为 closed index(闭合的索引)上设置 index.number_of_shards //主分片数,默认为5.只能在创建索引时设置,不能修改 ...
- python26day
内容回顾 多态: 一个类表现出的多种形态,实际上是通过继承来完成的 今日内容 super,调用父类的同名方法 按照mro顺序来寻找当前类的下一个类 封装 广义上的封装 方法属性名字前加了__,就变 ...
- 计算机网络再次整理————tcp[二]
前言 本文不会去介绍tcp的具体协议,因为这个tcp 应该不能说是单纯的连接和传输数据这么简单,里面还有很多机制. 正文 首先介绍一下什么是协议族(protocal Family),举个例子PF_IN ...
- Vue 之 浏览本地图片功能
template <input type="file" ref="input_file" @change="fileChange" ...
- Python之基本数据类型与数据结构
一.基础数据类型 标准数据类型: ·不可变数据类型 Number(数字):int.float.bool.complex(复数) String(字符串) Tuple(元祖):不可变,无法通过下标来修改值 ...
- Windows mysql免安装版配置。(版本号-5.6.45);
Windows mysql免安装版配置.(版本号-5.6.45); 来自对 https://blog.csdn.net/weixin_42831477/article/details/81325691 ...
- 深坑react 引入antd无效问题
//安装babel-plugin-import 第一步:npm install babel-plugin-import --save第二步:暴露webpack.config.js运行:npm run ...
- 为CentOS 6、7升级gcc至4.8、4.9、5.2、6.3、7.3等高版本
CentOS 7虽然已经出了很多年了,但依然会有很多人选择安装CentOS 6,CentOS 6有些依赖包和软件都比较老旧,如今天的主角gcc编译器,CentOS 6的gcc版本为4.4,CentOS ...
- Java8 Stream 的一些操作和介绍
原创:转载需注明原创地址 https://www.cnblogs.com/fanerwei222/p/11858186.html Java8 Stream 是一个新的东西, 就是能够将常见的数据结构转 ...