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操作系统的最外层,负责直接与用户对话,把用户的输入解释给操作系统,并处理各种操作输出的结果 ...
随机推荐
- gin框架中设置信任代理IP并获取远程客户端IP
package main import ( "fmt" "github.com/gin-gonic/gin" ) func main() { gin.SetMo ...
- gin框架中的中间件
全局中间件 所有请求都经过此中间件 中间件中设置值 func MiddleWare() gin.HandlerFunc { return func(context *gin.Context) { t ...
- 不难懂-----redux
一.flux的缺陷 因为dispatcher和Store可以有多个互相管理起来特别麻烦 二.什么是redux 其实redux就是Flux的一种进阶实现.它是一个应用数据流框架,主要作用应用状态的管理 ...
- arduino物联网学习
arduino物联网学习 目录 arduino物联网学习 20200215 OLED屏幕使用教程 材料: 软件 代码注释 完整代码 Arduino IDE 开发 ESP-01S/ESP-01物联网实战 ...
- opencvsharp 根据row方向和面积筛选连通域的两种方式
ConnectedComponents cc = Cv2.ConnectedComponentsEx(tempMat);//相当于halcon的connection获取全部连通域 int blobnu ...
- python办公自动化系列之金蝶K3自动登录(一)
做办公自动化的小伙伴都知道,驱动SAP GUI我们有SAP原生提供的[脚本录制与回放]以及SAP Scripting API可参考:驱动Office Excel等,我们有微软提供的[录制宏]功能:驱动 ...
- AT2650 [ARC077C] guruguru
可以发现,如果我们枚举每个理想亮度 \(X\) 然后再求在这个理想亮度情况下的答案是非常难维护的. 不妨反过来,考虑每个位置 \(i, i + 1\) 之间对每个理想亮度 \(X\) 减少次数的贡献. ...
- 一次线上服务高 CPU 占用优化实践 (转)
线上有一个非常繁忙的服务的 JVM 进程 CPU 经常跑到 100% 以上,下面写了一下排查的过程.通过阅读这篇文章你会了解到下面这些知识. Java 程序 CPU 占用高的排查思路 可能造成线上服务 ...
- Android中常用布局
1.线性布局 LinearLayout orientation:方向:vertical,垂直:horizontal,水平 gravity:对齐方式,子控件相对于当前 ...
- Info.plist常见的设置
建立一个工程后,会在Supporting files文件夹下看到一个"工程名-Info.plist"的文件,该文件对工程做一些运行期的配置,非常重要,不能删除 在旧版本Xcode创 ...